Browse Source

chore(server): Fix populate script

Michael Bromley 7 years ago
parent
commit
9d5bcb5c89

+ 5 - 2
server/mock-data/clear-all-tables.ts

@@ -1,12 +1,15 @@
 import { ConnectionOptions, createConnection } from 'typeorm';
 
 // tslint:disable:no-console
+// tslint:disable:no-floating-promises
 /**
  * A Class used for generating mock data directly into the database via TypeORM.
  */
 export async function clearAllTables(connectionOptions: ConnectionOptions) {
     (connectionOptions as any).entities = [__dirname + '/../src/**/*.entity.ts'];
-    const connection = await createConnection(connectionOptions);
+    const connection = await createConnection({ ...connectionOptions, name: 'clearAllTables' });
+    console.log('Clearing all tables...');
     await connection.synchronize(true);
-    console.log('Cleared all tables');
+    await connection.close();
+    console.log('Done!');
 }

+ 4 - 14
server/mock-data/mock-data-client.service.ts

@@ -104,10 +104,7 @@ export class MockDataClientService {
             };
 
             const customer: Customer | void = await request(this.apiUrl, query1, variables1).then(
-                (data: any) => {
-                    console.log('Created Customer:', data);
-                    return data.createCustomer as Customer;
-                },
+                (data: any) => data.createCustomer as Customer,
                 err => console.log(err),
             );
 
@@ -133,7 +130,7 @@ export class MockDataClientService {
 
                 await request(this.apiUrl, query2, variables2).then(
                     data => {
-                        console.log('Created Customer:', data);
+                        console.log(`Created Customer ${i + 1}:`, data);
                         return data as Customer;
                     },
                     err => console.log(err),
@@ -165,7 +162,7 @@ export class MockDataClientService {
 
             const product = await request<any>(this.apiUrl, query, variables).then(
                 data => {
-                    console.log('Created Product:', data);
+                    console.log(`Created Product ${i + 1}:`, data);
                     return data;
                 },
                 err => console.log(err),
@@ -189,19 +186,12 @@ export class MockDataClientService {
     }
 
     private async makeProductVariant(productId: ID): Promise<any> {
-        console.log('generating variants for', productId);
         const query = `mutation GenerateVariants($productId: ID!) {
             generateVariantsForProduct(productId: $productId) {
                 id
                 name
             }
          }`;
-        await request(this.apiUrl, query, { productId }).then(
-            data => {
-                console.log('Created Variants:', data);
-                return data;
-            },
-            err => console.log(err),
-        );
+        await request(this.apiUrl, query, { productId }).then(data => data, err => console.log(err));
     }
 }

+ 15 - 4
server/mock-data/populate.ts

@@ -1,12 +1,24 @@
 import { devConfig } from '../dev-config';
-import { setConfig } from '../src/config/vendure-config';
+import { bootstrap } from '../src';
+import { setConfig, VendureConfig } from '../src/config/vendure-config';
 
 import { clearAllTables } from './clear-all-tables';
 import { MockDataClientService } from './mock-data-client.service';
 
+// tslint:disable:no-floating-promises
 async function populate() {
-    setConfig(devConfig);
-    await clearAllTables(devConfig.dbConnectionOptions);
+    const populateConfig: VendureConfig = {
+        ...devConfig,
+        customFields: {},
+    };
+    (populateConfig.dbConnectionOptions as any).logging = false;
+    setConfig(populateConfig);
+    await clearAllTables(populateConfig.dbConnectionOptions);
+
+    await bootstrap(populateConfig).catch(err => {
+        // tslint:disable-next-line
+        console.log(err);
+    });
 
     const mockDataClientService = new MockDataClientService(devConfig);
     await mockDataClientService.populateOptions();
@@ -15,5 +27,4 @@ async function populate() {
     await mockDataClientService.populateAdmins();
 }
 
-// tslint:disable:no-floating-promises
 populate().then(() => process.exit(0));