@spartacus/cdc
Version:
Customer Data Cloud Integration library for Spartacus
66 lines • 2.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addCdcFeature = void 0;
const schematics_1 = require("@angular-devkit/schematics");
const schematics_2 = require("@spartacus/schematics");
const package_json_1 = require("../../package.json");
const constants_1 = require("../constants");
function addCdcFeature(options) {
return (tree, context) => {
const packageJson = schematics_2.readPackageJson(tree);
schematics_2.validateSpartacusInstallation(packageJson);
return schematics_1.chain([
schematics_2.addPackageJsonDependenciesForLibrary(package_json_1.peerDependencies, options),
schematics_2.shouldAddFeature(schematics_2.CLI_CDC_FEATURE, options.features)
? addCdc(options, context)
: schematics_1.noop(),
]);
};
}
exports.addCdcFeature = addCdcFeature;
function addCdc(options, context) {
if (!options.javascriptUrl) {
context.logger.warn(`CDC JS SDK URL is not provided. Please run the schematic again, or make sure you update the javascriptUrl.`);
}
return schematics_2.addLibraryFeature(options, {
folderName: constants_1.CDC_FOLDER_NAME,
moduleName: constants_1.CDC_MODULE_NAME,
rootModule: {
importPath: constants_1.SPARTACUS_CDC_ROOT,
name: constants_1.CDC_ROOT_MODULE,
content: `${constants_1.CDC_ROOT_MODULE}`,
},
featureModule: {
importPath: schematics_2.SPARTACUS_CDC,
name: constants_1.CDC_MODULE,
},
lazyLoadingChunk: {
moduleSpecifier: constants_1.SPARTACUS_CDC_ROOT,
namedImports: [constants_1.CDC_FEATURE_CONSTANT],
},
customConfig: {
import: [
{
moduleSpecifier: constants_1.SPARTACUS_CDC_ROOT,
namedImports: [constants_1.CDC_CONFIG],
},
],
content: `<${constants_1.CDC_CONFIG}>{
cdc: [
{
baseSite: '${options.baseSite}',
javascriptUrl: '${options.javascriptUrl || 'JS_SDK_URL_PLACEHOLDER'}',
sessionExpiration: ${options.sessionExpiration}
},
],
}`,
},
dependencyManagement: {
featureName: schematics_2.CLI_CDC_FEATURE,
featureDependencies: {
[schematics_2.SPARTACUS_USER]: [schematics_2.CLI_USER_PROFILE_FEATURE],
},
},
});
}
//# sourceMappingURL=index.js.map