UNPKG

@nx-plugins/testing-library

Version:

The Nx Plugin for Testing Library that contains executors and generators for allowing your workspace to use powerful Testing Library testing capabilities.

71 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.vueTestComponentSchematic = exports.vueTestComponentGenerator = 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 create_files_1 = require("./lib/create-files"); const generator_1 = require("../init/generator"); function vueTestComponentGenerator(host, schema) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const options = yield normalizeOptions(host, schema); const initTask = yield (0, generator_1.default)(host, Object.assign(Object.assign({}, options), { preset: "vue" })); (0, create_files_1.createFiles)(host, options); yield (0, devkit_1.formatFiles)(host); return (0, run_tasks_in_serial_1.runTasksInSerial)(initTask); }); } exports.vueTestComponentGenerator = vueTestComponentGenerator; function normalizeOptions(host, options) { var _a; return tslib_1.__awaiter(this, void 0, void 0, function* () { assertValidOptions(options); const { className, fileName } = (0, devkit_1.names)(options.name); const componentFileName = (_a = options.fileName) !== null && _a !== void 0 ? _a : (options.pascalCaseFiles ? className : fileName); 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 { sourceRoot: projectSourceRoot } = project; const directory = yield getDirectory(host, options); return Object.assign(Object.assign({}, options), { directory, className, fileName: componentFileName, projectSourceRoot }); }); } function getDirectory(host, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const genNames = (0, devkit_1.names)(options.name); const fileName = options.pascalCaseDirectory === true ? genNames.className : genNames.fileName; const workspace = (0, devkit_1.getProjects)(host); let baseDir; if (options.directory) { baseDir = options.directory; } else { baseDir = workspace.get(options.project).projectType === 'application' ? 'app' : 'lib'; } return options.flat ? baseDir : (0, devkit_1.joinPathFragments)(baseDir, fileName); }); } function assertValidOptions(options) { const slashes = ['/', '\\']; slashes.forEach((s) => { if (options.name.indexOf(s) !== -1) { const [name, ...rest] = options.name.split(s).reverse(); let suggestion = rest.map((x) => x.toLowerCase()).join(s); if (options.directory) { suggestion = `${options.directory}${s}${suggestion}`; } throw new Error(`Found "${s}" in the component name. Did you mean to use the --directory option (e.g. \`nx g @nx-plugins/testing-library:react-test-component ${name} --directory ${suggestion}\`)?`); } }); } exports.default = vueTestComponentGenerator; exports.vueTestComponentSchematic = (0, devkit_1.convertNxGenerator)(vueTestComponentGenerator); //# sourceMappingURL=generator.js.map