@stackbit/sdk 0.2.23 → 0.2.27

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,8 @@
1
1
  import { ConfigError, ConfigLoadError, ConfigValidationError } from './config-errors';
2
- import { Config } from './config-types';
2
+ import { Config, Model, ModelsSource } from './config-types';
3
3
  export interface ConfigLoaderOptions {
4
- [option: string]: any;
5
4
  dirPath: string;
5
+ modelsSource?: ModelsSource;
6
6
  }
7
7
  export interface ConfigLoaderResult {
8
8
  valid: boolean;
@@ -15,8 +15,8 @@ export interface NormalizedValidationResult {
15
15
  errors: ConfigValidationError[];
16
16
  }
17
17
  export interface TempConfigLoaderResult {
18
- config?: Record<string, unknown>;
18
+ config?: Record<string, any>;
19
19
  errors: ConfigLoadError[];
20
20
  }
21
- export declare function loadConfig({ dirPath, ...options }: ConfigLoaderOptions): Promise<ConfigLoaderResult>;
22
- export declare function validateAndNormalizeConfig(config: any): NormalizedValidationResult;
21
+ export declare function loadConfig({ dirPath, modelsSource }: ConfigLoaderOptions): Promise<ConfigLoaderResult>;
22
+ export declare function validateAndNormalizeConfig(config: Record<string, any>, externalModels?: Model[]): NormalizedValidationResult;
@@ -33,67 +33,73 @@ const config_errors_1 = require("./config-errors");
33
33
  const utils_1 = require("../utils");
34
34
  const utils_2 = require("@stackbit/utils");
35
35
  const presets_loader_1 = require("./presets-loader");
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) {
36
+ async function loadConfig({ dirPath, modelsSource }) {
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, modelsSource);
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 stackbitYamlResult = await loadConfigFromStackbitYaml(dirPath);
85
+ if (stackbitYamlResult.error) {
86
+ return { errors: [stackbitYamlResult.error] };
87
+ }
88
+ const { models: modelsFromFiles, errors: fileModelsErrors } = await loadModelsFromFiles(dirPath, stackbitYamlResult.config);
89
+ const mergedModels = mergeConfigModelsWithModelsFromFiles((_a = stackbitYamlResult.config.models) !== null && _a !== void 0 ? _a : {}, modelsFromFiles);
90
+ return {
91
+ config: {
92
+ ...stackbitYamlResult.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,17 +170,19 @@ async function readModelFilesFromDir(modelsDir) {
164
170
  }
165
171
  });
166
172
  }
