Browse Source

fix(core): Make populator.populateCollections more robust to bad input

Michael Bromley 4 years ago
parent
commit
15762e040a
1 changed files with 10 additions and 4 deletions
  1. 10 4
      packages/core/src/data-import/providers/populator/populator.ts

+ 10 - 4
packages/core/src/data-import/providers/populator/populator.ts

@@ -108,7 +108,15 @@ export class Populator {
             const parent = collectionDef.parentName && collectionMap.get(collectionDef.parentName);
             const parentId = parent ? parent.id.toString() : undefined;
             const { assets } = await this.assetImporter.getAssets(collectionDef.assetPaths || []);
-
+            let filters: ConfigurableOperationInput[] = [];
+            try {
+                filters = (collectionDef.filters || []).map(filter =>
+                    this.processFilterDefinition(filter, allFacetValues),
+                );
+            } catch (e) {
+                // tslint:disable-next-line:no-console
+                console.log(e);
+            }
             const collection = await this.collectionService.create(ctx, {
                 translations: [
                     {
@@ -122,9 +130,7 @@ export class Populator {
                 parentId,
                 assetIds: assets.map(a => a.id.toString()),
                 featuredAssetId: assets.length ? assets[0].id.toString() : undefined,
-                filters: (collectionDef.filters || []).map(filter =>
-                    this.processFilterDefinition(filter, allFacetValues),
-                ),
+                filters,
             });
             collectionMap.set(collectionDef.name, collection);
         }