UNPKG

2.06 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const devkit_1 = require("@nrwl/devkit");
5const functions_1 = require("../../utils/config/functions");
6const get_jest_projects_1 = require("../../utils/config/get-jest-projects");
7const update_config_1 = require("../../utils/config/update-config");
8function 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}
15function determineProjectsValue(uncoveredJestProjects) {
16 if (!uncoveredJestProjects.length) {
17 return `getJestProjects()`;
18 }
19 return `[...getJestProjects(), ${uncoveredJestProjects
20 .map((projectName) => `'${projectName}', `)
21 .join('')}]`;
22}
23function 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}
36function 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}
42exports.default = update;
43//# sourceMappingURL=update-base-jest-config.js.map
\No newline at end of file