UNPKG

@spartacus/schematics

Version:
280 lines 11.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupSpartacusFeaturesModule = void 0; const schematics_1 = require("@angular-devkit/schematics"); const constants_1 = require("../shared/constants"); const new_module_utils_1 = require("../shared/utils/new-module-utils"); const program_1 = require("../shared/utils/program"); const project_tsconfig_paths_1 = require("../shared/utils/project-tsconfig-paths"); /** Migration which ensures the spartacus features are being correctly set up */ function setupSpartacusFeaturesModule(project) { return (tree) => { const { buildPaths } = project_tsconfig_paths_1.getProjectTsConfigPaths(tree, project); if (!buildPaths.length) { throw new schematics_1.SchematicsException(`Could not find any tsconfig file. Cannot configure ${constants_1.SPARTACUS_FEATURES_NG_MODULE}.`); } const basePath = process.cwd(); for (const tsconfigPath of buildPaths) { configureSpartacusModules(tree, tsconfigPath, basePath); } return tree; }; } exports.setupSpartacusFeaturesModule = setupSpartacusFeaturesModule; function configureSpartacusModules(tree, tsconfigPath, basePath) { const { appSourceFiles } = program_1.createProgram(tree, basePath, tsconfigPath); for (const sourceFile of appSourceFiles) { if (sourceFile .getFilePath() .includes(`${constants_1.SPARTACUS_FEATURES_MODULE}.module.ts`)) { [ `// Auth Core AuthModule.forRoot(),`, 'LogoutModule,', 'LoginRouteModule,', ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: ['AuthModule'], }, { moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB, namedImports: ['LogoutModule', 'LoginRouteModule'], }, ], content, }); }); [ `// Basic Cms Components HamburgerMenuModule,`, 'SiteContextSelectorModule,', 'LinkModule,', 'BannerModule,', 'CmsParagraphModule,', 'TabParagraphContainerModule,', 'BannerCarouselModule,', 'CategoryNavigationModule,', 'NavigationModule,', 'FooterNavigationModule,', 'BreadcrumbModule,', ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB, namedImports: [ 'HamburgerMenuModule', 'SiteContextSelectorModule', 'LinkModule', 'BannerModule', 'CmsParagraphModule', 'TabParagraphContainerModule', 'BannerCarouselModule', 'CategoryNavigationModule', 'FooterNavigationModule', 'NavigationModule', 'BreadcrumbModule', ], }, ], content, }); }); [ `// User Core, UserTransitional_4_2_Module,`, 'UserOccTransitional_4_2_Module,', `// User UI, AddressBookModule,`, 'PaymentMethodsModule,', 'NotificationPreferenceModule,', 'MyInterestsModule,', 'StockNotificationModule,', 'ConsentManagementModule,', 'MyCouponsModule,', ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: [ 'UserTransitional_4_2_Module', 'UserOccTransitional_4_2_Module', ], }, { moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB, namedImports: [ 'AddressBookModule', 'PaymentMethodsModule', 'NotificationPreferenceModule', 'MyInterestsModule', 'StockNotificationModule', 'ConsentManagementModule', 'MyCouponsModule', ], }, ], content, }); }); [ `// Anonymous Consents Core, AnonymousConsentsModule.forRoot(),`, `// Anonymous Consents UI, AnonymousConsentsDialogModule,`, 'AnonymousConsentManagementBannerModule,', ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: ['AnonymousConsentsModule'], }, { moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB, namedImports: [ 'AnonymousConsentManagementBannerModule', 'AnonymousConsentsDialogModule', ], }, ], content, }); }); [ `// Product Core, ProductModule.forRoot(),`, 'ProductOccModule,', `// Product UI, ProductDetailsPageModule,`, 'ProductListingPageModule,', 'ProductListModule,', 'SearchBoxModule,', 'ProductFacetNavigationModule,', 'ProductTabsModule,', 'ProductCarouselModule,', 'ProductReferencesModule,', 'ProductImagesModule,', 'ProductSummaryModule,', 'ProductIntroModule,', ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: ['ProductModule', 'ProductOccModule'], }, { moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB, namedImports: [ 'ProductCarouselModule', 'ProductDetailsPageModule', 'ProductFacetNavigationModule', 'ProductImagesModule', 'ProductIntroModule', 'ProductListingPageModule', 'ProductListModule', 'ProductPageEventModule', 'ProductReferencesModule', 'ProductSummaryModule', 'ProductTabsModule', 'SearchBoxModule', ], }, ], content, }); }); [ `// Cart Core, CartModule.forRoot(),`, 'CartOccModule,', `// Cart UI, CartComponentModule,`, 'WishListModule,', ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: ['CartModule', 'CartOccModule'], }, { moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB, namedImports: ['CartComponentModule', 'WishListModule'], }, ], content, }); }); ['CostCenterOccModule,'].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: ['CostCenterOccModule'], }, ], content, }); }); [ `// Order, OrderOccModule`, ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: ['OrderOccModule'], }, ], content, }); }); [ `// Page Events, NavigationEventModule,`, 'HomePageEventModule,', 'CartPageEventModule,', 'ProductPageEventModule,', ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB, namedImports: [ 'NavigationEventModule', 'HomePageEventModule', 'CartPageEventModule', 'ProductPageEventModule', ], }, ], content, }); }); [ `// External routes, ExternalRoutesModule.forRoot(),`, ].forEach((content) => { new_module_utils_1.addModuleImport(sourceFile, { import: [ { moduleSpecifier: constants_1.SPARTACUS_CORE, namedImports: ['ExternalRoutesModule'], }, ], content, }); }); program_1.saveAndFormat(sourceFile); break; } } } //# sourceMappingURL=spartacus-features.js.map