ts-jest 26.2.0 → 26.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ts-jest-digest +1 -1
- package/CHANGELOG.md +46 -0
- package/README.md +0 -1
- package/dist/cli/config/migrate.js +1 -1
- package/dist/cli/index.js +6 -3
- package/dist/compiler/instance.js +1 -1
- package/dist/compiler/language-service.js +3 -3
- package/dist/compiler/transpiler.js +2 -3
- package/dist/config/config-set.js +113 -160
- package/dist/config/paths-to-module-name-mapper.d.ts +1 -1
- package/dist/config/paths-to-module-name-mapper.js +11 -6
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -5
- package/dist/{config → presets}/create-jest-preset.d.ts +2 -1
- package/dist/{config → presets}/create-jest-preset.js +1 -1
- package/dist/presets/index.d.ts +339 -0
- package/dist/presets/index.js +18 -0
- package/dist/transformers/hoist-jest.js +59 -10
- package/dist/transformers/index.js +20 -1
- package/dist/transformers/path-mapping.d.ts +3 -0
- package/dist/transformers/path-mapping.js +121 -0
- package/dist/ts-jest-transformer.js +5 -5
- package/dist/types.d.ts +7 -3
- package/dist/{util → utils}/backports.d.ts +0 -0
- package/dist/{util → utils}/backports.js +0 -0
- package/dist/{util → utils}/get-package-version.d.ts +0 -0
- package/dist/{util → utils}/get-package-version.js +0 -0
- package/dist/{util → utils}/importer.d.ts +0 -0
- package/dist/{util → utils}/importer.js +0 -0
- package/dist/{util → utils}/index.d.ts +1 -1
- package/dist/{util → utils}/index.js +2 -1
- package/dist/{util → utils}/json.d.ts +0 -0
- package/dist/{util → utils}/json.js +0 -0
- package/dist/{util → utils}/jsonable-value.d.ts +0 -0
- package/dist/{util → utils}/jsonable-value.js +0 -0
- package/dist/{util → utils}/logger.d.ts +0 -0
- package/dist/{util → utils}/logger.js +0 -0
- package/dist/{util → utils}/memoize.d.ts +0 -0
- package/dist/{util → utils}/memoize.js +0 -0
- package/dist/{util → utils}/messages.d.ts +0 -0
- package/dist/{util → utils}/messages.js +0 -0
- package/dist/{util → utils}/normalize-slashes.d.ts +0 -0
- package/dist/{util → utils}/normalize-slashes.js +0 -0
- package/dist/{util → utils}/sha1.d.ts +0 -0
- package/dist/{util → utils}/sha1.js +0 -0
- package/dist/{util → utils}/testing.d.ts +1 -1
- package/dist/{util → utils}/testing.js +0 -0
- package/dist/{util → utils}/ts-error.d.ts +0 -0
- package/dist/{util → utils}/ts-error.js +1 -1
- package/dist/{util → utils}/version-checkers.d.ts +0 -0
- package/dist/{util → utils}/version-checkers.js +1 -1
- package/jest-preset.js +1 -1
- package/package.json +10 -9
- package/presets/index.js +1 -20
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -1
- package/presets/create.js +0 -1
- package/presets/index.d.ts +0 -5
package/.ts-jest-digest
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1df3aab00abdf22069c7f2158ac81678877d34f5
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,49 @@
|
|
|
1
|
+
## [26.4.1](https://github.com/kulshekhar/ts-jest/compare/v26.4.0...v26.4.1) (2020-09-29)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **utils:** `MaybeMockedConstructor` returns T ([#1976](https://github.com/kulshekhar/ts-jest/issues/1976)) ([b7712b2](https://github.com/kulshekhar/ts-jest/commit/b7712b2055d8f32dd97999de1d94e8f3515d79e8))
|
|
7
|
+
* **utils:** revert `path.join` and add check on prefix ends with `/` ([#1989](https://github.com/kulshekhar/ts-jest/issues/1989)) ([3d9035b](https://github.com/kulshekhar/ts-jest/commit/3d9035bd70dc087d4c5a943bb2fe2af2d0822875)), closes [#1982](https://github.com/kulshekhar/ts-jest/issues/1982)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# [26.4.0](https://github.com/kulshekhar/ts-jest/compare/v26.3.0...v26.4.0) (2020-09-20)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **utils:** `pathsToModuleNameMapper` resolve path mapping with `path.join` ([#1969](https://github.com/kulshekhar/ts-jest/issues/1969)) ([81fce4c](https://github.com/kulshekhar/ts-jest/commit/81fce4c090811a1cc071579a99dc193fb976b117)), closes [#1968](https://github.com/kulshekhar/ts-jest/issues/1968)
|
|
17
|
+
* set minimum `jest-util` version at 26.1.0 ([#1914](https://github.com/kulshekhar/ts-jest/issues/1914)) ([f00414c](https://github.com/kulshekhar/ts-jest/commit/f00414c6fbf8fc5413fd33d0a271c4a164c50d45)), closes [#1913](https://github.com/kulshekhar/ts-jest/issues/1913)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **config:** allow custom options in custom transformers ([#1966](https://github.com/kulshekhar/ts-jest/issues/1966)) ([1452ce4](https://github.com/kulshekhar/ts-jest/commit/1452ce4afcd36049cddd0db0861f1ac26b66f8c1)), closes [#1942](https://github.com/kulshekhar/ts-jest/issues/1942)
|
|
23
|
+
* **transformers:** support hoisting when using `@jest/globals` ([#1937](https://github.com/kulshekhar/ts-jest/issues/1937)) ([0e5be15](https://github.com/kulshekhar/ts-jest/commit/0e5be1597d755fed11869f67df05eeea54b3106f)), closes [#1593](https://github.com/kulshekhar/ts-jest/issues/1593)
|
|
24
|
+
* **transformers:** add `path-mapping` custom AST transformer ([#1927](https://github.com/kulshekhar/ts-jest/issues/1927)) ([3325186](https://github.com/kulshekhar/ts-jest/commit/3325186b6e55f41eb9bf7d81e092a358fc402b13))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Performance Improvements
|
|
28
|
+
|
|
29
|
+
* **compiler:** remove `createProgram` for `isolatedModules: true` to boost startup speed ([#1941](https://github.com/kulshekhar/ts-jest/issues/1941)) ([dd84534](https://github.com/kulshekhar/ts-jest/commit/dd8453401840862186f991e2d514e0d328a67987))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# [26.3.0](https://github.com/kulshekhar/ts-jest/compare/v26.2.0...v26.3.0) (2020-08-25)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* **config:** compute cache key without reading `package.json` ([#1893](https://github.com/kulshekhar/ts-jest/issues/1893)) ([4875a58](https://github.com/kulshekhar/ts-jest/commit/4875a58345666e0407f9f5b3f95049ae2c9d056d)), closes [#1892](https://github.com/kulshekhar/ts-jest/issues/1892)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### Features
|
|
42
|
+
|
|
43
|
+
* support TypeScript 4.0 ([#1889](https://github.com/kulshekhar/ts-jest/issues/1889)) ([f070e93](https://github.com/kulshekhar/ts-jest/commit/f070e9334a9cf31fa6f0d73b3f69d805be72601d))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
1
47
|
# [26.2.0](https://github.com/kulshekhar/ts-jest/compare/v26.1.4...v26.2.0) (2020-08-11)
|
|
2
48
|
|
|
3
49
|
|
package/README.md
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
[](https://npmjs.org/package/ts-jest)
|
|
5
5
|
[](https://snyk.io/test/github/kulshekhar/ts-jest)
|
|
6
6
|
[](https://coveralls.io/github/kulshekhar/ts-jest?branch=master)
|
|
7
|
-
[](https://dependabot.com)
|
|
8
7
|
[](https://travis-ci.com/kulshekhar/ts-jest)
|
|
9
8
|
[](https://github.com/kulshekhar/ts-jest/actions)
|
|
10
9
|
[](https://github.com/kulshekhar/ts-jest/actions)
|
|
@@ -62,7 +62,7 @@ var stableStringify = require("fast-json-stable-stringify");
|
|
|
62
62
|
var fs_1 = require("fs");
|
|
63
63
|
var json5_1 = require("json5");
|
|
64
64
|
var path_1 = require("path");
|
|
65
|
-
var backports_1 = require("../../
|
|
65
|
+
var backports_1 = require("../../utils/backports");
|
|
66
66
|
var presets_1 = require("../helpers/presets");
|
|
67
67
|
exports.run = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
68
68
|
var nullLogger, file, filePath, footNotes, name, isPackage, actualConfig, migratedConfig, presetName, preset, jsTransformers, jsWithTs, jsWithBabel, presetValue, migratedValue, presetValue, migratedValue, before, after, stringify, prefix;
|
package/dist/cli/index.js
CHANGED
|
@@ -35,19 +35,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
38
41
|
var _a;
|
|
39
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
43
|
exports.processArgv = void 0;
|
|
41
44
|
var bs_logger_1 = require("bs-logger");
|
|
42
|
-
var
|
|
43
|
-
var logger_1 = require("../
|
|
45
|
+
var yargs_parser_1 = __importDefault(require("yargs-parser"));
|
|
46
|
+
var logger_1 = require("../utils/logger");
|
|
44
47
|
var VALID_COMMANDS = ['help', 'config:migrate', 'config:init'];
|
|
45
48
|
var logger = logger_1.rootLogger.child((_a = {}, _a[bs_logger_1.LogContexts.namespace] = 'cli', _a[bs_logger_1.LogContexts.application] = 'ts-jest', _a));
|
|
46
49
|
function cli(args) {
|
|
47
50
|
return __awaiter(this, void 0, void 0, function () {
|
|
48
51
|
var parsedArgv, command, isHelp, _a, run, help, cmd;
|
|
49
52
|
return __generator(this, function (_b) {
|
|
50
|
-
parsedArgv =
|
|
53
|
+
parsedArgv = yargs_parser_1.default(args, {
|
|
51
54
|
boolean: ['dry-run', 'jest-preset', 'allow-js', 'diff', 'babel', 'force', 'jsdom'],
|
|
52
55
|
string: ['tsconfig', 'js'],
|
|
53
56
|
count: ['verbose'],
|
|
@@ -19,7 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
exports.createCompilerInstance = void 0;
|
|
20
20
|
var language_service_1 = require("./language-service");
|
|
21
21
|
var transpiler_1 = require("./transpiler");
|
|
22
|
-
var json_1 = require("../
|
|
22
|
+
var json_1 = require("../utils/json");
|
|
23
23
|
var SOURCE_MAPPING_PREFIX = 'sourceMappingURL=';
|
|
24
24
|
function updateOutput(outputText, normalizedFileName, sourceMap) {
|
|
25
25
|
var base64Map = Buffer.from(updateSourceMap(sourceMap, normalizedFileName), 'utf8').toString('base64');
|
|
@@ -85,9 +85,9 @@ var path_1 = require("path");
|
|
|
85
85
|
var memoize = require("lodash.memoize");
|
|
86
86
|
var mkdirp = require("mkdirp");
|
|
87
87
|
var constants_1 = require("../constants");
|
|
88
|
-
var messages_1 = require("../
|
|
89
|
-
var json_1 = require("../
|
|
90
|
-
var sha1_1 = require("../
|
|
88
|
+
var messages_1 = require("../utils/messages");
|
|
89
|
+
var json_1 = require("../utils/json");
|
|
90
|
+
var sha1_1 = require("../utils/sha1");
|
|
91
91
|
function doTypeChecking(configs, diagnosedFiles, fileName, service, logger) {
|
|
92
92
|
if (configs.shouldReportDiagnostic(fileName)) {
|
|
93
93
|
var diagnostics = service.getSemanticDiagnostics(fileName).concat(service.getSyntacticDiagnostics(fileName));
|
|
@@ -3,9 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.initializeTranspilerInstance = void 0;
|
|
4
4
|
exports.initializeTranspilerInstance = function (configs, logger) {
|
|
5
5
|
logger.debug('initializeTranspilerInstance(): create typescript compiler');
|
|
6
|
-
var
|
|
6
|
+
var options = configs.parsedTsConfig.options;
|
|
7
7
|
var ts = configs.compilerModule;
|
|
8
|
-
var program = ts.createProgram(fileNames, options);
|
|
9
8
|
return {
|
|
10
9
|
compileFn: function (code, fileName) {
|
|
11
10
|
logger.debug({ fileName: fileName }, 'compileFn(): compiling as isolated module');
|
|
@@ -20,6 +19,6 @@ exports.initializeTranspilerInstance = function (configs, logger) {
|
|
|
20
19
|
}
|
|
21
20
|
return [result.outputText, result.sourceMapText];
|
|
22
21
|
},
|
|
23
|
-
program:
|
|
22
|
+
program: undefined,
|
|
24
23
|
};
|
|
25
24
|
};
|
|
@@ -49,7 +49,7 @@ var __spread = (this && this.__spread) || function () {
|
|
|
49
49
|
};
|
|
50
50
|
var _a;
|
|
51
51
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
exports.ConfigSet = exports.TS_JEST_OUT_DIR = exports.IGNORE_DIAGNOSTIC_CODES =
|
|
52
|
+
exports.ConfigSet = exports.TS_JEST_OUT_DIR = exports.IGNORE_DIAGNOSTIC_CODES = void 0;
|
|
53
53
|
var bs_logger_1 = require("bs-logger");
|
|
54
54
|
var fs_1 = require("fs");
|
|
55
55
|
var jest_util_1 = require("jest-util");
|
|
@@ -60,19 +60,18 @@ var __1 = require("..");
|
|
|
60
60
|
var instance_1 = require("../compiler/instance");
|
|
61
61
|
var constants_1 = require("../constants");
|
|
62
62
|
var transformers_1 = require("../transformers");
|
|
63
|
-
var backports_1 = require("../
|
|
64
|
-
var get_package_version_1 = require("../
|
|
65
|
-
var importer_1 = require("../
|
|
66
|
-
var json_1 = require("../
|
|
67
|
-
var jsonable_value_1 = require("../
|
|
68
|
-
var logger_1 = require("../
|
|
69
|
-
var memoize_1 = require("../
|
|
70
|
-
var messages_1 = require("../
|
|
71
|
-
var normalize_slashes_1 = require("../
|
|
72
|
-
var sha1_1 = require("../
|
|
73
|
-
var ts_error_1 = require("../
|
|
63
|
+
var backports_1 = require("../utils/backports");
|
|
64
|
+
var get_package_version_1 = require("../utils/get-package-version");
|
|
65
|
+
var importer_1 = require("../utils/importer");
|
|
66
|
+
var json_1 = require("../utils/json");
|
|
67
|
+
var jsonable_value_1 = require("../utils/jsonable-value");
|
|
68
|
+
var logger_1 = require("../utils/logger");
|
|
69
|
+
var memoize_1 = require("../utils/memoize");
|
|
70
|
+
var messages_1 = require("../utils/messages");
|
|
71
|
+
var normalize_slashes_1 = require("../utils/normalize-slashes");
|
|
72
|
+
var sha1_1 = require("../utils/sha1");
|
|
73
|
+
var ts_error_1 = require("../utils/ts-error");
|
|
74
74
|
var logger = logger_1.rootLogger.child({ namespace: 'config' });
|
|
75
|
-
exports.MATCH_NOTHING = /a^/;
|
|
76
75
|
exports.IGNORE_DIAGNOSTIC_CODES = [
|
|
77
76
|
6059,
|
|
78
77
|
18002,
|
|
@@ -88,24 +87,14 @@ var TARGET_TO_VERSION_MAPPING = (_a = {},
|
|
|
88
87
|
var normalizeRegex = function (pattern) {
|
|
89
88
|
return pattern ? (typeof pattern === 'string' ? pattern : pattern.source) : undefined;
|
|
90
89
|
};
|
|
91
|
-
var toDiagnosticCode = function (code) {
|
|
92
|
-
return code ? parseInt(("" + code).trim().replace(/^TS/, ''), 10) || undefined : undefined;
|
|
93
|
-
};
|
|
90
|
+
var toDiagnosticCode = function (code) { var _a; return code ? (_a = parseInt(("" + code).trim().replace(/^TS/, ''), 10)) !== null && _a !== void 0 ? _a : undefined : undefined; };
|
|
94
91
|
var toDiagnosticCodeList = function (items, into) {
|
|
95
92
|
var e_1, _a;
|
|
96
93
|
if (into === void 0) { into = []; }
|
|
97
|
-
if (!Array.isArray(items))
|
|
98
|
-
items = [items];
|
|
99
94
|
try {
|
|
100
95
|
for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
|
|
101
96
|
var item = items_1_1.value;
|
|
102
|
-
if (
|
|
103
|
-
continue;
|
|
104
|
-
if (Array.isArray(item)) {
|
|
105
|
-
toDiagnosticCodeList(item, into);
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
else if (typeof item === 'string') {
|
|
97
|
+
if (typeof item === 'string') {
|
|
109
98
|
var children = item.trim().split(/\s*,\s*/g);
|
|
110
99
|
if (children.length > 1) {
|
|
111
100
|
toDiagnosticCodeList(children, into);
|
|
@@ -136,53 +125,6 @@ var ConfigSet = (function () {
|
|
|
136
125
|
this._jestConfig = jestConfig;
|
|
137
126
|
this.logger = parentLogger ? parentLogger.child((_a = {}, _a[bs_logger_1.LogContexts.namespace] = 'config', _a)) : logger;
|
|
138
127
|
}
|
|
139
|
-
Object.defineProperty(ConfigSet.prototype, "projectPackageJson", {
|
|
140
|
-
get: function () {
|
|
141
|
-
var packageJson = this.tsJest.packageJson;
|
|
142
|
-
if (packageJson) {
|
|
143
|
-
if (packageJson.kind === 'inline') {
|
|
144
|
-
return packageJson.value;
|
|
145
|
-
}
|
|
146
|
-
else if (packageJson.kind === 'file' && packageJson.value) {
|
|
147
|
-
var path = this.resolvePath(packageJson.value);
|
|
148
|
-
if (fs_1.existsSync(path)) {
|
|
149
|
-
return require(path);
|
|
150
|
-
}
|
|
151
|
-
this.logger.warn("Unable to find the root of the project where ts-jest has been installed.");
|
|
152
|
-
return {};
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
var tsJestRoot = path_1.resolve(__dirname, '..', '..');
|
|
156
|
-
var pkgPath = path_1.resolve(tsJestRoot, '..', '..', 'package.json');
|
|
157
|
-
if (fs_1.existsSync(pkgPath)) {
|
|
158
|
-
return require(pkgPath);
|
|
159
|
-
}
|
|
160
|
-
if (fs_1.realpathSync(this.rootDir) === fs_1.realpathSync(tsJestRoot)) {
|
|
161
|
-
pkgPath = path_1.resolve(tsJestRoot, 'package.json');
|
|
162
|
-
if (fs_1.existsSync(pkgPath)) {
|
|
163
|
-
return require(pkgPath);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
this.logger.warn("Unable to find the root of the project where ts-jest has been installed.");
|
|
167
|
-
return {};
|
|
168
|
-
},
|
|
169
|
-
enumerable: false,
|
|
170
|
-
configurable: true
|
|
171
|
-
});
|
|
172
|
-
Object.defineProperty(ConfigSet.prototype, "projectDependencies", {
|
|
173
|
-
get: function () {
|
|
174
|
-
var pkg = this.projectPackageJson;
|
|
175
|
-
var names = Object.keys(__assign(__assign(__assign(__assign({}, pkg.optionalDependencies), pkg.peerDependencies), pkg.devDependencies), pkg.dependencies));
|
|
176
|
-
return names.reduce(function (map, name) {
|
|
177
|
-
var version = get_package_version_1.getPackageVersion(name);
|
|
178
|
-
if (version)
|
|
179
|
-
map[name] = version;
|
|
180
|
-
return map;
|
|
181
|
-
}, {});
|
|
182
|
-
},
|
|
183
|
-
enumerable: false,
|
|
184
|
-
configurable: true
|
|
185
|
-
});
|
|
186
128
|
Object.defineProperty(ConfigSet.prototype, "jest", {
|
|
187
129
|
get: function () {
|
|
188
130
|
var _a;
|
|
@@ -217,105 +159,78 @@ var ConfigSet = (function () {
|
|
|
217
159
|
Object.defineProperty(ConfigSet.prototype, "tsJest", {
|
|
218
160
|
get: function () {
|
|
219
161
|
var _this = this;
|
|
220
|
-
var _a, _b, _c;
|
|
162
|
+
var _a, _b, _c, _d, _e, _f;
|
|
221
163
|
var parsedConfig = this.jest;
|
|
222
|
-
var
|
|
164
|
+
var _g = parsedConfig.globals, globals = _g === void 0 ? {} : _g;
|
|
223
165
|
var options = __assign({}, globals['ts-jest']);
|
|
224
|
-
var
|
|
225
|
-
var
|
|
226
|
-
if (typeof tsConfigOpt === 'string' || tsConfigOpt === true) {
|
|
227
|
-
tsConfig = {
|
|
228
|
-
kind: 'file',
|
|
229
|
-
value: typeof tsConfigOpt === 'string' ? this.resolvePath(tsConfigOpt) : undefined,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
else if (typeof tsConfigOpt === 'object') {
|
|
233
|
-
tsConfig = {
|
|
234
|
-
kind: 'inline',
|
|
235
|
-
value: tsConfigOpt,
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
var packageJsonOpt = options.packageJson;
|
|
239
|
-
var packageJson;
|
|
240
|
-
if (typeof packageJsonOpt === 'string' || packageJsonOpt == null || packageJsonOpt === true) {
|
|
241
|
-
packageJson = {
|
|
242
|
-
kind: 'file',
|
|
243
|
-
value: typeof packageJsonOpt === 'string' ? this.resolvePath(packageJsonOpt) : undefined,
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
else if (typeof packageJsonOpt === 'object') {
|
|
247
|
-
packageJson = {
|
|
248
|
-
kind: 'inline',
|
|
249
|
-
value: packageJsonOpt,
|
|
250
|
-
};
|
|
251
|
-
}
|
|
166
|
+
var tsConfig = this.getInlineOrFileConfigOpt((_b = (_a = options.tsConfig) !== null && _a !== void 0 ? _a : options.tsconfig) !== null && _b !== void 0 ? _b : true);
|
|
167
|
+
var packageJson = this.getInlineOrFileConfigOpt((_c = options.packageJson) !== null && _c !== void 0 ? _c : true);
|
|
252
168
|
var transformers = Object.create(null);
|
|
253
169
|
var astTransformers = options.astTransformers;
|
|
254
170
|
if (astTransformers) {
|
|
255
171
|
if (Array.isArray(astTransformers)) {
|
|
256
172
|
this.logger.warn("The configuration for astTransformers as string[] is deprecated and will be removed in ts-jest 27. Please define your custom AST transformers in a form of an object. More information you can check online documentation https://kulshekhar.github.io/ts-jest/user/config/astTransformers");
|
|
257
173
|
transformers = {
|
|
258
|
-
before: astTransformers.map(function (transformerPath) { return
|
|
174
|
+
before: astTransformers.map(function (transformerPath) { return ({
|
|
175
|
+
path: _this.resolvePath(transformerPath, { nodeResolve: true }),
|
|
176
|
+
}); }),
|
|
259
177
|
};
|
|
260
178
|
}
|
|
261
179
|
else {
|
|
262
180
|
if (astTransformers.before) {
|
|
263
181
|
transformers = {
|
|
264
|
-
before: astTransformers.before.map(function (
|
|
265
|
-
return
|
|
182
|
+
before: astTransformers.before.map(function (transformer) {
|
|
183
|
+
return typeof transformer === 'string'
|
|
184
|
+
? {
|
|
185
|
+
path: _this.resolvePath(transformer, { nodeResolve: true }),
|
|
186
|
+
}
|
|
187
|
+
: __assign(__assign({}, transformer), { path: _this.resolvePath(transformer.path, { nodeResolve: true }) });
|
|
266
188
|
}),
|
|
267
189
|
};
|
|
268
190
|
}
|
|
269
191
|
if (astTransformers.after) {
|
|
270
|
-
transformers = __assign(__assign({}, transformers), { after: astTransformers.after.map(function (
|
|
271
|
-
return
|
|
192
|
+
transformers = __assign(__assign({}, transformers), { after: astTransformers.after.map(function (transformer) {
|
|
193
|
+
return typeof transformer === 'string'
|
|
194
|
+
? {
|
|
195
|
+
path: _this.resolvePath(transformer, { nodeResolve: true }),
|
|
196
|
+
}
|
|
197
|
+
: __assign(__assign({}, transformer), { path: _this.resolvePath(transformer.path, { nodeResolve: true }) });
|
|
272
198
|
}) });
|
|
273
199
|
}
|
|
274
200
|
if (astTransformers.afterDeclarations) {
|
|
275
|
-
transformers = __assign(__assign({}, transformers), { afterDeclarations: astTransformers.afterDeclarations.map(function (
|
|
276
|
-
return
|
|
201
|
+
transformers = __assign(__assign({}, transformers), { afterDeclarations: astTransformers.afterDeclarations.map(function (transformer) {
|
|
202
|
+
return typeof transformer === 'string'
|
|
203
|
+
? {
|
|
204
|
+
path: _this.resolvePath(transformer, { nodeResolve: true }),
|
|
205
|
+
}
|
|
206
|
+
: __assign(__assign({}, transformer), { path: _this.resolvePath(transformer.path, { nodeResolve: true }) });
|
|
277
207
|
}) });
|
|
278
208
|
}
|
|
279
209
|
}
|
|
280
210
|
}
|
|
281
|
-
var
|
|
282
|
-
var babelConfig;
|
|
283
|
-
if (typeof babelConfigOpt === 'string' || babelConfigOpt === true) {
|
|
284
|
-
babelConfig = {
|
|
285
|
-
kind: 'file',
|
|
286
|
-
value: babelConfigOpt === true ? undefined : this.resolvePath(babelConfigOpt),
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
else if (babelConfigOpt) {
|
|
290
|
-
babelConfig = {
|
|
291
|
-
kind: 'inline',
|
|
292
|
-
value: babelConfigOpt,
|
|
293
|
-
};
|
|
294
|
-
}
|
|
211
|
+
var babelConfig = this.getInlineOrFileConfigOpt(options.babelConfig);
|
|
295
212
|
var diagnostics;
|
|
296
|
-
var
|
|
297
|
-
var ignoreList =
|
|
298
|
-
if (diagnosticsOpt ===
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
213
|
+
var diagnosticsOpt = (_d = options.diagnostics) !== null && _d !== void 0 ? _d : true;
|
|
214
|
+
var ignoreList = __spread(exports.IGNORE_DIAGNOSTIC_CODES);
|
|
215
|
+
if (typeof diagnosticsOpt === 'object') {
|
|
216
|
+
var ignoreCodes = diagnosticsOpt.ignoreCodes;
|
|
217
|
+
if (ignoreCodes) {
|
|
218
|
+
Array.isArray(ignoreCodes) ? ignoreList.push.apply(ignoreList, __spread(ignoreCodes)) : ignoreList.push(ignoreCodes);
|
|
219
|
+
}
|
|
302
220
|
diagnostics = {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
221
|
+
pretty: (_e = diagnosticsOpt.pretty) !== null && _e !== void 0 ? _e : true,
|
|
222
|
+
ignoreCodes: toDiagnosticCodeList(ignoreList),
|
|
223
|
+
pathRegex: normalizeRegex(diagnosticsOpt.pathRegex),
|
|
224
|
+
throws: !diagnosticsOpt.warnOnly,
|
|
307
225
|
};
|
|
308
226
|
}
|
|
309
227
|
else {
|
|
310
|
-
ignoreList.push(diagnosticsOpt.ignoreCodes);
|
|
311
228
|
diagnostics = {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
throws: !diagnosticsOpt.warnOnly,
|
|
229
|
+
ignoreCodes: diagnosticsOpt ? toDiagnosticCodeList(ignoreList) : [],
|
|
230
|
+
pretty: true,
|
|
231
|
+
throws: diagnosticsOpt,
|
|
316
232
|
};
|
|
317
233
|
}
|
|
318
|
-
diagnostics.ignoreCodes = toDiagnosticCodeList(ignoreList);
|
|
319
234
|
var stringifyContentPathRegex = normalizeRegex(options.stringifyContentPathRegex);
|
|
320
235
|
var res = {
|
|
321
236
|
tsConfig: tsConfig,
|
|
@@ -323,7 +238,7 @@ var ConfigSet = (function () {
|
|
|
323
238
|
babelConfig: babelConfig,
|
|
324
239
|
diagnostics: diagnostics,
|
|
325
240
|
isolatedModules: !!options.isolatedModules,
|
|
326
|
-
compiler: (
|
|
241
|
+
compiler: (_f = options.compiler) !== null && _f !== void 0 ? _f : 'typescript',
|
|
327
242
|
transformers: transformers,
|
|
328
243
|
stringifyContentPathRegex: stringifyContentPathRegex,
|
|
329
244
|
};
|
|
@@ -442,20 +357,47 @@ var ConfigSet = (function () {
|
|
|
442
357
|
Object.defineProperty(ConfigSet.prototype, "astTransformers", {
|
|
443
358
|
get: function () {
|
|
444
359
|
var astTransformers = {
|
|
445
|
-
before: __spread(transformers_1.internals)
|
|
360
|
+
before: __spread(transformers_1.internals.map(function (transformer) { return ({
|
|
361
|
+
transformModule: transformer,
|
|
362
|
+
}); })),
|
|
446
363
|
};
|
|
447
364
|
var transformers = this.tsJest.transformers;
|
|
448
365
|
if (transformers.before) {
|
|
449
366
|
astTransformers = {
|
|
450
|
-
before: __spread(astTransformers.before, transformers.before.map(function (
|
|
367
|
+
before: __spread(astTransformers.before, transformers.before.map(function (transformer) {
|
|
368
|
+
return typeof transformer === 'string'
|
|
369
|
+
? {
|
|
370
|
+
transformModule: require(transformer),
|
|
371
|
+
}
|
|
372
|
+
: {
|
|
373
|
+
transformModule: require(transformer.path),
|
|
374
|
+
options: transformer.options,
|
|
375
|
+
};
|
|
376
|
+
})),
|
|
451
377
|
};
|
|
452
378
|
}
|
|
453
379
|
if (transformers.after) {
|
|
454
|
-
astTransformers = __assign(__assign({}, astTransformers), { after: transformers.after.map(function (
|
|
380
|
+
astTransformers = __assign(__assign({}, astTransformers), { after: transformers.after.map(function (transformer) {
|
|
381
|
+
return typeof transformer === 'string'
|
|
382
|
+
? {
|
|
383
|
+
transformModule: require(transformer),
|
|
384
|
+
}
|
|
385
|
+
: {
|
|
386
|
+
transformModule: require(transformer.path),
|
|
387
|
+
options: transformer.options,
|
|
388
|
+
};
|
|
389
|
+
}) });
|
|
455
390
|
}
|
|
456
391
|
if (transformers.afterDeclarations) {
|
|
457
|
-
astTransformers = __assign(__assign({}, astTransformers), { afterDeclarations: transformers.afterDeclarations.map(function (
|
|
458
|
-
return
|
|
392
|
+
astTransformers = __assign(__assign({}, astTransformers), { afterDeclarations: transformers.afterDeclarations.map(function (transformer) {
|
|
393
|
+
return typeof transformer === 'string'
|
|
394
|
+
? {
|
|
395
|
+
transformModule: require(transformer),
|
|
396
|
+
}
|
|
397
|
+
: {
|
|
398
|
+
transformModule: require(transformer.path),
|
|
399
|
+
options: transformer.options,
|
|
400
|
+
};
|
|
459
401
|
}) });
|
|
460
402
|
}
|
|
461
403
|
return astTransformers;
|
|
@@ -467,13 +409,15 @@ var ConfigSet = (function () {
|
|
|
467
409
|
get: function () {
|
|
468
410
|
var _this = this;
|
|
469
411
|
var customTransformers = {
|
|
470
|
-
before: this.astTransformers.before.map(function (t) { return t.factory(_this); }),
|
|
412
|
+
before: this.astTransformers.before.map(function (t) { return t.transformModule.factory(_this, t.options); }),
|
|
471
413
|
};
|
|
472
414
|
if (this.astTransformers.after) {
|
|
473
|
-
customTransformers = __assign(__assign({}, customTransformers), { after: this.astTransformers.after.map(function (t) { return t.factory(_this); }) });
|
|
415
|
+
customTransformers = __assign(__assign({}, customTransformers), { after: this.astTransformers.after.map(function (t) { return t.transformModule.factory(_this, t.options); }) });
|
|
474
416
|
}
|
|
475
417
|
if (this.astTransformers.afterDeclarations) {
|
|
476
|
-
customTransformers = __assign(__assign({}, customTransformers), { afterDeclarations: this.astTransformers.afterDeclarations.map(function (t) {
|
|
418
|
+
customTransformers = __assign(__assign({}, customTransformers), { afterDeclarations: this.astTransformers.afterDeclarations.map(function (t) {
|
|
419
|
+
return t.transformModule.factory(_this, t.options);
|
|
420
|
+
}) });
|
|
477
421
|
}
|
|
478
422
|
return customTransformers;
|
|
479
423
|
},
|
|
@@ -568,7 +512,6 @@ var ConfigSet = (function () {
|
|
|
568
512
|
var cacheSuffix = sha1_1.sha1(json_1.stringify({
|
|
569
513
|
version: this.compilerModule.version,
|
|
570
514
|
digest: this.tsJestDigest,
|
|
571
|
-
dependencies: this.projectDependencies,
|
|
572
515
|
compiler: this.tsJest.compiler,
|
|
573
516
|
compilerOptions: this.parsedTsConfig.options,
|
|
574
517
|
isolatedModules: this.tsJest.isolatedModules,
|
|
@@ -632,16 +575,17 @@ var ConfigSet = (function () {
|
|
|
632
575
|
get: function () {
|
|
633
576
|
var jest = __assign({}, this.jest);
|
|
634
577
|
var globals = (jest.globals = __assign({}, jest.globals));
|
|
635
|
-
|
|
636
|
-
|
|
578
|
+
jest.name = undefined;
|
|
579
|
+
jest.cacheDirectory = undefined;
|
|
637
580
|
delete globals['ts-jest'];
|
|
638
581
|
return new jsonable_value_1.JsonableValue({
|
|
639
|
-
versions: this.versions,
|
|
640
|
-
projectDepVersions: this.projectDependencies,
|
|
641
582
|
digest: this.tsJestDigest,
|
|
642
583
|
transformers: Object.values(this.astTransformers)
|
|
643
584
|
.reduce(function (acc, val) { return acc.concat(val); }, [])
|
|
644
|
-
.map(function (
|
|
585
|
+
.map(function (_a) {
|
|
586
|
+
var transformModule = _a.transformModule;
|
|
587
|
+
return transformModule.name + "@" + transformModule.version;
|
|
588
|
+
}),
|
|
645
589
|
jest: jest,
|
|
646
590
|
tsJest: this.tsJest,
|
|
647
591
|
babel: this.babel,
|
|
@@ -673,6 +617,21 @@ var ConfigSet = (function () {
|
|
|
673
617
|
length: length,
|
|
674
618
|
};
|
|
675
619
|
};
|
|
620
|
+
ConfigSet.prototype.getInlineOrFileConfigOpt = function (configOpt) {
|
|
621
|
+
if (typeof configOpt === 'string' || configOpt === true) {
|
|
622
|
+
return {
|
|
623
|
+
kind: 'file',
|
|
624
|
+
value: typeof configOpt === 'string' ? this.resolvePath(configOpt) : undefined,
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
else if (typeof configOpt === 'object') {
|
|
628
|
+
return {
|
|
629
|
+
kind: 'inline',
|
|
630
|
+
value: configOpt,
|
|
631
|
+
};
|
|
632
|
+
}
|
|
633
|
+
return;
|
|
634
|
+
};
|
|
676
635
|
ConfigSet.prototype.readTsConfig = function (compilerOptions, resolvedConfigFile, noProject) {
|
|
677
636
|
var e_2, _a;
|
|
678
637
|
var _b;
|
|
@@ -786,12 +745,6 @@ var ConfigSet = (function () {
|
|
|
786
745
|
ConfigSet.prototype.toJSON = function () {
|
|
787
746
|
return this.jsonValue.value;
|
|
788
747
|
};
|
|
789
|
-
__decorate([
|
|
790
|
-
memoize_1.Memoize()
|
|
791
|
-
], ConfigSet.prototype, "projectPackageJson", null);
|
|
792
|
-
__decorate([
|
|
793
|
-
memoize_1.Memoize()
|
|
794
|
-
], ConfigSet.prototype, "projectDependencies", null);
|
|
795
748
|
__decorate([
|
|
796
749
|
memoize_1.Memoize()
|
|
797
750
|
], ConfigSet.prototype, "jest", null);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Config } from '@jest/types';
|
|
2
2
|
declare type JestPathMapping = Config.InitialOptions['moduleNameMapper'];
|
|
3
3
|
export declare const pathsToModuleNameMapper: (mapping: import("typescript").MapLike<string[]>, { prefix }?: {
|
|
4
|
-
prefix
|
|
4
|
+
prefix: string;
|
|
5
5
|
}) => JestPathMapping;
|
|
6
6
|
export {};
|
|
@@ -14,13 +14,13 @@ var _a;
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.pathsToModuleNameMapper = void 0;
|
|
16
16
|
var bs_logger_1 = require("bs-logger");
|
|
17
|
-
var logger_1 = require("../
|
|
18
|
-
var messages_1 = require("../
|
|
17
|
+
var logger_1 = require("../utils/logger");
|
|
18
|
+
var messages_1 = require("../utils/messages");
|
|
19
19
|
var escapeRegex = function (str) { return str.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&'); };
|
|
20
20
|
var logger = logger_1.rootLogger.child((_a = {}, _a[bs_logger_1.LogContexts.namespace] = 'path-mapper', _a));
|
|
21
21
|
exports.pathsToModuleNameMapper = function (mapping, _a) {
|
|
22
22
|
var e_1, _b;
|
|
23
|
-
var _c = (_a === void 0 ?
|
|
23
|
+
var _c = (_a === void 0 ? Object.create(null) : _a).prefix, prefix = _c === void 0 ? '' : _c;
|
|
24
24
|
var jestMap = {};
|
|
25
25
|
try {
|
|
26
26
|
for (var _d = __values(Object.keys(mapping)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
@@ -33,18 +33,23 @@ exports.pathsToModuleNameMapper = function (mapping, _a) {
|
|
|
33
33
|
}
|
|
34
34
|
var segments = fromPath.split(/\*/g);
|
|
35
35
|
if (segments.length === 1) {
|
|
36
|
-
var paths = toPaths.map(function (target) {
|
|
36
|
+
var paths = toPaths.map(function (target) {
|
|
37
|
+
var enrichedPrefix = prefix !== '' && !prefix.endsWith('/') ? prefix + "/" : prefix;
|
|
38
|
+
return "" + enrichedPrefix + target;
|
|
39
|
+
});
|
|
37
40
|
pattern = "^" + escapeRegex(fromPath) + "$";
|
|
38
41
|
jestMap[pattern] = paths.length === 1 ? paths[0] : paths;
|
|
39
42
|
}
|
|
40
43
|
else if (segments.length === 2) {
|
|
41
|
-
var paths = toPaths.map(function (target) {
|
|
44
|
+
var paths = toPaths.map(function (target) {
|
|
45
|
+
var enrichedPrefix = prefix !== '' && !prefix.endsWith('/') ? prefix + "/" : prefix;
|
|
46
|
+
return "" + enrichedPrefix + target.replace(/\*/g, '$1');
|
|
47
|
+
});
|
|
42
48
|
pattern = "^" + escapeRegex(segments[0]) + "(.*)" + escapeRegex(segments[1]) + "$";
|
|
43
49
|
jestMap[pattern] = paths.length === 1 ? paths[0] : paths;
|
|
44
50
|
}
|
|
45
51
|
else {
|
|
46
52
|
logger.warn(messages_1.interpolate("Not mapping \"{{path}}\" because it has more than one star (`*`).", { path: fromPath }));
|
|
47
|
-
continue;
|
|
48
53
|
}
|
|
49
54
|
}
|
|
50
55
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createJestPreset as createJestPresetCore } from './
|
|
1
|
+
import { createJestPreset as createJestPresetCore } from './presets/create-jest-preset';
|
|
2
2
|
import { TsJestTransformer } from './ts-jest-transformer';
|
|
3
3
|
import type { TsJestGlobalOptions } from './types';
|
|
4
|
-
import { mocked as mockedCore } from './
|
|
4
|
+
import { mocked as mockedCore } from './utils/testing';
|
|
5
5
|
declare module '@jest/types' {
|
|
6
6
|
namespace Config {
|
|
7
7
|
interface ConfigGlobals {
|
|
@@ -12,7 +12,7 @@ declare module '@jest/types' {
|
|
|
12
12
|
export declare const mocked: typeof mockedCore;
|
|
13
13
|
export declare const createJestPreset: typeof createJestPresetCore;
|
|
14
14
|
export declare const pathsToModuleNameMapper: (mapping: import("typescript").MapLike<string[]>, { prefix }?: {
|
|
15
|
-
prefix
|
|
15
|
+
prefix: string;
|
|
16
16
|
}) => {
|
|
17
17
|
[key: string]: string | string[];
|
|
18
18
|
} | undefined;
|