@angular-plugins/stryker
Version:
Stryker Plugin for Angular and Nx Repos
51 lines (50 loc) • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const schematics_1 = require("@angular-devkit/schematics");
const workspace_1 = require("@nrwl/workspace");
const versions_1 = require("../../../utils/versions");
const tasks_1 = require("@angular-devkit/schematics/tasks");
function checkDependenciesInstalled() {
return (host, context) => {
const packageJson = workspace_1.readJsonInTree(host, 'package.json');
const dependencyList = [];
if (!packageJson.devDependencies['@nrwl/stryker']) {
context.addTask(new tasks_1.NodePackageInstallTask());
dependencyList.push({ name: '@stryker-mutator/api', version: versions_1.strykerMutatorApi }, { name: '@stryker-mutator/core', version: versions_1.strykerMutatorCore }, {
name: '@stryker-mutator/html-reporter',
version: versions_1.strykerMutatorHtmlReporter
}, { name: '@stryker-mutator/jest-runner', version: versions_1.strykerMutatorJestRunner }, { name: '@stryker-mutator/typescript', version: versions_1.strykerMutatorTypescript }, { name: '@stryker-mutator/karma-runner', version: versions_1.strykerMutatorKarmaRunner });
}
if (!dependencyList.length) {
return schematics_1.noop();
}
return workspace_1.addDepsToPackageJson({}, dependencyList.reduce((dictionary, value) => {
dictionary[value.name] = value.version;
return dictionary;
}, {}));
};
}
function installDependencies(dependencyList) {
return (host, context) => {
return workspace_1.addDepsToPackageJson({}, dependencyList.reduce((dictionary, value) => {
dictionary[value.name] = value.version;
return dictionary;
}, {}));
context.logger.info('@angular-plugins/stryker dependencies installed successfully');
};
}
function removeDependency() {
return workspace_1.updateJsonInTree('package.json', json => {
json.dependencies = json.dependencies || {};
delete json.dependencies['@stryker-mutator/api'];
delete json.dependencies['@stryker-mutator/core'];
delete json.dependencies['@stryker-mutator/jest-runner'];
delete json.dependencies['@stryker-mutator/typescript'];
delete json.dependencies['@stryker-mutator/karma-runner'];
return json;
});
}
function default_1() {
return schematics_1.chain([removeDependency(), checkDependenciesInstalled()]);
}
exports.default = default_1;