1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const tslib_1 = require("tslib");
|
4 | const devkit_1 = require("@nrwl/devkit");
|
5 | const functions_1 = require("../../utils/config/functions");
|
6 | const get_jest_projects_1 = require("../../utils/config/get-jest-projects");
|
7 | const update_config_1 = require("../../utils/config/update-config");
|
8 | function determineUncoveredJestProjects(existingProjects) {
|
9 | const coveredJestProjects = (0, get_jest_projects_1.getJestProjects)().reduce((acc, key) => {
|
10 | acc[key] = true;
|
11 | return acc;
|
12 | }, {});
|
13 | return existingProjects.filter((project) => !coveredJestProjects[project]);
|
14 | }
|
15 | function determineProjectsValue(uncoveredJestProjects) {
|
16 | if (!uncoveredJestProjects.length) {
|
17 | return `getJestProjects()`;
|
18 | }
|
19 | return `[...getJestProjects(), ${uncoveredJestProjects
|
20 | .map((projectName) => `'${projectName}', `)
|
21 | .join('')}]`;
|
22 | }
|
23 | function updateBaseJestConfig(tree, baseJestConfigPath = 'jest.config.js') {
|
24 | var _a;
|
25 | if (tree.read('/jest.config.js', 'utf-8').includes('getJestProjects()')) {
|
26 | return;
|
27 | }
|
28 | const currentConfig = (0, functions_1.jestConfigObject)(tree, baseJestConfigPath);
|
29 | (_a = currentConfig.projects) !== null && _a !== void 0 ? _a : (currentConfig.projects = []);
|
30 | const uncoveredJestProjects = determineUncoveredJestProjects(currentConfig.projects);
|
31 | (0, update_config_1.removePropertyFromJestConfig)(tree, baseJestConfigPath, 'projects');
|
32 | (0, update_config_1.addPropertyToJestConfig)(tree, baseJestConfigPath, 'projects', determineProjectsValue(uncoveredJestProjects), { valueAsString: true });
|
33 | (0, update_config_1.addImportStatementToJestConfig)(tree, baseJestConfigPath, `const { getJestProjects } = require('@nrwl/jest');`);
|
34 | return;
|
35 | }
|
36 | function update(tree) {
|
37 | return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
38 | updateBaseJestConfig(tree);
|
39 | yield (0, devkit_1.formatFiles)(tree);
|
40 | });
|
41 | }
|
42 | exports.default = update;
|
43 |
|
\ | No newline at end of file |