@itxch/contentful-import
Version:
This tool allows you to import JSON dump exported by contentful-export
62 lines (61 loc) • 2.1 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const lodashEs = require("lodash-es");
function contentTypes(contentType) {
return contentType;
}
function tags(tag) {
return tag;
}
function entries(entry, _, tagsEnabled = false) {
return removeMetadataTags(entry, tagsEnabled);
}
function webhooks(webhook) {
if (webhook.httpBasicUsername) {
delete webhook.httpBasicUsername;
}
if (webhook.headers) {
webhook.headers = webhook.headers.filter((header) => !header.secret);
}
return webhook;
}
function assets(asset, _, tagsEnabled = false) {
const transformedAsset = lodashEs.omit(asset, "sys");
transformedAsset.sys = lodashEs.pick(asset.sys, "id");
transformedAsset.fields = lodashEs.pick(asset.fields, "title", "description");
transformedAsset.fields.file = lodashEs.reduce(
asset.fields.file,
(newFile, localizedFile, locale) => {
newFile[locale] = lodashEs.pick(localizedFile, "contentType", "fileName");
if (!localizedFile.uploadFrom) {
const assetUrl = localizedFile.url || localizedFile.upload;
newFile[locale].upload = `${/^(http|https):\/\//i.test(assetUrl) ? "" : "https:"}${assetUrl}`;
} else {
newFile[locale].uploadFrom = localizedFile.uploadFrom;
}
return newFile;
},
{}
);
return removeMetadataTags(transformedAsset, tagsEnabled);
}
function locales(locale, destinationLocales) {
const transformedLocale = lodashEs.pick(locale, "code", "name", "contentManagementApi", "contentDeliveryApi", "fallbackCode", "optional");
const destinationLocale = lodashEs.find(destinationLocales, { code: locale.code });
if (destinationLocale) {
transformedLocale.sys = lodashEs.pick(destinationLocale.sys, "id");
}
return transformedLocale;
}
function removeMetadataTags(entity, tagsEnabled = false) {
if (!tagsEnabled) {
delete entity.metadata;
}
return entity;
}
exports.assets = assets;
exports.contentTypes = contentTypes;
exports.entries = entries;
exports.locales = locales;
exports.tags = tags;
exports.webhooks = webhooks;