UNPKG

2.2 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 devkit_1 = require("@nrwl/devkit");
11const schemaDefaults = {
12 setupFile: 'none',
13 babelJest: false,
14 supportTsx: false,
15 skipSetupFile: false,
16 skipSerializers: false,
17 rootProject: false,
18 testEnvironment: 'jsdom',
19};
20function normalizeOptions(options) {
21 if (!options.testEnvironment) {
22 options.testEnvironment = 'jsdom';
23 }
24 if (!options.hasOwnProperty('supportTsx')) {
25 options.supportTsx = false;
26 }
27 // if we support TSX or compiler is not tsc, then we don't support angular(html templates)
28 if (options.supportTsx ||
29 options.babelJest ||
30 ['swc', 'babel'].includes(options.compiler)) {
31 options.skipSerializers = true;
32 }
33 if (!options.skipSetupFile) {
34 return options;
35 }
36 // setupFile is always 'none'
37 options.setupFile = schemaDefaults.setupFile;
38 return Object.assign(Object.assign({}, schemaDefaults), options);
39}
40function jestProjectGenerator(tree, schema) {
41 return tslib_1.__awaiter(this, void 0, void 0, function* () {
42 const options = normalizeOptions(schema);
43 const installTask = yield (0, init_1.default)(tree, options);
44 (0, check_for_test_target_1.checkForTestTarget)(tree, options);
45 (0, create_files_1.createFiles)(tree, options);
46 (0, update_tsconfig_1.updateTsConfig)(tree, options);
47 (0, update_workspace_1.updateWorkspace)(tree, options);
48 if (!schema.skipFormat) {
49 yield (0, devkit_1.formatFiles)(tree);
50 }
51 return installTask;
52 });
53}
54exports.jestProjectGenerator = jestProjectGenerator;
55exports.jestProjectSchematic = (0, devkit_1.convertNxGenerator)(jestProjectGenerator);
56//# sourceMappingURL=jest-project.js.map
\No newline at end of file