sfdx-experiences-plugin
Version:
SFDX plugin to manage ExperienceBundle metadata
70 lines • 3.68 kB
JavaScript
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
;