@spartacus/schematics
Version:
Spartacus schematics
54 lines • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.migrate = void 0;
const schematics_1 = require("@angular-devkit/schematics");
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
const dependencies_1 = require("@schematics/angular/utility/dependencies");
const constants_1 = require("../../../shared/constants");
const file_utils_1 = require("../../../shared/utils/file-utils");
const lib_utils_1 = require("../../../shared/utils/lib-utils");
const module_file_utils_1 = require("../../../shared/utils/module-file-utils");
const package_utils_1 = require("../../../shared/utils/package-utils");
function migrate() {
return (tree, _context) => {
const packageJson = package_utils_1.readPackageJson(tree);
return package_utils_1.checkIfSSRIsUsed(tree)
? schematics_1.chain([
updateImport(),
addSetupPackageJsonDependencies(packageJson),
lib_utils_1.installPackageJsonDependencies(),
])
: schematics_1.noop();
};
}
exports.migrate = migrate;
function updateImport() {
return (tree, _context) => {
const serverFilePath = file_utils_1.getServerTsPath(tree);
if (!serverFilePath) {
return tree;
}
if (ast_utils_1.isImported(file_utils_1.getTsSourceFile(tree, serverFilePath), constants_1.NG_EXPRESS_ENGINE_DECORATOR, constants_1.SPARTACUS_CORE)) {
const importRemovalChange = file_utils_1.removeImport(file_utils_1.getTsSourceFile(tree, serverFilePath), {
className: constants_1.NG_EXPRESS_ENGINE_DECORATOR,
importPath: constants_1.SPARTACUS_CORE,
});
file_utils_1.commitChanges(tree, serverFilePath, [importRemovalChange]);
const addImportChange = module_file_utils_1.createImportChange(tree, serverFilePath, constants_1.NG_EXPRESS_ENGINE_DECORATOR, constants_1.SPARTACUS_SETUP_SSR);
file_utils_1.commitChanges(tree, serverFilePath, [addImportChange]);
}
return tree;
};
}
function addSetupPackageJsonDependencies(packageJson) {
const spartacusVersion = `^${package_utils_1.getSpartacusSchematicsVersion()}`;
const dependencies = [
{
type: dependencies_1.NodeDependencyType.Default,
version: spartacusVersion,
name: constants_1.SPARTACUS_SETUP,
},
];
return lib_utils_1.addPackageJsonDependencies(dependencies, packageJson);
}
//# sourceMappingURL=ssr.js.map