ts-jest 29.1.4 → 29.2.0

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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.factory = exports.name = exports.version = void 0;
3
+ exports.name = exports.version = void 0;
4
+ exports.factory = factory;
4
5
  var bs_logger_1 = require("bs-logger");
5
6
  /**
6
7
  * Remember to increase the version whenever transformer's content is changed. This is to inform Jest to not reuse
@@ -121,4 +122,3 @@ function factory(_a) {
121
122
  });
122
123
  };
123
124
  }
124
- exports.factory = factory;
package/dist/types.d.ts CHANGED
@@ -2,19 +2,9 @@ import type { TransformedSource, TransformOptions } from '@jest/transform';
2
2
  import type { Config } from '@jest/types';
3
3
  import type * as _babel from 'babel__core';
4
4
  import type * as _ts from 'typescript';
5
+ import { ESM_JS_TRANSFORM_PATTERN, ESM_TS_JS_TRANSFORM_PATTERN, ESM_TS_TRANSFORM_PATTERN, JS_TRANSFORM_PATTERN, TS_JS_TRANSFORM_PATTERN, TS_TRANSFORM_PATTERN } from './constants';
5
6
  import type { ConfigSet } from './legacy/config/config-set';
6
7
  import type { RawCompilerOptions } from './raw-compiler-options';
7
- declare module '@jest/types' {
8
- namespace Config {
9
- interface ConfigGlobals {
10
- /**
11
- * strangely `@ts-expect-error` doesn't work in this case when running
12
- * `npm run build` vs `npm run pretest`
13
- */
14
- 'ts-jest'?: TsJestGlobalOptions;
15
- }
16
- }
17
- }
18
8
  export type TTypeScript = typeof _ts;
