UNPKG

@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
"use strict"; 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