UNPKG

2.36 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.jestProjectSchematic = exports.jestProjectGenerator = void 0;
4const tslib_1 = require("tslib");
5const init_1 = require("../init/init");
6const check_for_test_target_1 = require("./lib/check-for-test-target");
7const create_files_1 = require("./lib/create-files");
8const update_tsconfig_1 = require("./lib/update-tsconfig");
9const update_workspace_1 = require("./lib/update-workspace");
10const update_jestconfig_1 = require("./lib/update-jestconfig");
11const devkit_1 = require("@nrwl/devkit");
12const schemaDefaults = {
13 setupFile: 'none',
14 babelJest: false,
15 supportTsx: false,
16 skipSetupFile: false,
17 skipSerializers: false,
18};
19function normalizeOptions(options) {
20 if (!options.testEnvironment) {
21 options.testEnvironment = 'jsdom';
22 }
23 if (options.testEnvironment === 'jsdom') {
24 options.testEnvironment = '';
25 }
26 if (!options.hasOwnProperty('supportTsx')) {
27 options.supportTsx = false;
28 }
29 // if we support TSX or compiler is not tsc, then we don't support angular(html templates)
30 if (options.supportTsx ||
31 options.babelJest ||
32 ['swc', 'babel'].includes(options.compiler)) {
33 options.skipSerializers = true;
34 }
35 if (!options.skipSetupFile) {
36 return options;
37 }
38 // setupFile is always 'none'
39 options.setupFile = schemaDefaults.setupFile;
40 return Object.assign(Object.assign({}, schemaDefaults), options);
41}
42function jestProjectGenerator(tree, schema) {
43 return tslib_1.__awaiter(this, void 0, void 0, function* () {
44 const options = normalizeOptions(schema);
45 const installTask = (0, init_1.default)(tree, options);
46 (0, check_for_test_target_1.checkForTestTarget)(tree, options);
47 (0, create_files_1.createFiles)(tree, options);
48 (0, update_tsconfig_1.updateTsConfig)(tree, options);
49 (0, update_workspace_1.updateWorkspace)(tree, options);
50 (0, update_jestconfig_1.updateJestConfig)(tree, options);
51 if (!schema.skipFormat) {
52 yield (0, devkit_1.formatFiles)(tree);
53 }
54 return installTask;
55 });
56}
57exports.jestProjectGenerator = jestProjectGenerator;
58exports.jestProjectSchematic = (0, devkit_1.convertNxGenerator)(jestProjectGenerator);
59//# sourceMappingURL=jest-project.js.map
\No newline at end of file