19
9
  /**
20
10
  * Don't mark as internal because it is used in TsJestGlobalOptions which is an exposed type
@@ -148,7 +138,6 @@ export interface JestConfigWithTsJest extends Omit<Config.InitialOptions, 'trans
148
138
  [regex: string]: 'ts-jest' | 'ts-jest/legacy' | ['ts-jest', TsJestTransformerOptions] | ['ts-jest/legacy', TsJestTransformerOptions] | string | Config.TransformerConfig;
149
139
  };
150
140
  }
151
- export type TsJestPresets = Pick<JestConfigWithTsJest, 'extensionsToTreatAsEsm' | 'moduleFileExtensions' | 'transform' | 'testMatch'>;
152
141
  export type StringMap = Map<string, string>;
153
142
  export interface DepGraphInfo {
154
143
  fileContent: string;
@@ -181,3 +170,106 @@ export interface TsJestAstTransformer {
181
170
  after: AstTransformerDesc[];
182
171
  afterDeclarations: AstTransformerDesc[];
183
172
  }
173
+ /**
174
+ * @deprecated use other preset types below instead
175
+ */
176
+ export type TsJestPresets = Pick<JestConfigWithTsJest, 'extensionsToTreatAsEsm' | 'moduleFileExtensions' | 'transform' | 'testMatch'>;
177
+ export type DefaultTransformOptions = Omit<TsJestTransformerOptions, 'useESM'>;
178
+ export type DefaultPreset = {
179
+ transform: {
180
+ [TS_TRANSFORM_PATTERN]: ['ts-jest', DefaultTransformOptions];
181
+ };
182
+ };
183
+ export type DefaultLegacyPreset = {
184
+ transform: {
185
+ [TS_TRANSFORM_PATTERN]: ['ts-jest/legacy', DefaultTransformOptions];
186
+ };
187
+ };
188
+ export type DefaultEsmTransformOptions = Omit<TsJestTransformerOptions, 'useESM'>;
189
+ export type DefaultEsmPreset = {
190
+ extensionsToTreatAsEsm: string[];
191
+ transform: {
192
+ [ESM_TS_TRANSFORM_PATTERN]: ['ts-jest', {
193
+ useESM: true;
194
+ } & DefaultEsmTransformOptions];
195
+ };
196
+ };
197
+ export type DefaultEsmLegacyPreset = {
198
+ extensionsToTreatAsEsm: string[];
199
+ transform: {
200
+ [ESM_TS_TRANSFORM_PATTERN]: ['ts-jest/legacy', {
201
+ useESM: true;
202
+ } & DefaultEsmTransformOptions];
203
+ };
204
+ };
205
+ export type JsWithTsTransformOptions = Omit<TsJestTransformerOptions, 'useESM'>;
206
+ export type JsWithTsPreset = {
207
+ transform: {
208
+ [TS_JS_TRANSFORM_PATTERN]: ['ts-jest', JsWithTsTransformOptions];
209
+ };
210
+ };
211
+ export type JsWithTsLegacyPreset = {
212
+ transform: {
213
+ [TS_JS_TRANSFORM_PATTERN]: ['ts-jest/legacy', JsWithTsTransformOptions];
214
+ };
215
+ };
216
+ export type JsWithTsEsmTransformOptions = Omit<TsJestTransformerOptions, 'useESM'>;
217
+ export type JsWithTsEsmPreset = {
218
+ extensionsToTreatAsEsm: string[];
219
+ transform: {
220
+ [ESM_TS_JS_TRANSFORM_PATTERN]: ['ts-jest', {
221
+ useESM: true;
222
+ } & JsWithTsEsmTransformOptions];
223
+ };
224
+ };
225
+ export type JsWithTsEsmLegacyPreset = {
226
+ extensionsToTreatAsEsm: string[];
227
+ transform: {
228
+ [ESM_TS_JS_TRANSFORM_PATTERN]: ['ts-jest/legacy', {
229
+ useESM: true;
230
+ } & JsWithTsEsmTransformOptions];
231
+ };
232
+ };
233
+ export type JsWithBabelTransformerOptions = Omit<TsJestTransformerOptions, 'useESM'>;
234
+ export type JsWithBabelPreset = {
235
+ transform: {
236
+ [JS_TRANSFORM_PATTERN]: 'babel-jest';
237
+ [TS_TRANSFORM_PATTERN]: ['ts-jest', JsWithBabelTransformerOptions];
238
+ };
239
+ };
240
+ export type JsWithBabelLegacyPreset = {
241
+ transform: {
242
+ [JS_TRANSFORM_PATTERN]: 'babel-jest';
243
+ [TS_TRANSFORM_PATTERN]: ['ts-jest/legacy', JsWithBabelTransformerOptions];
244
+ };
245
+ };
246
+ export type JsWithBabelEsmTransformOptions = Omit<TsJestTransformerOptions, 'useESM'>;
247
+ export type JsWithBabelEsmPreset = {
248
+ extensionsToTreatAsEsm: string[];
249
+ transform: {
250
+ [ESM_JS_TRANSFORM_PATTERN]: 'babel-jest';
251
+ [ESM_TS_TRANSFORM_PATTERN]: ['ts-jest', {
252
+ useESM: true;
253
+ } & JsWithBabelEsmTransformOptions];
254
+ };
255
+ };
256
+ export type JsWithBabelEsmLegacyPreset = {
257
+ extensionsToTreatAsEsm: string[];
258
+ transform: {
259
+ [ESM_JS_TRANSFORM_PATTERN]: 'babel-jest';
260
+ [ESM_TS_TRANSFORM_PATTERN]: ['ts-jest/legacy', {
261
+ useESM: true;
262
+ } & JsWithBabelEsmTransformOptions];
263
+ };
264
+ };
265
+ declare module '@jest/types' {
266
+ namespace Config {
267
+ interface ConfigGlobals {
268
+ /**
269
+ * strangely `@ts-expect-error` doesn't work in this case when running
270
+ * `npm run build` vs `npm run pretest`
271
+ */
272
+ 'ts-jest'?: TsJestTransformerOptions;
273
+ }
274
+ }
275
+ }
package/dist/types.js CHANGED
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ var constants_1 = require("./constants");
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPackageVersion = void 0;
3
+ exports.getPackageVersion = getPackageVersion;
4
4
  /**
5
5
  * @internal
6
6
  */
