@stackbit/cms-contentful
Version:
Stackbit Contentful CMS Interface
42 lines • 1.58 kB
JavaScript
;
const _ = require('lodash');
module.exports = {
localizeModels: localizeModels
};
function localizeModels(models, defaultLocale, locale) {
// if locale was not provided, assume localization for defaultLocale
if (!locale) {
locale = defaultLocale;
}
return models.map((model) => {
const { fields, ...restModel } = model;
return {
...restModel,
fields: fields.map((field) => {
const { default: defaultValue, ...restField } = field;
if (_.isPlainObject(defaultValue)) {
if (!field.localized && defaultLocale && _.has(defaultValue, defaultLocale)) {
return {
...restField,
default: defaultValue[defaultLocale]
};
}
else if (field.localized && locale && _.has(defaultValue, locale)) {
return {
...restField,
default: defaultValue[locale]
};
}
else {
return restField;
}
}
// Fallback to older projects that are using stackbit contentful
// extensions that store un-localized default values as primitives
// return field with default value as-is
return field;
})
};
});
}
//# sourceMappingURL=localize-models.js.map