@o3r/core
Version:
Core of the Otter Framework
45 lines • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultPresetRuleFactory = defaultPresetRuleFactory;
const fs = require("node:fs");
const path = require("node:path");
const schematics_1 = require("@angular-devkit/schematics");
const schematics_2 = require("@o3r/schematics");
/**
* Default implementation of the preset rule
* @param moduleToInstall
* @param options
*/
function defaultPresetRuleFactory(moduleToInstall, options = {}) {
return (tree) => {
const corePackageJsonContent = JSON.parse(fs.readFileSync(path.resolve(__dirname, '..', '..', '..', 'package.json'), { encoding: 'utf8' }));
const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
if (moduleToInstall.length === 0) {
return tree;
}
const dependencies = moduleToInstall.reduce((acc, dep) => {
acc[dep] = {
inManifest: [{
range: `${options.exactO3rVersion ? '' : '~'}${corePackageJsonContent.version}`,
types: (0, schematics_2.getProjectNewDependenciesTypes)(workspaceProject)
}],
ngAddOptions: { ...options.forwardOptions, exactO3rVersion: options.exactO3rVersion }
};
return acc;
}, {});
if (options.dependenciesSetupConfig) {
options.dependenciesSetupConfig.dependencies = {
...options.dependenciesSetupConfig.dependencies,
...dependencies
};
}
return options.dependenciesSetupConfig
? schematics_1.noop
: (0, schematics_2.setupDependencies)({
projectName: options.projectName,
dependencies,
ngAddToRun: moduleToInstall
});
};
}
//# sourceMappingURL=helpers.js.map