@stackbit/sdk 0.2.23 → 0.2.24

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.
@@ -1,8 +1,9 @@
1
1
  import { ConfigError, ConfigLoadError, ConfigValidationError } from './config-errors';
2
- import { Config } from './config-types';
2
+ import { Config, Model } from './config-types';
3
3
  export interface ConfigLoaderOptions {
4
4
  [option: string]: any;
5
5
  dirPath: string;
6
+ modelsSource?: string;
6
7
  }
7
8
  export interface ConfigLoaderResult {
8
9
  valid: boolean;
@@ -19,4 +20,4 @@ export interface TempConfigLoaderResult {
19
20
  errors: ConfigLoadError[];
20
21
  }
21
22
  export declare function loadConfig({ dirPath, ...options }: ConfigLoaderOptions): Promise<ConfigLoaderResult>;
22
- export declare function validateAndNormalizeConfig(config: any): NormalizedValidationResult;
23
+ export declare function validateAndNormalizeConfig(config: any, externalModels?: Model[]): NormalizedValidationResult;
@@ -34,66 +34,72 @@ const utils_1 = require("../utils");
34
34
  const utils_2 = require("@stackbit/utils");
35
35
  const presets_loader_1 = require("./presets-loader");
36
36
  async function loadConfig({ dirPath, ...options }) {
37
- let configLoadResult;
38
- try {
39
- configLoadResult = await loadConfigFromDir(dirPath);
40
- }
41
- catch (error) {
42
- return {
43
- valid: false,
44
- config: null,
45
- errors: [new config_errors_1.ConfigLoadError(`Error loading Stackbit configuration: ${error.message}`, { originalError: error })]
46
- };
47
- }
48
- if (!configLoadResult.config) {
37
+ const { config, errors: configLoadErrors } = await loadConfigFromDir(dirPath);
38
+ if (!config) {
49
39
  return {
50
40
  valid: false,
51
41
  config: null,
52
- errors: configLoadResult.errors
42
+ errors: configLoadErrors
53
43
  };
54
44
  }
55
- const externalModelsResult = await loadModelsFromExternalSource(configLoadResult.config, options);
56
- const mergedConfig = mergeConfigWithExternalModels(configLoadResult.config, externalModelsResult.models);
57
- const normalizedResult = validateAndNormalizeConfig(mergedConfig);
45
+ const { models: externalModels, errors: externalModelsLoadErrors } = await loadModelsFromExternalSource(config, dirPath, options);
46
+ const normalizedResult = validateAndNormalizeConfig(config, externalModels);
58
47
  const presetsResult = await presets_loader_1.loadPresets(dirPath, normalizedResult.config);
59
48
  return {
60
49
  valid: normalizedResult.valid,
61
50
  config: presetsResult.config,
62
- errors: [...configLoadResult.errors, ...externalModelsResult.errors, ...normalizedResult.errors, ...presetsResult.errors]
51
+ errors: [...configLoadErrors, ...externalModelsLoadErrors, ...normalizedResult.errors, ...presetsResult.errors]
63
52
  };
64
53
  }
65
54
  exports.loadConfig = loadConfig;
66
- function validateAndNormalizeConfig(config) {
67
- // validate the "contentModels" and extend config models with "contentModels"
68
- // this must be done before main config validation to make it independent of "contentModels".
69
- const contentModelsValidationResult = validateAndExtendContentModels(config);
70
- config = contentModelsValidationResult.value;
55
+ function validateAndNormalizeConfig(config, externalModels) {
71
56
  // extend config models having the "extends" property
72
- // this must be done before main config validation as some properties like
57
+ // this must be done before any validation as some properties like
73
58
  // the labelField will not work when validating models without extending them first
74
- const { models, errors: extendModelErrors } = utils_1.extendModelMap((config === null || config === void 0 ? void 0 : config.models) || {});
75
- config.models = models;
59
+ const { models: extendedModels, errors: extendModelErrors } = utils_1.extendModelMap(config.models);
60
+ const extendedConfig = {
61
+ ...config,
62
+ models: extendedModels
63
+ };
64
+ const { config: mergedConfig, errors: externalModelsMergeErrors } = mergeConfigWithExternalModels(extendedConfig, externalModels);
65
+ // validate the "contentModels" and extend config models with "contentModels"
66
+ // this must be done before main config validation to make it independent of "contentModels".
67
+ const { value: configWithContentModels, errors: contentModelsErrors } = validateAndExtendContentModels(mergedConfig);
76
68
  // normalize config - backward compatibility updates, adding extra fields like "markdown_content", "type" and "layout",
77
69
  // and setting other default values.
78
- config = normalizeConfig(config);
70
+ const normalizedConfig = normalizeConfig(configWithContentModels);
79
71
  // validate config
80
- const configValidationResult = config_validator_1.validateConfig(config);
81
- const errors = [...contentModelsValidationResult.errors, ...extendModelErrors, ...configValidationResult.errors];
72
+ const { value: validatedConfig, errors: validationErrors } = config_validator_1.validateConfig(normalizedConfig);
73
+ const errors = [...extendModelErrors, ...externalModelsMergeErrors, ...contentModelsErrors, ...validationErrors];
82
74
  return normalizeValidationResult({
83
75
  valid: lodash_1.default.isEmpty(errors),
84
- value: configValidationResult.value,
76
+ value: validatedConfig,
85
77
  errors: errors
86
78
  });
87
79
  }
88
80
  exports.validateAndNormalizeConfig = validateAndNormalizeConfig;
89
81
  async function loadConfigFromDir(dirPath) {
90
- const { config, error } = await loadConfigFromStackbitYaml(dirPath);
91
- if (error) {
92
- return { errors: [error] };
82
+ var _a;
83
+ try {
84
+ const { config, error } = await loadConfigFromStackbitYaml(dirPath);
85
+ if (error) {
86
+ return { errors: [error] };
87
+ }
88
+ const { models: modelsFromFiles, errors: fileModelsErrors } = await loadModelsFromFiles(dirPath, config);
89
+ const mergedModels = mergeConfigModelsWithModelsFromFiles((_a = config.models) !== null && _a !== void 0 ? _a : {}, modelsFromFiles);
90
+ return {
91
+ config: {
92
+ ...config,
93
+ models: mergedModels
94
+ },
95
+ errors: fileModelsErrors
96
+ };
97
+ }
98
+ catch (error) {
99
+ return {
100
+ errors: [new config_errors_1.ConfigLoadError(`Error loading Stackbit configuration: ${error.message}`, { originalError: error })]
101
+ };
93
102
  }
94
- const modelsFromFileResult = await loadModelsFromFiles(dirPath, config);
95
- const mergedConfig = mergeConfigModelsWithModelsFromFiles(config, modelsFromFileResult.models);
96
- return { config: mergedConfig, errors: modelsFromFileResult.errors };
97
103
  }
98
104
  async function loadConfigFromStackbitYaml(dirPath) {
99
105
  const stackbitYamlPath = path_1.default.join(dirPath, 'stackbit.yaml');
@@ -164,15 +170,17 @@ async function readModelFilesFromDir(modelsDir) {
164
170
  }
165
171
  });
166
172
  }
167
- async function loadModelsFromExternalSource(config, options) {
173
+ async function loadModelsFromExternalSource(config, dirPath, options) {
174
+ var _a;
168
175
  const modelsSource = lodash_1.default.get(config, 'modelsSource', {});
169
- const sourceType = lodash_1.default.get(modelsSource, 'type', 'files');
176
+ const sourceType = (_a = options.modelsSource) !== null && _a !== void 0 ? _a : lodash_1.default.get(modelsSource, 'type', 'files');
170
177
  if (sourceType === 'files') {
171
178
  return { models: [], errors: [] };
172
179
  }
173
180
  else if (sourceType === 'contentful') {
174
181
  const contentfulModule = lodash_1.default.get(modelsSource, 'module', '@stackbit/cms-contentful');
175
- const module = await Promise.resolve().then(() => __importStar(require(contentfulModule)));
182
+ const modulePath = path_1.default.join(dirPath, 'node_modules', contentfulModule);
183
+ const module = await Promise.resolve().then(() => __importStar(require(modulePath)));
176
184
  try {
177
185
  const { models } = await module.fetchAndConvertSchema(options);
178
186
  return {
@@ -220,9 +228,7 @@ async function loadConfigFromDotStackbit(dirPath) {
220
228
  }
221
229
  return lodash_1.default.isEmpty(config) ? null : config;
222
230
  }
223
- function mergeConfigModelsWithModelsFromFiles(config, modelsFromFiles) {
224
- var _a;
225
- const configModels = (_a = config.models) !== null && _a !== void 0 ? _a : {};
231
+ function mergeConfigModelsWithModelsFromFiles(configModels, modelsFromFiles) {
226
232
  const mergedModels = lodash_1.default.mapValues(modelsFromFiles, (modelFromFile, modelName) => {
227
233
  var _a, _b, _c;
228
234
  // resolve thumbnails of models loaded from files
@@ -240,7 +246,7 @@ function mergeConfigModelsWithModelsFromFiles(config, modelsFromFiles) {
240
246
  resolveThumbnailPathForEnumField(field, modelFilePath);
241
247
  }
242
248
  });
243
- const configModel = configModels[modelName];
249
+ const configModel = lodash_1.default.get(configModels, modelName);
244
250
  if (!configModel) {
245
251
  return modelFromFile;
246
252
  }
@@ -248,55 +254,65 @@ function mergeConfigModelsWithModelsFromFiles(config, modelsFromFiles) {
248
254
  fields: lodash_1.default.unionBy((_b = configModel === null || configModel === void 0 ? void 0 : configModel.fields) !== null && _b !== void 0 ? _b : [], (_c = modelFromFile === null || modelFromFile === void 0 ? void 0 : modelFromFile.fields) !== null && _c !== void 0 ? _c : [], 'name')
249
255
  });
250
256
  });
251
- return {
252
- ...config,
253
- models: Object.assign({}, configModels, mergedModels)
254
- };
257
+ return Object.assign({}, configModels, mergedModels);
255
258
  }
256
259
  function mergeConfigWithExternalModels(config, externalModels) {
257
260
  var _a;
258
261
  if (!externalModels || externalModels.length === 0) {
259
- return config;
262
+ return {
263
+ config,
264
+ errors: []
265
+ };
260
266
  }
261
267
  const stackbitModels = (_a = config === null || config === void 0 ? void 0 : config.models) !== null && _a !== void 0 ? _a : {};
262
- externalModels = externalModels.map((externalModel) => {
263
- var _a;
264
- const stackbitModel = stackbitModels[externalModel.name];
265
- if (!stackbitModel) {
266
- return externalModel;
268
+ const errors = [];
269
+ const models = lodash_1.default.reduce(externalModels, (modelMap, externalModel) => {
270
+ const { name, ...rest } = externalModel;
271
+ return Object.assign(modelMap, { [name]: rest });
272
+ }, {});
273
+ lodash_1.default.forEach(stackbitModels, (stackbitModel, modelName) => {
274
+ var _a, _b;
275
+ let externalModel = models[modelName];
276
+ if (!externalModel) {
277
+ return;
267
278
  }
268
- const modelType = stackbitModel.type ? (stackbitModel.type === 'config' ? 'data' : stackbitModel.type) : 'object';
269
- const urlPath = modelType === 'page' ? (_a = stackbitModel === null || stackbitModel === void 0 ? void 0 : stackbitModel.urlPath) !== null && _a !== void 0 ? _a : '/{slug}' : null;
270
- const fieldGroups = stackbitModel === null || stackbitModel === void 0 ? void 0 : stackbitModel.fieldGroups;
271
- externalModel = Object.assign(externalModel, utils_2.omitByNil({
272
- __metadata: stackbitModel.__metadata,
279
+ const modelType = stackbitModel.type ? (stackbitModel.type === 'config' ? 'data' : stackbitModel.type) : (_a = externalModel.type) !== null && _a !== void 0 ? _a : 'object';
280
+ const urlPath = modelType === 'page' ? (_b = stackbitModel === null || stackbitModel === void 0 ? void 0 : stackbitModel.urlPath) !== null && _b !== void 0 ? _b : '/{slug}' : null;
281
+ externalModel = Object.assign({}, externalModel, lodash_1.default.pick(stackbitModel, ['__metadata', 'label', 'description', 'thumbnail', 'singleInstance', 'readOnly', 'labelField', 'fieldGroups']), utils_2.omitByNil({
273
282
  type: modelType,
274
- urlPath,
275
- fieldGroups
283
+ urlPath
276
284
  }));
277
- return utils_1.mapModelFieldsRecursively(externalModel, (field, modelKeyPath) => {
285
+ externalModel = utils_1.mapModelFieldsRecursively(externalModel, (field, modelKeyPath) => {
278
286
  const stackbitField = utils_1.getModelFieldForModelKeyPath(stackbitModel, modelKeyPath);
279
287
  if (!stackbitField) {
280
288
  return field;
281
289
  }
282
- const group = 'group' in stackbitField ? stackbitField.group : null;
283
- const controlType = 'controlType' in stackbitField ? stackbitField.controlType : null;
284
290
  let override = {};
285
- if ((stackbitField === null || stackbitField === void 0 ? void 0 : stackbitField.type) === 'style') {
291
+ if (stackbitField.type === 'style') {
286
292
  override = stackbitField;
287
293
  }
288
- return Object.assign({}, field, utils_2.omitByNil({
289
- group,
290
- controlType
291
- }), override);
294
+ else if (field.type === 'enum') {
295
+ override = lodash_1.default.pick(stackbitField, ['options']);
296
+ }
297
+ else if (field.type === 'color') {
298
+ override = { type: 'color' };
299
+ }
300
+ else if (field.type === 'number') {
301
+ override = lodash_1.default.pick(stackbitField, ['subtype', 'min', 'max', 'step', 'unit']);
302
+ }
303
+ else if (field.type === 'object') {
304
+ override = lodash_1.default.pick(stackbitField, ['labelField', 'thumbnail', 'fieldGroups']);
305
+ }
306
+ return Object.assign({}, field, lodash_1.default.pick(stackbitField, ['label', 'description', 'required', 'default', 'group', 'const', 'hidden', 'readOnly', 'controlType']), override);
292
307
  });
308
+ models[modelName] = externalModel;
293
309
  });
294
310
  return {
295
- ...config,
296
- models: lodash_1.default.mapValues(lodash_1.default.keyBy(externalModels, 'name'), (model) => {
297
- lodash_1.default.unset(model, 'name');
298
- return model;
299
- })
311
+ config: {
312
+ ...config,
313
+ models: models
314
+ },
315
+ errors: errors
300
316
  };
301
317
  }
302
318
  function normalizeConfig(config) {
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/sdk",
3
- "version": "0.2.23",
3
+ "version": "0.2.24",
4
4
  "description": "Stackbit SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -32,6 +32,7 @@ import { loadPresets } from './presets-loader';
32
32
  export interface ConfigLoaderOptions {
33
33
  [option: string]: any;
34
34
  dirPath: string;
35
+ modelsSource?: string;
35
36
  }
36
37
 
37
38
  export interface ConfigLoaderResult {
@@ -52,75 +53,84 @@ export interface TempConfigLoaderResult {
52
53
  }
53
54
 
54
55
  export async function loadConfig({ dirPath, ...options }: ConfigLoaderOptions): Promise<ConfigLoaderResult> {
55
- let configLoadResult: TempConfigLoaderResult;
56
- try {
57
- configLoadResult = await loadConfigFromDir(dirPath);
58
- } catch (error) {
59
- return {
60
- valid: false,
61
- config: null,
62
- errors: [new ConfigLoadError(`Error loading Stackbit configuration: ${error.message}`, { originalError: error })]
63
- };
64
- }
56
+ const { config, errors: configLoadErrors } = await loadConfigFromDir(dirPath);
65
57
 
66
- if (!configLoadResult.config) {
58
+ if (!config) {
67
59
  return {
68
60
  valid: false,
69
61
  config: null,
70
- errors: configLoadResult.errors
62
+ errors: configLoadErrors
71
63
  };
72
64
  }
73
65
 
74
- const externalModelsResult = await loadModelsFromExternalSource(configLoadResult.config, options);
75
-
76
- const mergedConfig = mergeConfigWithExternalModels(configLoadResult.config, externalModelsResult.models);
66
+ const { models: externalModels, errors: externalModelsLoadErrors } = await loadModelsFromExternalSource(config, dirPath, options);
77
67
 
78
- const normalizedResult = validateAndNormalizeConfig(mergedConfig);
68
+ const normalizedResult = validateAndNormalizeConfig(config, externalModels);
79
69
 
80
70
  const presetsResult = await loadPresets(dirPath, normalizedResult.config);
81
71
 
82
72
  return {
83
73
  valid: normalizedResult.valid,
84
74
  config: presetsResult.config,
85
- errors: [...configLoadResult.errors, ...externalModelsResult.errors, ...normalizedResult.errors, ...presetsResult.errors]
75
+ errors: [...configLoadErrors, ...externalModelsLoadErrors, ...normalizedResult.errors, ...presetsResult.errors]
86
76
  };
87
77
  }
88
78
 
89
- export function validateAndNormalizeConfig(config: any): NormalizedValidationResult {
90
- // validate the "contentModels" and extend config models with "contentModels"
91
- // this must be done before main config validation to make it independent of "contentModels".
92
- const contentModelsValidationResult = validateAndExtendContentModels(config);
93
- config = contentModelsValidationResult.value;
94
-
79
+ export function validateAndNormalizeConfig(config: any, externalModels?: Model[]): NormalizedValidationResult {
95
80
  // extend config models having the "extends" property
96
- // this must be done before main config validation as some properties like
81
+ // this must be done before any validation as some properties like
97
82
  // the labelField will not work when validating models without extending them first
98
- const { models, errors: extendModelErrors } = extendModelMap(config?.models || {});
99
- config.models = models;
83
+ const { models: extendedModels, errors: extendModelErrors } = extendModelMap(config.models as any);
84
+ const extendedConfig = {
85
+ ...config,
86
+ models: extendedModels
87
+ };
88
+
89
+ const { config: mergedConfig, errors: externalModelsMergeErrors } = mergeConfigWithExternalModels(extendedConfig, externalModels);
90
+
91
+ // validate the "contentModels" and extend config models with "contentModels"
92
+ // this must be done before main config validation to make it independent of "contentModels".
93
+ const { value: configWithContentModels, errors: contentModelsErrors } = validateAndExtendContentModels(mergedConfig);
100
94
 
101
95
  // normalize config - backward compatibility updates, adding extra fields like "markdown_content", "type" and "layout",
102
96
  // and setting other default values.
103
- config = normalizeConfig(config);
97
+ const normalizedConfig = normalizeConfig(configWithContentModels);
104
98
 
105
99
  // validate config
106
- const configValidationResult = validateConfig(config);
100
+ const { value: validatedConfig, errors: validationErrors } = validateConfig(normalizedConfig);
101
+
102
+ const errors = [...extendModelErrors, ...externalModelsMergeErrors, ...contentModelsErrors, ...validationErrors];
107
103
 
108
- const errors = [...contentModelsValidationResult.errors, ...extendModelErrors, ...configValidationResult.errors];
109
104
  return normalizeValidationResult({
110
105
  valid: _.isEmpty(errors),
111
- value: configValidationResult.value,
106
+ value: validatedConfig,
112
107
  errors: errors
113
108
  });
114
109
  }
115
110
 
116
111
  async function loadConfigFromDir(dirPath: string): Promise<TempConfigLoaderResult> {
117
- const { config, error } = await loadConfigFromStackbitYaml(dirPath);
118
- if (error) {
119
- return { errors: [error] };
112
+ try {
113
+ const { config, error } = await loadConfigFromStackbitYaml(dirPath);
114
+ if (error) {
115
+ return { errors: [error] };
116
+ }
117
+
118
+ const { models: modelsFromFiles, errors: fileModelsErrors } = await loadModelsFromFiles(dirPath, config);
119
+
120
+ const mergedModels = mergeConfigModelsWithModelsFromFiles(config.models ?? {}, modelsFromFiles);
121
+
122
+ return {
123
+ config: {
124
+ ...config,
125
+ models: mergedModels
126
+ },
127
+ errors: fileModelsErrors
128
+ };
129
+ } catch (error) {
130
+ return {
131
+ errors: [new ConfigLoadError(`Error loading Stackbit configuration: ${error.message}`, { originalError: error })]
132
+ };
120
133
  }
121
- const modelsFromFileResult = await loadModelsFromFiles(dirPath, config);
122
- const mergedConfig = mergeConfigModelsWithModelsFromFiles(config, modelsFromFileResult.models);
123
- return { config: mergedConfig, errors: modelsFromFileResult.errors };
124
134
  }
125
135
 
126
136
  type StackbitYamlConfigResult = { config: any; error?: undefined } | { config?: undefined; error: ConfigLoadError };
@@ -207,14 +217,19 @@ async function readModelFilesFromDir(modelsDir: string) {
207
217
  });
208
218
  }
209
219
 
210
- async function loadModelsFromExternalSource(config: any, options: any): Promise<{ models: Model[]; errors: ConfigLoadError[] }> {
220
+ async function loadModelsFromExternalSource(
221
+ config: any,
222
+ dirPath: string,
223
+ options: Omit<ConfigLoaderOptions, 'dirPath'>
224
+ ): Promise<{ models: Model[]; errors: ConfigLoadError[] }> {
211
225
  const modelsSource = _.get(config, 'modelsSource', {});
212
- const sourceType = _.get(modelsSource, 'type', 'files');
226
+ const sourceType = options.modelsSource ?? _.get(modelsSource, 'type', 'files');
213
227
  if (sourceType === 'files') {
214
228
  return { models: [], errors: [] };
215
229
  } else if (sourceType === 'contentful') {
216
230
  const contentfulModule = _.get(modelsSource, 'module', '@stackbit/cms-contentful');
217
- const module = await import(contentfulModule);
231
+ const modulePath = path.join(dirPath, 'node_modules', contentfulModule);
232
+ const module = await import(modulePath);
218
233
  try {
219
234
  const { models } = await module.fetchAndConvertSchema(options);
220
235
  return {
@@ -268,8 +283,7 @@ async function loadConfigFromDotStackbit(dirPath: string) {
268
283
  return _.isEmpty(config) ? null : config;
269
284
  }
270
285
 
271
- function mergeConfigModelsWithModelsFromFiles(config: any, modelsFromFiles: Record<string, any>) {
272
- const configModels = config.models ?? {};
286
+ function mergeConfigModelsWithModelsFromFiles(configModels: any, modelsFromFiles: Record<string, any>) {
273
287
  const mergedModels = _.mapValues(modelsFromFiles, (modelFromFile, modelName) => {
274
288
  // resolve thumbnails of models loaded from files
275
289
  const modelFilePath = modelFromFile.__metadata?.filePath;
@@ -286,7 +300,7 @@ function mergeConfigModelsWithModelsFromFiles(config: any, modelsFromFiles: Reco
286
300
  }
287
301
  });
288
302
 
289
- const configModel = configModels[modelName];
303
+ const configModel = _.get(configModels, modelName);
290
304
  if (!configModel) {
291
305
  return modelFromFile;
292
306
  }
@@ -295,71 +309,84 @@ function mergeConfigModelsWithModelsFromFiles(config: any, modelsFromFiles: Reco
295
309
  fields: _.unionBy(configModel?.fields ?? [], modelFromFile?.fields ?? [], 'name')
296
310
  });
297
311
  });
298
- return {
299
- ...config,
300
- models: Object.assign({}, configModels, mergedModels)
301
- };
312
+ return Object.assign({}, configModels, mergedModels);
302
313
  }
303
314
 
304
- function mergeConfigWithExternalModels(config: any, externalModels?: Model[]) {
315
+ function mergeConfigWithExternalModels(config: any, externalModels?: Model[]): { config: any; errors: ConfigValidationError[] } {
305
316
  if (!externalModels || externalModels.length === 0) {
306
- return config;
317
+ return {
318
+ config,
319
+ errors: []
320
+ };
307
321
  }
308
322
 
309
323
  const stackbitModels = config?.models ?? {};
324
+ const errors: ConfigValidationError[] = [];
310
325
 
311
- externalModels = externalModels.map((externalModel) => {
312
- const stackbitModel = stackbitModels[externalModel.name];
313
- if (!stackbitModel) {
314
- return externalModel;
326
+ const models = _.reduce(
327
+ externalModels,
328
+ (modelMap: Record<string, YamlModel>, externalModel) => {
329
+ const { name, ...rest } = externalModel;
330
+ return Object.assign(modelMap, { [name]: rest });
331
+ },
332
+ {}
333
+ );
334
+
335
+ _.forEach(stackbitModels, (stackbitModel: any, modelName: any) => {
336
+ let externalModel = models[modelName];
337
+ if (!externalModel) {
338
+ return;
315
339
  }
316
340
 
317
- const modelType = stackbitModel.type ? (stackbitModel.type === 'config' ? 'data' : stackbitModel.type) : 'object';
341
+ const modelType = stackbitModel.type ? (stackbitModel.type === 'config' ? 'data' : stackbitModel.type) : externalModel.type ?? 'object';
318
342
  const urlPath = modelType === 'page' ? stackbitModel?.urlPath ?? '/{slug}' : null;
319
- const fieldGroups = stackbitModel?.fieldGroups;
320
343
 
321
344
  externalModel = Object.assign(
345
+ {},
322
346
  externalModel,
347
+ _.pick(stackbitModel, ['__metadata', 'label', 'description', 'thumbnail', 'singleInstance', 'readOnly', 'labelField', 'fieldGroups']),
323
348
  omitByNil({
324
- __metadata: stackbitModel.__metadata,
325
349
  type: modelType,
326
- urlPath,
327
- fieldGroups
350
+ urlPath
328
351
  })
329
352
  );
330
353
 
331
- return mapModelFieldsRecursively(externalModel, (field, modelKeyPath) => {
354
+ externalModel = mapModelFieldsRecursively(externalModel as Model, (field, modelKeyPath) => {
332
355
  const stackbitField = getModelFieldForModelKeyPath(stackbitModel, modelKeyPath);
333
356
  if (!stackbitField) {
334
357
  return field;
335
358
  }
336
359
 
337
- const group = 'group' in stackbitField ? stackbitField.group : null;
338
- const controlType = 'controlType' in stackbitField ? stackbitField.controlType : null;
339
360
  let override = {};
340
-
341
- if (stackbitField?.type === 'style') {
361
+ if (stackbitField.type === 'style') {
342
362
  override = stackbitField;
363
+ } else if (field.type === 'enum') {
364
+ override = _.pick(stackbitField, ['options']);
365
+ } else if (field.type === 'color') {
366
+ override = { type: 'color' };
367
+ } else if (field.type === 'number') {
368
+ override = _.pick(stackbitField, ['subtype', 'min', 'max', 'step', 'unit']);
369
+ } else if (field.type === 'object') {
370
+ override = _.pick(stackbitField, ['labelField', 'thumbnail', 'fieldGroups']);
343
371
  }
344
372
 
345
373
  return Object.assign(
346
374
  {},
347
375
  field,
348
- omitByNil({
349
- group,
350
- controlType
351
- }),
376
+ _.pick(stackbitField, ['label', 'description', 'required', 'default', 'group', 'const', 'hidden', 'readOnly', 'controlType']),
352
377
  override
353
378
  );
354
- });
379
+ }) as YamlModel;
380
+
381
+ models[modelName] = externalModel;
355
382
  });
356
383
 
357
384
  return {
358
- ...config,
359
- models: _.mapValues(_.keyBy(externalModels, 'name'), (model) => {
360
- _.unset(model, 'name');
361
- return model;
362
- })
385
+ config: {
386
+ ...config,
387
+ models: models
388
+ },
389
+ errors: errors
363
390
  };
364
391
  }
365
392