populate-dev-server.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // tslint:disable-next-line:no-reference
  2. /// <reference path="../core/typings.d.ts" />
  3. import { bootstrap, VendureConfig } from '@vendure/core';
  4. import { populate } from '@vendure/core/cli/populate';
  5. import path from 'path';
  6. import { clearAllTables } from '../core/mock-data/clear-all-tables';
  7. import { initialData } from '../core/mock-data/data-sources/initial-data';
  8. import { populateCustomers } from '../core/mock-data/populate-customers';
  9. import { devConfig } from './dev-config';
  10. // tslint:disable:no-console
  11. /**
  12. * A CLI script which populates the dev database with deterministic random data.
  13. */
  14. if (require.main === module) {
  15. // Running from command line
  16. const populateConfig: VendureConfig = {
  17. ...(devConfig as any),
  18. authOptions: {
  19. tokenMethod: 'bearer',
  20. requireVerification: false,
  21. },
  22. importExportOptions: {
  23. importAssetsDir: path.join(__dirname, '../core/mock-data/assets'),
  24. },
  25. workerOptions: {
  26. runInMainProcess: true,
  27. },
  28. customFields: {},
  29. };
  30. clearAllTables(populateConfig, true)
  31. .then(() =>
  32. populate(
  33. () => bootstrap(populateConfig),
  34. initialData,
  35. path.join(__dirname, '../create/assets/products.csv'),
  36. ),
  37. )
  38. .then(async app => {
  39. console.log('populating customers...');
  40. await populateCustomers(10, populateConfig as any, true);
  41. return app.close();
  42. })
  43. .then(
  44. () => process.exit(0),
  45. err => {
  46. console.log(err);
  47. process.exit(1);
  48. },
  49. );
  50. }