@spartacus/schematics
Version:
Spartacus schematics
47 lines • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupSpartacusModule = 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 is being correctly set up */
function setupSpartacusModule(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 SpartacusModule.');
}
const basePath = process.cwd();
for (const tsconfigPath of buildPaths) {
configureSpartacusModules(tree, tsconfigPath, basePath);
}
return tree;
};
}
exports.setupSpartacusModule = setupSpartacusModule;
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_MODULE}.module.ts`)) {
new_module_utils_1.addModuleImport(sourceFile, {
import: {
moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB,
namedImports: [constants_1.BASE_STOREFRONT_MODULE],
},
content: constants_1.BASE_STOREFRONT_MODULE,
});
new_module_utils_1.addModuleExport(sourceFile, {
import: {
moduleSpecifier: constants_1.SPARTACUS_STOREFRONTLIB,
namedImports: [constants_1.BASE_STOREFRONT_MODULE],
},
content: constants_1.BASE_STOREFRONT_MODULE,
});
program_1.saveAndFormat(sourceFile);
break;
}
}
}
//# sourceMappingURL=spartacus.js.map