167
- async function loadModelsFromExternalSource(config, options) {
168
- const modelsSource = lodash_1.default.get(config, 'modelsSource', {});
173
+ async function loadModelsFromExternalSource(config, dirPath, modelsSource) {
174
+ modelsSource = lodash_1.default.assign({}, modelsSource, config.modelSource);
169
175
  const sourceType = lodash_1.default.get(modelsSource, 'type', 'files');
170
176
  if (sourceType === 'files') {
177
+ // we already loaded models from files inside loadModelsFromFiles function
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.resolve(dirPath, 'node_modules', contentfulModule);
183
+ const module = await Promise.resolve().then(() => __importStar(require(modulePath)));
176
184
  try {
177
- const { models } = await module.fetchAndConvertSchema(options);
185
+ const { models } = await module.fetchAndConvertSchema(lodash_1.default.omit(modelsSource, ['type', 'module']));
178
186
  return {
179
187
  models: models,
180
188
  errors: []
@@ -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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"}
@@ -80,11 +80,13 @@ export interface ModelsSourceFiles {
80
80
  export interface ModelsSourceContentful {
81
81
  type: 'contentful';
82
82
  module?: string;
83
+ [key: string]: any;
83
84
  }
84
85
  export interface ModelsSourceSanity {
85
86
  type: 'sanity';
86
87
  sanityStudioPath: string;
87
88
  module?: string;
89
+ [key: string]: any;
88
90
  }
89
91
  /*******************
90
92
  *** Model Types ***
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/sdk",
3
- "version": "0.2.23",
3
+ "version": "0.2.27",
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
@@ -26,12 +26,12 @@ import {
26
26
  getModelFieldForModelKeyPath
27
27
  } from '../utils';
28
28
  import { append, omitByNil, parseFile, readDirRecursively, reducePromise, rename } from '@stackbit/utils';
29
- import { Config, DataModel, FieldEnum, FieldModel, FieldObjectProps, Model, PageModel, YamlModel } from './config-types';
29
+ import { Config, DataModel, FieldEnum, FieldModel, FieldObjectProps, Model, ModelsSource, PageModel, YamlModel } from './config-types';
30
30
  import { loadPresets } from './presets-loader';
31
31
 
32
32
  export interface ConfigLoaderOptions {
33
- [option: string]: any;
34
33
  dirPath: string;
34
+ modelsSource?: ModelsSource;
35
35
  }
36
36
 
37
37
  export interface ConfigLoaderResult {
@@ -47,83 +47,92 @@ export interface NormalizedValidationResult {
47
47
  }
48
48
 
49
49
  export interface TempConfigLoaderResult {
50
- config?: Record<string, unknown>;
50
+ config?: Record<string, any>;
51
51
  errors: ConfigLoadError[];
52
52
  }
53
53
 
54
- 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
- }
54
+ export async function loadConfig({ dirPath, modelsSource }: ConfigLoaderOptions): Promise<ConfigLoaderResult> {
55
+ const { config, errors: configLoadErrors } = await loadConfigFromDir(dirPath);
65
56
 
66
- if (!configLoadResult.config) {
57
+ if (!config) {
67
58
  return {
68
59
  valid: false,
69
60
  config: null,
70
- errors: configLoadResult.errors
61
+ errors: configLoadErrors
71
62
  };
72
63
  }
73
64
 
74
- const externalModelsResult = await loadModelsFromExternalSource(configLoadResult.config, options);
75
-
76
- const mergedConfig = mergeConfigWithExternalModels(configLoadResult.config, externalModelsResult.models);
65
+ const { models: externalModels, errors: externalModelsLoadErrors } = await loadModelsFromExternalSource(config, dirPath, modelsSource);
77
66
 
78
- const normalizedResult = validateAndNormalizeConfig(mergedConfig);
67
+ const normalizedResult = validateAndNormalizeConfig(config, externalModels);
79
68
 
80
69
  const presetsResult = await loadPresets(dirPath, normalizedResult.config);
81
70
 
82
71
  return {
83
72
  valid: normalizedResult.valid,
84
73
  config: presetsResult.config,
85
- errors: [...configLoadResult.errors, ...externalModelsResult.errors, ...normalizedResult.errors, ...presetsResult.errors]
74
+ errors: [...configLoadErrors, ...externalModelsLoadErrors, ...normalizedResult.errors, ...presetsResult.errors]
86
75
  };
87
76
  }
88
77
 
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
-
78
+ export function validateAndNormalizeConfig(config: Record<string, any>, externalModels?: Model[]): NormalizedValidationResult {
95
79
  // extend config models having the "extends" property
96
- // this must be done before main config validation as some properties like
80
+ // this must be done before any validation as some properties like
97
81
  // the labelField will not work when validating models without extending them first
98
- const { models, errors: extendModelErrors } = extendModelMap(config?.models || {});
99
- config.models = models;
82
+ const { models: extendedModels, errors: extendModelErrors } = extendModelMap(config.models as any);
83
+ const extendedConfig = {
84
+ ...config,
85
+ models: extendedModels
86
+ };
87
+
88
+ const { config: mergedConfig, errors: externalModelsMergeErrors } = mergeConfigWithExternalModels(extendedConfig, externalModels);
89
+
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 { value: configWithContentModels, errors: contentModelsErrors } = validateAndExtendContentModels(mergedConfig);
100
93
 
101
94
  // normalize config - backward compatibility updates, adding extra fields like "markdown_content", "type" and "layout",
102
95
  // and setting other default values.
103
- config = normalizeConfig(config);
96
+ const normalizedConfig = normalizeConfig(configWithContentModels);
104
97
 
105
98
  // validate config
106
- const configValidationResult = validateConfig(config);
99
+ const { value: validatedConfig, errors: validationErrors } = validateConfig(normalizedConfig);
100
+
101
+ const errors = [...extendModelErrors, ...externalModelsMergeErrors, ...contentModelsErrors, ...validationErrors];
107
102
 
108
- const errors = [...contentModelsValidationResult.errors, ...extendModelErrors, ...configValidationResult.errors];
109
103
  return normalizeValidationResult({
110
104
  valid: _.isEmpty(errors),
111
- value: configValidationResult.value,
105
+ value: validatedConfig,
112
106
  errors: errors
113
107
  });
114
108
  }
115
109
 
116
110
  async function loadConfigFromDir(dirPath: string): Promise<TempConfigLoaderResult> {
117
- const { config, error } = await loadConfigFromStackbitYaml(dirPath);
118
- if (error) {
119
- return { errors: [error] };
111
+ try {
112
+ const stackbitYamlResult = await loadConfigFromStackbitYaml(dirPath);
113
+ if (stackbitYamlResult.error) {
114
+ return { errors: [stackbitYamlResult.error] };
115
+ }
116
+
117
+ const { models: modelsFromFiles, errors: fileModelsErrors } = await loadModelsFromFiles(dirPath, stackbitYamlResult.config);
118
+
119
+ const mergedModels = mergeConfigModelsWithModelsFromFiles(stackbitYamlResult.config.models ?? {}, modelsFromFiles);
120
+
121
+ return {
122
+ config: {
123
+ ...stackbitYamlResult.config,
124
+ models: mergedModels
125
+ },
126
+ errors: fileModelsErrors
127
+ };
128
+ } catch (error) {
129
+ return {
130
+ errors: [new ConfigLoadError(`Error loading Stackbit configuration: ${error.message}`, { originalError: error })]
131
+ };
120
132
  }
121
- const modelsFromFileResult = await loadModelsFromFiles(dirPath, config);
122
- const mergedConfig = mergeConfigModelsWithModelsFromFiles(config, modelsFromFileResult.models);
123
- return { config: mergedConfig, errors: modelsFromFileResult.errors };
124
133
  }
125
134
 
126
- type StackbitYamlConfigResult = { config: any; error?: undefined } | { config?: undefined; error: ConfigLoadError };
135
+ type StackbitYamlConfigResult = { config: Record<string, any>; error?: never } | { config?: never; error: ConfigLoadError };
127
136
 
128
137
  async function loadConfigFromStackbitYaml(dirPath: string): Promise<StackbitYamlConfigResult> {
129
138
  const stackbitYamlPath = path.join(dirPath, 'stackbit.yaml');
@@ -143,7 +152,7 @@ async function loadConfigFromStackbitYaml(dirPath: string): Promise<StackbitYaml
143
152
  return { config };
144
153
  }
145
154
 
146
- async function loadModelsFromFiles(dirPath: string, config: any): Promise<{ models: Record<string, any>; errors: ConfigLoadError[] }> {
155
+ async function loadModelsFromFiles(dirPath: string, config: Record<string, any>): Promise<{ models: Record<string, any>; errors: ConfigLoadError[] }> {
147
156
  const modelsSource = _.get(config, 'modelsSource', {});
148
157
  const sourceType = _.get(modelsSource, 'type', 'files');
149
158
  const defaultModelDirs = ['node_modules/@stackbit/components/models', '.stackbit/models'];
@@ -207,16 +216,22 @@ async function readModelFilesFromDir(modelsDir: string) {
207
216
  });
208
217
  }
209
218
 
210
- async function loadModelsFromExternalSource(config: any, options: any): Promise<{ models: Model[]; errors: ConfigLoadError[] }> {
211
- const modelsSource = _.get(config, 'modelsSource', {});
219
+ async function loadModelsFromExternalSource(
220
+ config: Record<string, any>,
221
+ dirPath: string,
222
+ modelsSource?: ModelsSource
223
+ ): Promise<{ models: Model[]; errors: ConfigLoadError[] }> {
224
+ modelsSource = _.assign({}, modelsSource, config.modelSource);
212
225
  const sourceType = _.get(modelsSource, 'type', 'files');
213
226
  if (sourceType === 'files') {
227
+ // we already loaded models from files inside loadModelsFromFiles function
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.resolve(dirPath, 'node_modules', contentfulModule);
232
+ const module = await import(modulePath);
218
233
  try {
219
- const { models } = await module.fetchAndConvertSchema(options);
234
+ const { models } = await module.fetchAndConvertSchema(_.omit(modelsSource, ['type', 'module']));
220
235
  return {
221
236
  models: models,
222
237
  errors: []
@@ -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
 
@@ -95,12 +95,14 @@ export interface ModelsSourceFiles {
95
95
  export interface ModelsSourceContentful {
96
96
  type: 'contentful';
97
97
  module?: string;
98
+ [key: string]: any;
98
99
  }
99
100
 
100
101
  export interface ModelsSourceSanity {
101
102
  type: 'sanity';
102
103
  sanityStudioPath: string;
103
104
  module?: string;
105
+ [key: string]: any;
104
106
  }
105
107
 
106
108
  /*******************