@@ -11,4 +11,3 @@ function getPackageVersion(moduleName) {
11
11
  catch (err) { }
12
12
  return;
13
13
  }
14
- exports.getPackageVersion = getPackageVersion;
@@ -42,7 +42,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
42
42
  return to.concat(ar || Array.prototype.slice.call(from));
43
43
  };
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.__requireModule = exports.importer = exports.Importer = void 0;
45
+ exports.importer = exports.Importer = void 0;
46
+ exports.__requireModule = __requireModule;
46
47
  var logger_1 = require("./logger");
47
48
  var memoize_1 = require("./memoize");
48
49
  var messages_1 = require("./messages");
@@ -56,7 +57,7 @@ var passThru = function (action) { return function (input) {
56
57
  /**
57
58
  * @internal
58
59
  */
59
- var Importer = exports.Importer = /** @class */ (function () {
60
+ var Importer = /** @class */ (function () {
60
61
  function Importer(_patches) {
61
62
  if (_patches === void 0) { _patches = {}; }
62
63
  this._patches = _patches;
@@ -189,6 +190,7 @@ var Importer = exports.Importer = /** @class */ (function () {
189
190
  ], Importer, "instance", null);
190
191
  return Importer;
191
192
  }());
193
+ exports.Importer = Importer;
192
194
  /**
193
195
  * @internal
194
196
  */
@@ -227,4 +229,3 @@ function __requireModule(localRequire, localResolve) {
227
229
  requireModule = localRequire;
228
230
  resolveModule = localResolve;
229
231
  }
230
- exports.__requireModule = __requireModule;
@@ -3,19 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.normalize = exports.parse = exports.stringify = void 0;
6
+ exports.stringify = stringify;
7
+ exports.parse = parse;
8
+ exports.normalize = normalize;
7
9
  /* eslint-disable no-redeclare */
8
10
  var fast_json_stable_stringify_1 = __importDefault(require("fast-json-stable-stringify"));
9
11
  var UNDEFINED = 'undefined';
10
12
  function stringify(input) {
11
13
  return input === undefined ? UNDEFINED : (0, fast_json_stable_stringify_1.default)(input);
12
14
  }
13
- exports.stringify = stringify;
14
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
16
  function parse(input) {
16
17
  return input === UNDEFINED ? undefined : JSON.parse(input);
17
18
  }
18
- exports.parse = parse;
19
19
  /**
20
20
  * @internal
21
21
  */
@@ -34,7 +34,6 @@ function normalize(input, _a) {
34
34
  }
35
35
  return result === undefined ? input : result;
36
36
  }
37
- exports.normalize = normalize;
38
37
  /**
39
38
  * @internal
40
39
  */
@@ -1 +1 @@
1
- export declare let rootLogger: import("bs-logger/dist/logger").Logger;
1
+ export declare let rootLogger: import("bs-logger").Logger;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Memoize = void 0;
3
+ exports.Memoize = Memoize;
4
4
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
5
  var cacheProp = Symbol.for('[memoize]');
6
6
  /**
@@ -19,7 +19,6 @@ function Memoize(keyBuilder) {
19
19
  }
20
20
  };
21
21
  }
22
- exports.Memoize = Memoize;
23
22
  // See https://github.com/microsoft/TypeScript/issues/1863#issuecomment-579541944
24
23
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
24
  function ensureCache(target, reset) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.interpolate = void 0;
3
+ exports.interpolate = interpolate;
4
4
  /**
5
5
  * @internal
6
6
  */
@@ -10,4 +10,3 @@ function interpolate(msg, vars) {
10
10
  // eslint-disable-next-line no-useless-escape
11
11
  return msg.replace(/\{\{([^\}]+)\}\}/g, function (_, key) { return (key in vars ? vars[key] : _); });
12
12
  }
13
- exports.interpolate = interpolate;
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeSlashes = void 0;
3
+ exports.normalizeSlashes = normalizeSlashes;
4
4
  /**
5
5
  * @internal
6
6
  */
7
7
  function normalizeSlashes(value) {
8
8
  return value.replace(/\\/g, '/');
9
9
  }
10
- exports.normalizeSlashes = normalizeSlashes;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sha1 = exports.cache = void 0;
3
+ exports.cache = void 0;
4
+ exports.sha1 = sha1;
4
5
  var crypto_1 = require("crypto");
5
6
  /**
6
7
  * @internal
@@ -39,4 +40,3 @@ function sha1() {
39
40
  }
40
41
  return res;
41
42
  }
42
- exports.sha1 = sha1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-jest",
3
- "version": "29.1.4",
3
+ "version": "29.2.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "bin": {
@@ -11,7 +11,7 @@
11
11
  "prebuild": "rimraf dist coverage *.tgz",
12
12
  "build": "tsc -p tsconfig.build.json",
13
13
  "postbuild": "node scripts/post-build.js",
14
- "pretest": "tsc -p tsconfig.spec.json --noEmit && node scripts/prepare-test.js",
14
+ "pretest": "tsc -p tsconfig.spec.json --noEmit && node scripts/create-bundle.js",
15
15
  "test": "jest",
16
16
  "test-examples": "node scripts/test-examples.js",
17
17
  "lint": "eslint --ext .js,.ts .",
@@ -93,37 +93,38 @@
93
93
  }
94
94
  },
95
95
  "devDependencies": {
96
- "@commitlint/cli": "^19.3.0",
97
- "@commitlint/config-angular": "^19.3.0",
96
+ "@commitlint/cli": "18.6.1",
97
+ "@commitlint/config-angular": "18.6.1",
98
98
  "@jest/transform": "^29.7.0",
99
99
  "@jest/types": "^29.6.3",
100
100
  "@types/babel__core": "7.20.5",
101
101
  "@types/cross-spawn": "latest",
102
+ "@types/ejs": "^3.1.5",
102
103
  "@types/fs-extra": "latest",
103
104
  "@types/js-yaml": "latest",
104
105
  "@types/lodash.camelcase": "4.3.9",
105
106
  "@types/lodash.memoize": "4.1.9",
106
107
  "@types/lodash.set": "4.3.9",
107
- "@types/micromatch": "4.0.7",
108
- "@types/node": "20.12.12",
108
+ "@types/micromatch": "4.0.9",
109
+ "@types/node": "20.14.10",
109
110
  "@types/react": "18.x",
110
- "@types/rimraf": "^4.0.5",
111
111
  "@types/semver": "latest",
112
112
  "@types/yargs": "latest",
113
113
  "@types/yargs-parser": "21.0.3",
114
- "@typescript-eslint/eslint-plugin": "^7.11.0",
115
- "@typescript-eslint/parser": "^7.11.0",
114
+ "@typescript-eslint/eslint-plugin": "^7.15.0",
115
+ "@typescript-eslint/parser": "^7.15.0",
116
116
  "babel-jest": "^29.7.0",
117
117
  "conventional-changelog-cli": "^5.0.0",
118
118
  "cross-spawn": "latest",
119
- "esbuild": "~0.21.4",
119
+ "ejs": "^3.1.10",
120
+ "esbuild": "~0.21.5",
120
121
  "eslint": "^8.57.0",
121
122
  "eslint-config-prettier": "^9.1.0",
122
123
  "eslint-plugin-import": "^2.29.1",
123
- "eslint-plugin-jest": "^28.5.0",
124
- "eslint-plugin-jsdoc": "^48.2.6",
124
+ "eslint-plugin-jest": "^28.6.0",
125
+ "eslint-plugin-jsdoc": "^48.5.2",
125
126
  "eslint-plugin-prefer-arrow": "^1.2.3",
126
- "eslint-plugin-prettier": "^5.1.3",
127
+ "eslint-plugin-prettier": "^4.2.1",
127
128
  "execa": "5.1.1",
128
129
  "fs-extra": "11.2.0",
129
130
  "glob": "^10.2.6",
@@ -134,11 +135,8 @@
134
135
  "js-yaml": "latest",
135
136
  "json-schema-to-typescript": "^13.1.2",
136
137
  "lint-staged": "latest",
137
- "lodash.camelcase": "^4.3.0",
138
- "lodash.set": "^4.3.2",
139
- "node-fetch": "^3.3.2",
140
- "prettier": "^3.2.5",
141
- "typescript": "~5.1.3"
138
+ "prettier": "^2.8.8",
139
+ "typescript": "~5.5.3"
142
140
  },
143
141
  "lint-staged": {
144
142
  "*.{ts,tsx,js,jsx}": [
package/presets/index.js CHANGED
@@ -1,63 +1,53 @@
1
- const { JS_EXT_TO_TREAT_AS_ESM, TS_EXT_TO_TREAT_AS_ESM } = require('../dist/constants')
2
- const { createJestPreset } = require('../dist/presets/create-jest-preset')
1
+ const {
2
+ createDefaultPreset,
3
+ createDefaultEsmPreset,
4
+ createJsWithTsPreset,
5
+ createJsWithTsEsmPreset,
6
+ createJsWithBabelPreset,
7
+ createJsWithBabelEsmPreset,
8
+ createDefaultLegacyPreset,
9
+ createDefaultEsmLegacyPreset,
10
+ createJsWithTsLegacyPreset,
11
+ createJsWithTsEsmLegacyPreset,
12
+ createJsWithBabelLegacyPreset,
13
+ createJsWithBabelEsmLegacyPreset,
14
+ } = require('../dist/presets/create-jest-preset')
3
15
 
4
16
  module.exports = {
5
17
  get defaults() {
6
- return createJestPreset()
18
+ return createDefaultPreset()
7
19
  },
8
20
  get defaultsLegacy() {
9
- return createJestPreset(true, false)
21
+ return createDefaultLegacyPreset()
10
22
  },
11
23
  get defaultsESM() {
12
- return createJestPreset(false, false, { extensionsToTreatAsEsm: TS_EXT_TO_TREAT_AS_ESM })
24
+ return createDefaultEsmPreset()
13
25
  },
14
26
  get defaultsESMLegacy() {
15
- return createJestPreset(true, false, { extensionsToTreatAsEsm: TS_EXT_TO_TREAT_AS_ESM })
27
+ return createDefaultEsmLegacyPreset()
16
28
  },
17
29
  get jsWithTs() {
18
- return createJestPreset(false, true)
30
+ return createJsWithTsPreset()
19
31
  },
20
32
  get jsWithTsLegacy() {
21
- return createJestPreset(true, true)
33
+ return createJsWithTsLegacyPreset()
22
34
  },
23
35
  get jsWithTsESM() {
24
- return createJestPreset(false, true, {
25
- extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
26
- })
36
+ return createJsWithTsEsmPreset()
27
37
  },
28
38
  get jsWithTsESMLegacy() {
29
- return createJestPreset(true, true, {
30
- extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
31
- })
39
+ return createJsWithTsEsmLegacyPreset()
32
40
  },
33
41
  get jsWithBabel() {
34
- return createJestPreset(false, false, {
35
- transform: {
36
- '^.+\\.jsx?$': 'babel-jest',
37
- },
38
- })
42
+ return createJsWithBabelPreset()
39
43
  },
40
44
  get jsWithBabelLegacy() {
41
- return createJestPreset(true, false, {
42
- transform: {
43
- '^.+\\.jsx?$': 'babel-jest',
44
- },
45
- })
45
+ return createJsWithBabelLegacyPreset()
46
46
  },
47
47
  get jsWithBabelESM() {
48
- return createJestPreset(false, false, {
49
- extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
50
- transform: {
51
- '^.+\\.m?[j]sx?$': 'babel-jest',
52
- },
53
- })
48
+ return createJsWithBabelEsmPreset()
54
49
  },
55
50
  get jsWithBabelESMLegacy() {
56
- return createJestPreset(true, false, {
57
- extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
58
- transform: {
59
- '^.+\\.m?[j]sx?$': 'babel-jest',
60
- },
61
- })
51
+ return createJsWithBabelEsmLegacyPreset()
62
52
  },
63
53
  }