@stackbit/sdk 0.2.6 → 0.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,13 +50,14 @@ function validateAndNormalizeConfig(config) {
50
50
  // extend config models having the "extends" property
51
51
  // this must be done before main config validation as some properties like
52
52
  // the labelField will not work when validating models without extending them first
53
- config.models = utils_1.extendModelMap((config === null || config === void 0 ? void 0 : config.models) || {});
53
+ const { models, errors: extendModelErrors } = utils_1.extendModelMap((config === null || config === void 0 ? void 0 : config.models) || {});
54
+ config.models = models;
54
55
  // normalize config - backward compatibility updates, adding extra fields like "markdown_content", "type" and "layout",
55
56
  // and setting other default values.
56
57
  config = normalizeConfig(config);
57
58
  // validate config
58
59
  const configValidationResult = config_validator_1.validateConfig(config);
59
- const errors = [...contentModelsValidationResult.errors, ...configValidationResult.errors];
60
+ const errors = [...contentModelsValidationResult.errors, ...extendModelErrors, ...configValidationResult.errors];
60
61
  return normalizeValidationResult({
61
62
  valid: lodash_1.default.isEmpty(errors),
62
63
  value: configValidationResult.value,
@@ -183,10 +184,15 @@ function normalizeConfig(config) {
183
184
  if (utils_1.isPageModel(model)) {
184
185
  // rename old 'template' property to 'layout'
185
186
  utils_2.rename(model, 'template', 'layout');
187
+ updatePageUrlPath(model);
188
+ updatePageFilePath(model, config);
186
189
  addMarkdownContentField(model);
187
190
  // TODO: update schema-editor to not show layout field
188
191
  addLayoutFieldToPageModel(model, pageLayoutKey);
189
192
  }
193
+ else if (utils_1.isDataModel(model)) {
194
+ updateDataFilePath(model, config);
195
+ }
190
196
  if (utils_1.isListDataModel(model)) {
191
197
  // 'items.type' of list model defaults to 'string', set it explicitly
192
198
  if (!lodash_1.default.has(model, 'items.type')) {
@@ -265,6 +271,58 @@ function normalizeConfig(config) {
265
271
  });
266
272
  return config;
267
273
  }
274
+ function updatePageUrlPath(model) {
275
+ // set default urlPath if not set
276
+ if (!model.urlPath) {
277
+ model.urlPath = '/{slug}';
278
+ }
279
+ }
280
+ /**
281
+ * Sets the page model's filePath pattern.
282
+ * If the model has `filePath` property, it is prefixed with `pagesDir` and returned.
283
+ * If the model has no `filePath` property, then `filePath` is naively inferred by
284
+ * prefixing `urlPath` with `pagesDir` and appending the `.md` extension.
285
+ */
286
+ function updatePageFilePath(model, config) {
287
+ var _a;
288
+ let filePath;
289
+ if (model.filePath) {
290
+ filePath = model.filePath;
291
+ }
292
+ else if (model.file) {
293
+ filePath = model.file;
294
+ }
295
+ else {
296
+ const urlPath = model.urlPath;
297
+ if (urlPath === '/') {
298
+ filePath = 'index.md';
299
+ }
300
+ else if (lodash_1.default.trim(urlPath, '/') === 'posts/{slug}' && config.ssgName === 'jekyll') {
301
+ filePath = '_posts/{moment_format("YYYY-MM-DD")}-{slug}.md';
302
+ }
303
+ else {
304
+ filePath = lodash_1.default.trim(urlPath, '/') + '.md';
305
+ }
306
+ }
307
+ const parentDir = lodash_1.default.trim((_a = config.pagesDir) !== null && _a !== void 0 ? _a : '', '/');
308
+ model.filePath = path_1.default.join(parentDir, filePath);
309
+ }
310
+ function updateDataFilePath(model, config) {
311
+ var _a;
312
+ let filePath;
313
+ if (model.filePath) {
314
+ filePath = model.filePath;
315
+ }
316
+ else if (model.file) {
317
+ filePath = model.file;
318
+ }
319
+ else {
320
+ const folder = lodash_1.default.trim(lodash_1.default.get(model, 'folder'), '/');
321
+ filePath = lodash_1.default.trim(`${folder}/{slug}.json`, '/');
322
+ }
323
+ const parentDir = lodash_1.default.trim((_a = config.dataDir) !== null && _a !== void 0 ? _a : '', '/');
324
+ model.filePath = path_1.default.join(parentDir, filePath);
325
+ }
268
326
  function addMarkdownContentField(model) {
269
327
  if (!model.hideContent) {
270
328
  utils_2.append(model, 'fields', {
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
1
  import { Model, ModelMap } from '../config/config-types';
2
- export declare function extendModels(models: Model[]): Model[];
3
- export declare function extendModelMap(models: ModelMap): ModelMap;
2
+ import { ConfigValidationError } from '../config/config-errors';
3
+ export declare function extendModelArray(models: Model[]): {
4
+ models: Model[];
5
+ errors: ConfigValidationError[];
6
+ };
7
+ export declare function extendModelMap(models: ModelMap): {
8
+ models: ModelMap;
9
+ errors: ConfigValidationError[];
10
+ };
@@ -3,31 +3,52 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.extendModelMap = exports.extendModels = void 0;
6
+ exports.extendModelMap = exports.extendModelArray = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const utils_1 = require("@stackbit/utils");
9
- function extendModels(models) {
9
+ const config_errors_1 = require("../config/config-errors");
10
+ function extendModelArray(models) {
10
11
  const memorized = lodash_1.default.memoize(extendModel, (model, modelName) => modelName);
11
12
  const modelsByName = lodash_1.default.keyBy(models, 'name');
12
- return lodash_1.default.map(models, (model) => {
13
+ return lodash_1.default.reduce(models, (result, model) => {
13
14
  // YamlModel is the same as Model just without 'name' and '__metadata' properties
14
- return memorized(model, model.name, modelsByName);
15
- });
15
+ const { model: extendedModel, errors } = memorized(model, model.name, modelsByName);
16
+ return {
17
+ models: result.models.concat(extendedModel),
18
+ errors: result.errors.concat(errors)
19
+ };
20
+ }, { models: [], errors: [] });
16
21
  }
17
- exports.extendModels = extendModels;
22
+ exports.extendModelArray = extendModelArray;
18
23
  function extendModelMap(models) {
19
24
  const memorized = lodash_1.default.memoize(extendModel, (model, modelName) => modelName);
20
- return lodash_1.default.mapValues(models, (model, modelName) => {
21
- return memorized(model, modelName, models);
22
- });
25
+ return lodash_1.default.reduce(models, (result, model, modelName) => {
26
+ const { model: extendedModel, errors } = memorized(model, modelName, models);
27
+ return {
28
+ models: lodash_1.default.assign(result.models, { [modelName]: extendedModel }),
29
+ errors: result.errors.concat(errors)
30
+ };
31
+ }, { models: {}, errors: [] });
23
32
  }
24
33
  exports.extendModelMap = extendModelMap;
25
34
  function extendModel(model, modelName, modelsByName, _extendPath = []) {
26
- assert(!lodash_1.default.includes(_extendPath, modelName), `cyclic dependency detected in model extend tree: ${_extendPath.join(' -> ')} -> ${modelName}`);
35
+ if (lodash_1.default.includes(_extendPath, modelName)) {
36
+ return {
37
+ model,
38
+ errors: [
39
+ new config_errors_1.ConfigValidationError({
40
+ type: 'model.extends.circular',
41
+ message: `cyclic dependency detected in model extend tree: ${_extendPath.join(' -> ')} -> ${modelName}`,
42
+ fieldPath: [],
43
+ value: null
44
+ })
45
+ ]
46
+ };
47
+ }
27
48
  let _extends = lodash_1.default.get(model, 'extends');
28
49
  let fields = lodash_1.default.get(model, 'fields');
29
50
  if (!_extends) {
30
- return model;
51
+ return { model, errors: [] };
31
52
  }
32
53
  delete model['extends'];
33
54
  if (!lodash_1.default.isArray(_extends)) {
@@ -37,20 +58,38 @@ function extendModel(model, modelName, modelsByName, _extendPath = []) {
37
58
  fields = [];
38
59
  model.fields = fields;
39
60
  }
61
+ let errors = [];
40
62
  lodash_1.default.forEach(_extends, (superModelName) => {
41
- let superModel = lodash_1.default.get(modelsByName, superModelName);
42
- assert(superModel, `model '${modelName}' extends non existing model '${superModelName}'`);
43
- assert(superModel.type === 'object', `model '${modelName}' extends models of type '${superModel.type}', only model of the 'object' type can be extended`);
44
- superModel = extendModel(superModel, superModelName, modelsByName, _extendPath.concat(modelName));
45
- utils_1.copyIfNotSet(superModel, 'hideContent', model, 'hideContent');
46
- utils_1.copyIfNotSet(superModel, 'singleInstance', model, 'singleInstance');
47
- utils_1.copyIfNotSet(superModel, 'labelField', model, 'labelField');
48
- utils_1.copyIfNotSet(superModel, 'variantField', model, 'variantField');
49
- if (Array.isArray(superModel.fieldGroups) && superModel.fieldGroups.length > 0) {
50
- model.fieldGroups = lodash_1.default.uniqBy(lodash_1.default.concat(superModel.fieldGroups, lodash_1.default.get(model, 'fieldGroups', [])), 'name');
63
+ const superModel = lodash_1.default.get(modelsByName, superModelName);
64
+ if (!superModel) {
65
+ errors.push(new config_errors_1.ConfigValidationError({
66
+ type: 'model.extends.model.not.found',
67
+ message: `model '${modelName}' extends non existing model '${superModelName}'`,
68
+ fieldPath: [],
69
+ value: null
70
+ }));
71
+ return;
72
+ }
73
+ if (superModel.type !== 'object') {
74
+ errors.push(new config_errors_1.ConfigValidationError({
75
+ type: 'model.extends.non.object.model',
76
+ message: `model '${modelName}' extends models of type '${superModel.type}', only model of the 'object' type can be extended`,
77
+ fieldPath: [],
78
+ value: null
79
+ }));
80
+ return;
81
+ }
82
+ const { model: extendedSuperModel, errors: nestedErrors } = extendModel(superModel, superModelName, modelsByName, _extendPath.concat(modelName));
83
+ errors = errors.concat(nestedErrors);
84
+ utils_1.copyIfNotSet(extendedSuperModel, 'hideContent', model, 'hideContent');
85
+ utils_1.copyIfNotSet(extendedSuperModel, 'singleInstance', model, 'singleInstance');
86
+ utils_1.copyIfNotSet(extendedSuperModel, 'labelField', model, 'labelField');
87
+ utils_1.copyIfNotSet(extendedSuperModel, 'variantField', model, 'variantField');
88
+ if (Array.isArray(extendedSuperModel.fieldGroups) && extendedSuperModel.fieldGroups.length > 0) {
89
+ model.fieldGroups = lodash_1.default.uniqBy(lodash_1.default.concat(extendedSuperModel.fieldGroups, lodash_1.default.get(model, 'fieldGroups', [])), 'name');
51
90
  }
52
91
  let idx = 0;
53
- lodash_1.default.forEach(superModel.fields, (superField) => {
92
+ lodash_1.default.forEach(extendedSuperModel.fields, (superField) => {
54
93
  const field = lodash_1.default.find(fields, { name: superField.name });
55
94
  if (field) {
56
95
  lodash_1.default.defaultsDeep(field, lodash_1.default.cloneDeep(superField));
@@ -60,11 +99,6 @@ function extendModel(model, modelName, modelsByName, _extendPath = []) {
60
99
  }
61
100
  });
62
101
  });
63
- return model;
64
- }
65
- function assert(value, message) {
66
- if (!value) {
67
- throw new Error(message);
68
- }
102
+ return { model, errors };
69
103
  }
70
104
  //# sourceMappingURL=model-extender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-extender.js","sourceRoot":"","sources":["../../src/utils/model-extender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-extender.js","sourceRoot":"","sources":["../../src/utils/model-extender.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/sdk",
3
- "version": "0.2.6",
3
+ "version": "0.2.11",
4
4
  "description": "Stackbit SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/.DS_Store CHANGED
Binary file
@@ -18,11 +18,12 @@ import {
18
18
  isObjectField,
19
19
  isObjectListItems,
20
20
  isPageModel,
21
+ isDataModel,
21
22
  isReferenceField,
22
23
  iterateModelFieldsRecursively
23
24
  } from '../utils';
24
25
  import { append, parseFile, readDirRecursively, reducePromise, rename } from '@stackbit/utils';
25
- import { Config, FieldEnum, FieldModel, FieldObjectProps, Model, PageModel, YamlModel } from './config-types';
26
+ import { Config, DataModel, FieldEnum, FieldModel, FieldObjectProps, Model, PageModel, YamlModel } from './config-types';
26
27
  import { loadPresets } from './presets-loader';
27
28
 
28
29
  export interface ConfigLoaderOptions {
@@ -86,7 +87,8 @@ export function validateAndNormalizeConfig(config: any): NormalizedValidationRes
86
87
  // extend config models having the "extends" property
87
88
  // this must be done before main config validation as some properties like
88
89
  // the labelField will not work when validating models without extending them first
89
- config.models = extendModelMap(config?.models || {});
90
+ const { models, errors: extendModelErrors } = extendModelMap(config?.models || {});
91
+ config.models = models;
90
92
 
91
93
  // normalize config - backward compatibility updates, adding extra fields like "markdown_content", "type" and "layout",
92
94
  // and setting other default values.
@@ -95,7 +97,7 @@ export function validateAndNormalizeConfig(config: any): NormalizedValidationRes
95
97
  // validate config
96
98
  const configValidationResult = validateConfig(config);
97
99
 
98
- const errors = [...contentModelsValidationResult.errors, ...configValidationResult.errors];
100
+ const errors = [...contentModelsValidationResult.errors, ...extendModelErrors, ...configValidationResult.errors];
99
101
  return normalizeValidationResult({
100
102
  valid: _.isEmpty(errors),
101
103
  value: configValidationResult.value,
@@ -243,10 +245,15 @@ function normalizeConfig(config: any): any {
243
245
  // rename old 'template' property to 'layout'
244
246
  rename(model, 'template', 'layout');
245
247
 
248
+ updatePageUrlPath(model);
249
+ updatePageFilePath(model, config);
250
+
246
251
  addMarkdownContentField(model);
247
252
 
248
253
  // TODO: update schema-editor to not show layout field
249
254
  addLayoutFieldToPageModel(model, pageLayoutKey);
255
+ } else if (isDataModel(model)) {
256
+ updateDataFilePath(model, config);
250
257
  }
251
258
 
252
259
  if (isListDataModel(model)) {
@@ -331,6 +338,53 @@ function normalizeConfig(config: any): any {
331
338
  return config;
332
339
  }
333
340
 
341
+ function updatePageUrlPath(model: PageModel) {
342
+ // set default urlPath if not set
343
+ if (!model.urlPath) {
344
+ model.urlPath = '/{slug}';
345
+ }
346
+ }
347
+
348
+ /**
349
+ * Sets the page model's filePath pattern.
350
+ * If the model has `filePath` property, it is prefixed with `pagesDir` and returned.
351
+ * If the model has no `filePath` property, then `filePath` is naively inferred by
352
+ * prefixing `urlPath` with `pagesDir` and appending the `.md` extension.
353
+ */
354
+ function updatePageFilePath(model: PageModel, config: Config) {
355
+ let filePath;
356
+ if (model.filePath) {
357
+ filePath = model.filePath;
358
+ } else if (model.file) {
359
+ filePath = model.file;
360
+ } else {
361
+ const urlPath = model.urlPath;
362
+ if (urlPath === '/') {
363
+ filePath = 'index.md';
364
+ } else if (_.trim(urlPath, '/') === 'posts/{slug}' && config.ssgName === 'jekyll') {
365
+ filePath = '_posts/{moment_format("YYYY-MM-DD")}-{slug}.md';
366
+ } else {
367
+ filePath = _.trim(urlPath, '/') + '.md';
368
+ }
369
+ }
370
+ const parentDir = _.trim(config.pagesDir ?? '', '/');
371
+ model.filePath = path.join(parentDir, filePath);
372
+ }
373
+
374
+ function updateDataFilePath(model: DataModel, config: Config) {
375
+ let filePath;
376
+ if (model.filePath) {
377
+ filePath = model.filePath;
378
+ } else if (model.file) {
379
+ filePath = model.file;
380
+ } else {
381
+ const folder = _.trim(_.get(model, 'folder'), '/');
382
+ filePath = _.trim(`${folder}/{slug}.json`, '/');
383
+ }
384
+ const parentDir = _.trim(config.dataDir ?? '', '/');
385
+ model.filePath = path.join(parentDir, filePath);
386
+ }
387
+
334
388
  function addMarkdownContentField(model: PageModel) {
335
389
  if (!model.hideContent) {
336
390
  append(model, 'fields', {
@@ -2,31 +2,65 @@ import _ from 'lodash';
2
2
  import { copyIfNotSet } from '@stackbit/utils';
3
3
 
4
4
  import { Model, YamlModel, ModelMap } from '../config/config-types';
5
+ import { ConfigValidationError } from '../config/config-errors';
5
6
 
6
- export function extendModels(models: Model[]): Model[] {
7
- const memorized = _.memoize(extendModel, (model: YamlModel, modelName: string) => modelName);
7
+ export function extendModelArray(models: Model[]): { models: Model[]; errors: ConfigValidationError[] } {
8
+ const memorized = _.memoize(extendModel, (model, modelName) => modelName);
8
9
  const modelsByName = _.keyBy(models, 'name');
9
- return _.map(models, (model) => {
10
- // YamlModel is the same as Model just without 'name' and '__metadata' properties
11
- return memorized(model as YamlModel, model.name, modelsByName) as Model;
12
- });
10
+ return _.reduce(
11
+ models,
12
+ (result: { models: Model[]; errors: ConfigValidationError[] }, model) => {
13
+ // YamlModel is the same as Model just without 'name' and '__metadata' properties
14
+ const { model: extendedModel, errors } = memorized(model, model.name, modelsByName);
15
+ return {
16
+ models: result.models.concat(extendedModel),
17
+ errors: result.errors.concat(errors)
18
+ };
19
+ },
20
+ { models: [], errors: [] }
21
+ );
13
22
  }
14
23
 
15
- export function extendModelMap(models: ModelMap): ModelMap {
16
- const memorized = _.memoize(extendModel, (model: YamlModel, modelName: string) => modelName);
17
- return _.mapValues(models, (model, modelName) => {
18
- return memorized(model, modelName, models);
19
- });
24
+ export function extendModelMap(models: ModelMap): { models: ModelMap; errors: ConfigValidationError[] } {
25
+ const memorized = _.memoize(extendModel, (model, modelName) => modelName);
26
+ return _.reduce(
27
+ models,
28
+ (result: { models: ModelMap; errors: ConfigValidationError[] }, model, modelName) => {
29
+ const { model: extendedModel, errors } = memorized(model, modelName, models);
30
+ return {
31
+ models: _.assign(result.models, { [modelName]: extendedModel }),
32
+ errors: result.errors.concat(errors)
33
+ };
34
+ },
35
+ { models: {}, errors: [] }
36
+ );
20
37
  }
21
38
 
22
- function extendModel(model: YamlModel, modelName: string, modelsByName: Record<string, YamlModel>, _extendPath: string[] = []) {
23
- assert(!_.includes(_extendPath, modelName), `cyclic dependency detected in model extend tree: ${_extendPath.join(' -> ')} -> ${modelName}`);
39
+ function extendModel<T extends Model | YamlModel>(
40
+ model: T,
41
+ modelName: string,
42
+ modelsByName: ModelMap,
43
+ _extendPath: string[] = []
44
+ ): { model: T; errors: ConfigValidationError[] } {
45
+ if (_.includes(_extendPath, modelName)) {
46
+ return {
47
+ model,
48
+ errors: [
49
+ new ConfigValidationError({
50
+ type: 'model.extends.circular',
51
+ message: `cyclic dependency detected in model extend tree: ${_extendPath.join(' -> ')} -> ${modelName}`,
52
+ fieldPath: [],
53
+ value: null
54
+ })
55
+ ]
56
+ };
57
+ }
24
58
 
25
- let _extends = _.get(model, 'extends');
59
+ let _extends: any = _.get(model, 'extends');
26
60
  let fields = _.get(model, 'fields');
27
61
 
28
62
  if (!_extends) {
29
- return model;
63
+ return { model, errors: [] };
30
64
  }
31
65
 
32
66
  delete model['extends'];
@@ -40,23 +74,43 @@ function extendModel(model: YamlModel, modelName: string, modelsByName: Record<s
40
74
  model.fields = fields;
41
75
  }
42
76
 
77
+ let errors: ConfigValidationError[] = [];
78
+
43
79
  _.forEach(_extends, (superModelName) => {
44
- let superModel = _.get(modelsByName, superModelName);
45
- assert(superModel, `model '${modelName}' extends non existing model '${superModelName}'`);
46
- assert(
47
- superModel.type === 'object',
48
- `model '${modelName}' extends models of type '${superModel.type}', only model of the 'object' type can be extended`
49
- );
50
- superModel = extendModel(superModel, superModelName, modelsByName, _extendPath.concat(modelName));
51
- copyIfNotSet(superModel, 'hideContent', model, 'hideContent');
52
- copyIfNotSet(superModel, 'singleInstance', model, 'singleInstance');
53
- copyIfNotSet(superModel, 'labelField', model, 'labelField');
54
- copyIfNotSet(superModel, 'variantField', model, 'variantField');
55
- if (Array.isArray(superModel.fieldGroups) && superModel.fieldGroups.length > 0) {
56
- model.fieldGroups = _.uniqBy(_.concat(superModel.fieldGroups, _.get(model, 'fieldGroups', [])), 'name');
80
+ const superModel = _.get(modelsByName, superModelName);
81
+ if (!superModel) {
82
+ errors.push(
83
+ new ConfigValidationError({
84
+ type: 'model.extends.model.not.found',
85
+ message: `model '${modelName}' extends non existing model '${superModelName}'`,
86
+ fieldPath: [],
87
+ value: null
88
+ })
89
+ );
90
+ return;
91
+ }
92
+ if (superModel.type !== 'object') {
93
+ errors.push(
94
+ new ConfigValidationError({
95
+ type: 'model.extends.non.object.model',
96
+ message: `model '${modelName}' extends models of type '${superModel.type}', only model of the 'object' type can be extended`,
97
+ fieldPath: [],
98
+ value: null
99
+ })
100
+ );
101
+ return;
102
+ }
103
+ const { model: extendedSuperModel, errors: nestedErrors } = extendModel(superModel, superModelName, modelsByName, _extendPath.concat(modelName));
104
+ errors = errors.concat(nestedErrors);
105
+ copyIfNotSet(extendedSuperModel, 'hideContent', model, 'hideContent');
106
+ copyIfNotSet(extendedSuperModel, 'singleInstance', model, 'singleInstance');
107
+ copyIfNotSet(extendedSuperModel, 'labelField', model, 'labelField');
108
+ copyIfNotSet(extendedSuperModel, 'variantField', model, 'variantField');
109
+ if (Array.isArray(extendedSuperModel.fieldGroups) && extendedSuperModel.fieldGroups.length > 0) {
110
+ model.fieldGroups = _.uniqBy(_.concat(extendedSuperModel.fieldGroups, _.get(model, 'fieldGroups', [])), 'name');
57
111
  }
58
112
  let idx = 0;
59
- _.forEach(superModel.fields, (superField) => {
113
+ _.forEach(extendedSuperModel.fields, (superField) => {
60
114
  const field = _.find(fields, { name: superField.name });
61
115
  if (field) {
62
116
  _.defaultsDeep(field, _.cloneDeep(superField));
@@ -66,11 +120,5 @@ function extendModel(model: YamlModel, modelName: string, modelsByName: Record<s
66
120
  });
67
121
  });
68
122
 
69
- return model;
70
- }
71
-
72
- function assert(value: any, message: string) {
73
- if (!value) {
74
- throw new Error(message);
75
- }
123
+ return { model, errors };
76
124
  }