@spartacus/schematics
Version:
Spartacus schematics
47 lines • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupStoreModules = 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 that ensures that we have correct Store modules set */
function setupStoreModules(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 set Store modules.');
}
const basePath = process.cwd();
for (const tsconfigPath of buildPaths) {
configureStoreModules(tree, tsconfigPath, basePath);
}
return tree;
};
}
exports.setupStoreModules = setupStoreModules;
function configureStoreModules(tree, tsconfigPath, basePath) {
const { appSourceFiles } = program_1.createProgram(tree, basePath, tsconfigPath);
for (const sourceFile of appSourceFiles) {
if (sourceFile.getFilePath().includes('app.module.ts')) {
new_module_utils_1.addModuleImport(sourceFile, {
import: {
moduleSpecifier: constants_1.NGRX_STORE,
namedImports: ['StoreModule'],
},
content: `StoreModule.forRoot({})`,
});
new_module_utils_1.addModuleImport(sourceFile, {
import: {
moduleSpecifier: constants_1.NGRX_EFFECTS,
namedImports: ['EffectsModule'],
},
content: `EffectsModule.forRoot([])`,
});
program_1.saveAndFormat(sourceFile);
break;
}
}
}
//# sourceMappingURL=store.js.map