1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.jestProjectSchematic = exports.jestProjectGenerator = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | const init_1 = require("../init/init");
|
6 | const check_for_test_target_1 = require("./lib/check-for-test-target");
|
7 | const create_files_1 = require("./lib/create-files");
|
8 | const update_tsconfig_1 = require("./lib/update-tsconfig");
|
9 | const update_workspace_1 = require("./lib/update-workspace");
|
10 | const devkit_1 = require("@nrwl/devkit");
|
11 | const schemaDefaults = {
|
12 | setupFile: 'none',
|
13 | babelJest: false,
|
14 | supportTsx: false,
|
15 | skipSetupFile: false,
|
16 | skipSerializers: false,
|
17 | rootProject: false,
|
18 | testEnvironment: 'jsdom',
|
19 | };
|
20 | function normalizeOptions(options) {
|
21 | if (!options.testEnvironment) {
|
22 | options.testEnvironment = 'jsdom';
|
23 | }
|
24 | if (!options.hasOwnProperty('supportTsx')) {
|
25 | options.supportTsx = false;
|
26 | }
|
27 |
|
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 |
|
37 | options.setupFile = schemaDefaults.setupFile;
|
38 | return Object.assign(Object.assign({}, schemaDefaults), options);
|
39 | }
|
40 | function 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 | }
|
54 | exports.jestProjectGenerator = jestProjectGenerator;
|
55 | exports.jestProjectSchematic = (0, devkit_1.convertNxGenerator)(jestProjectGenerator);
|
56 |
|
\ | No newline at end of file |