UNPKG

sfdx-experiences-plugin

Version:
70 lines 3.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs_extra_1 = require("fs-extra"); const app_page_type_1 = require("./app-page-type"); const core_1 = require("./core"); const supportedSiteConfig = [ 'isAvailableToGuests', 'isFilteredComponentsView', 'isProgressiveRenderingEnabled', 'preferredDomain', 'trustedSitesForScript' ]; const supportedMainAppPageConfig = ['cmsSettings', 'headMarkup', 'isRelaxedCSPLevel']; const supportedLoginAppPageConfig = ['cmsSettings', 'isRelaxedCSPLevel']; /** * Copies the given site or app page configuration values from the source bundle to the target bundle. * * @param {string} sourceBundlePath Path to the source bundle. * @param {string} targetBundlePath Path to the target bundle. * @param {string[]} config Configuration names to copy. */ function copyConfig(sourceBundlePath, targetBundlePath, config) { const siteConfigToCopy = config.filter(givenConfig => supportedSiteConfig.includes(givenConfig)); const mainAppPageConfigToCopy = config.filter(givenConfig => supportedMainAppPageConfig.includes(givenConfig)); const loginAppPageConfigToCopy = config.filter(givenConfig => supportedLoginAppPageConfig.includes(givenConfig)); // Copy site configuration if (siteConfigToCopy.length > 0) { const sourceSiteConfig = core_1.getSiteConfig(sourceBundlePath); const targetSiteConfig = core_1.getSiteConfig(targetBundlePath); siteConfigToCopy.forEach(configKey => { if (typeof sourceSiteConfig.content[configKey] !== 'undefined') { targetSiteConfig.content[configKey] = sourceSiteConfig.content[configKey]; } else { delete targetSiteConfig.content[configKey]; } }); fs_extra_1.writeJsonSync(targetSiteConfig.filePath, targetSiteConfig.content, { spaces: 2 }); } // Copy main app page configuration if (mainAppPageConfigToCopy.length > 0) { const sourceMainAppPageConfig = core_1.getAppPageConfig(sourceBundlePath, app_page_type_1.AppPageType.Main); const targetMainAppPageConfig = core_1.getAppPageConfig(targetBundlePath, app_page_type_1.AppPageType.Main); mainAppPageConfigToCopy.forEach(configKey => { if (typeof sourceMainAppPageConfig.content[configKey] !== 'undefined') { targetMainAppPageConfig.content[configKey] = sourceMainAppPageConfig.content[configKey]; } else { delete targetMainAppPageConfig.content[configKey]; } }); fs_extra_1.writeJsonSync(targetMainAppPageConfig.filePath, targetMainAppPageConfig.content, { spaces: 2 }); } // Copy login app page configuration if (loginAppPageConfigToCopy.length > 0) { const sourceLoginAppPageConfig = core_1.getAppPageConfig(sourceBundlePath, app_page_type_1.AppPageType.Login); const targetLoginAppPageConfig = core_1.getAppPageConfig(targetBundlePath, app_page_type_1.AppPageType.Login); loginAppPageConfigToCopy.forEach(configKey => { if (typeof sourceLoginAppPageConfig.content[configKey] !== 'undefined') { targetLoginAppPageConfig.content[configKey] = sourceLoginAppPageConfig.content[configKey]; } else { delete targetLoginAppPageConfig.content[configKey]; } }); fs_extra_1.writeJsonSync(targetLoginAppPageConfig.filePath, targetLoginAppPageConfig.content, { spaces: 2 }); } } exports.default = copyConfig; //# sourceMappingURL=copy-config.js.map