UNPKG

@spartacus/tracking

Version:

Spartacus tracking and personalization library

109 lines 4.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addTrackingFeatures = 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 addTrackingFeatures(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_TRACKING_TMS_GTM_FEATURE, options.features) ? addGtm(options) : schematics_1.noop(), schematics_2.shouldAddFeature(schematics_2.CLI_TRACKING_TMS_AEP_FEATURE, options.features) ? addAep(options) : schematics_1.noop(), schematics_2.shouldAddFeature(schematics_2.CLI_TRACKING_PERSONALIZATION_FEATURE, options.features) ? addPersonalizationFeature(options) : schematics_1.noop(), ]); }; } exports.addTrackingFeatures = addTrackingFeatures; function addGtm(options) { return schematics_2.addLibraryFeature(Object.assign(Object.assign({}, options), { lazy: false }), // To add feature module in imports (not lazy) { folderName: constants_1.TRACKING_FOLDER_NAME, moduleName: constants_1.TMS_MODULE_NAME, rootModule: { importPath: constants_1.SPARTACUS_TMS_CORE, name: constants_1.TMS_BASE_MODULE, content: `${constants_1.TMS_BASE_MODULE}.forRoot()`, }, featureModule: { importPath: constants_1.SPARTACUS_TMS_GTM, name: constants_1.TMS_GTM_MODULE, }, customConfig: { import: [ { moduleSpecifier: constants_1.SPARTACUS_TMS_GTM, namedImports: [constants_1.TMS_GTM_MODULE], }, { moduleSpecifier: constants_1.SPARTACUS_TMS_CORE, namedImports: [constants_1.TMS_CONFIG] }, ], content: `<${constants_1.TMS_CONFIG}>{ tagManager: { gtm: { events: [], }, }, }`, }, }); } function addAep(options) { return schematics_2.addLibraryFeature(Object.assign(Object.assign({}, options), { lazy: false }), // To add feature module in imports (not lazy) { folderName: constants_1.TRACKING_FOLDER_NAME, moduleName: constants_1.TMS_MODULE_NAME, rootModule: { importPath: constants_1.SPARTACUS_TMS_CORE, name: constants_1.TMS_BASE_MODULE, content: `${constants_1.TMS_BASE_MODULE}.forRoot()`, }, featureModule: { importPath: constants_1.SPARTACUS_TMS_AEP, name: constants_1.TMS_AEP_MODULE, }, customConfig: { import: [ { moduleSpecifier: constants_1.SPARTACUS_TMS_AEP, namedImports: [constants_1.TMS_AEP_MODULE], }, { moduleSpecifier: constants_1.SPARTACUS_TMS_CORE, namedImports: [constants_1.TMS_CONFIG] }, ], content: `<${constants_1.TMS_CONFIG}>{ tagManager: { aep: { events: [], }, }, }`, }, }); } function addPersonalizationFeature(options) { return schematics_2.addLibraryFeature(options, { folderName: constants_1.TRACKING_FOLDER_NAME, moduleName: constants_1.PERSONALIZATION_MODULE_NAME, featureModule: { name: constants_1.PERSONALIZATION_MODULE, importPath: constants_1.SPARTACUS_PERSONALIZATION, }, rootModule: { name: constants_1.PERSONALIZATION_ROOT_MODULE, importPath: constants_1.SPARTACUS_PERSONALIZATION_ROOT, }, lazyLoadingChunk: { moduleSpecifier: constants_1.SPARTACUS_PERSONALIZATION_ROOT, namedImports: [constants_1.PERSONALIZATION_FEATURE_NAME_CONSTANT], }, }); } //# sourceMappingURL=index.js.map