@nx-plugins/stryker
Version:
The Nx Plugin for Stryker that contains executors and generators for allowing your workspace to use powerful Stryker mutation testing capabilities.
66 lines • 3.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.librarySchematic = exports.libraryGenerator = void 0;
const tslib_1 = require("tslib");
const devkit_1 = require("@nrwl/devkit");
const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
const generator_1 = require("../init/generator");
const create_files_1 = require("./lib/create-files");
const update_workspace_1 = require("./lib/update-workspace");
const check_for_mutate_target_1 = require("./lib/check-for-mutate-target");
const add_git_ignore_entry_1 = require("./lib/add-git-ignore-entry");
const schemaDefaults = {
skipFormat: false,
skipPackageJson: false,
reporters: ['html', 'clear-text', 'progress'],
logLevel: 'info',
thresholds: {
high: 80,
break: 50,
},
testRunner: "command",
packageManager: (0, devkit_1.getPackageManagerCommand)().exec
};
function libraryGenerator(host, schema) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const tasks = [];
const options = normalizeOptions(host, schema);
const initTask = yield (0, generator_1.default)(host, {
skipFormat: options.skipFormat,
skipPackageJson: options.skipPackageJson,
});
tasks.push(initTask);
(0, check_for_mutate_target_1.checkForMutateTarget)(host, options);
(0, create_files_1.createFiles)(host, options);
(0, update_workspace_1.updateWorkspace)(host, options);
(0, add_git_ignore_entry_1.addGitIgnoreEntry)(host, options);
if (!options.skipFormat) {
yield (0, devkit_1.formatFiles)(host);
}
return (0, run_tasks_in_serial_1.runTasksInSerial)(...tasks);
});
}
exports.libraryGenerator = libraryGenerator;
function normalizeOptions(host, options) {
var _a, _b;
const project = (0, devkit_1.getProjects)(host).get(options.project);
if (!project) {
devkit_1.logger.error(`Cannot find the ${options.project} project. Please double check the project name.`);
throw new Error();
}
const normalized = Object.assign(Object.assign(Object.assign({}, schemaDefaults), options), { commandRunner: {
command: (_a = options.commandRunner) !== null && _a !== void 0 ? _a : `${schemaDefaults.packageManager} nx test ${options.project} --skip-nx-cache`,
}, tempDirName: (_b = options.tempDirName) !== null && _b !== void 0 ? _b : `stryker-tmp/${options.project}/`, mutate: [
`./${project.root}/**/*.{js,ts}`,
`!./${project.root}/**/*.{spec.js,spec.ts,test.js,test.ts}`,
], ignorePatterns: [
"dist/*",
`!${project.root}`
], htmlReporter: {
fileName: (0, devkit_1.joinPathFragments)(`${(0, devkit_1.offsetFromRoot)(project.root)}/dist`, (0, devkit_1.normalizePath)(project.root)),
}, reporters: options.reporters.split(','), projectRoot: project.root, projectSourceRoot: project.sourceRoot });
return normalized;
}
exports.default = libraryGenerator;
exports.librarySchematic = (0, devkit_1.convertNxGenerator)(libraryGenerator);
//# sourceMappingURL=generator.js.map