storyblok-migrate
Version:
Component and content migrations for the headless CMS Storyblok
28 lines (22 loc) • 702 B
JavaScript
const discover = require(`./discover`);
module.exports = function migrate({ component = {}, content = {} }) {
const { migrations } = {
migrations: [],
...component,
};
migrations.forEach(migration => migration({ content }));
Object.values(content).forEach((rawSubContent) => {
const subContentArray = Array.isArray(rawSubContent)
? rawSubContent
: [rawSubContent];
subContentArray.forEach((subContent) => {
if (!subContent.component) return;
const subComponent = discover.componentByName(subContent.component);
if (!subComponent) return;
migrate({
component: subComponent,
content: subContent,
});
});
});
};