@bluelovers/jest-config 1.1.8 → 1.1.10

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,28 +1,10 @@
1
1
  !function(e, t) {
2
- "object" == typeof exports && "undefined" != typeof module ? t(exports, require("@yarn-tool/require-resolve"), require("debug-color2"), require("@yarn-tool/table"), require("util"), require("jest-cache-directory")) : "function" == typeof define && define.amd ? define([ "exports", "@yarn-tool/require-resolve", "debug-color2", "@yarn-tool/table", "util", "jest-cache-directory" ], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).BlueloversJestConfig = {}, e.requireResolve, e.debugColor2, e.table, e.util, e.jestCacheDirectory);
3
- }(this, (function(e, t, s, o, r, n) {
2
+ "object" == typeof exports && "undefined" != typeof module ? t(exports, require("@yarn-tool/require-resolve"), require("debug-color2"), require("array-hyper-unique"), require("@yarn-tool/table"), require("util"), require("jest-cache-directory")) : "function" == typeof define && define.amd ? define([ "exports", "@yarn-tool/require-resolve", "debug-color2", "array-hyper-unique", "@yarn-tool/table", "util", "jest-cache-directory" ], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).BlueloversJestConfig = {}, e.requireResolve, e.debugColor2, e.arrayHyperUnique, e.table, e.util, e.jestCacheDirectory);
3
+ }(this, (function(e, t, s, o, n, r, i) {
4
4
  "use strict";
5
- function _requireResolve(e) {
6
- const o = [ t.requireResolveExtra("@bluelovers/tsdx").result, t.requireResolveExtra("tsdx").result ].filter(Boolean), r = t.requireResolveCore(e, {
7
- includeGlobal: !0,
8
- includeCurrentDirectory: !0,
9
- paths: o
10
- });
11
- return s.console.debug("[require.resolve]", e, "=>", r), r;
12
- }
13
- function makeTestRegexConfig(e) {
14
- return {
15
- testMatch: void 0,
16
- testRegex: [ `\\.(tests?|spec)\\.(${e = [ e ].flat().join("|")})$`, `__tests__/.*\\.(tests?|spec)\\.(${e})$` ]
17
- };
18
- }
19
- function fixJestConfig(e) {
20
- return e.testMatch ? e.testRegex = void 0 : e.testRegex && (e.testMatch = void 0),
21
- e;
22
- }
23
5
  function defaultTsJestTransformerOptions(e) {
24
6
  var t, s;
25
- const o = null !== (t = null === (s = e.jestConfig.globals) || void 0 === s ? void 0 : s["ts-jest"]) && void 0 !== t ? t : {}, r = "object" == typeof o.tsconfig ? o.tsconfig : {};
7
+ const o = null !== (t = null === (s = e.jestConfig.globals) || void 0 === s ? void 0 : s["ts-jest"]) && void 0 !== t ? t : {}, n = "object" == typeof o.tsconfig ? o.tsconfig : {};
26
8
  return {
27
9
  ...o,
28
10
  tsconfig: {
@@ -33,7 +15,7 @@
33
15
  noUnusedLocals: !1,
34
16
  noPropertyAccessFromIndexSignature: !1,
35
17
  noImplicitAny: !1,
36
- ...r
18
+ ...n
37
19
  }
38
20
  };
39
21
  }
@@ -45,20 +27,49 @@
45
27
  };
46
28
  let o = _requireResolve("ts-jest");
47
29
  o = [ o, defaultTsJestTransformerOptions(e) ];
48
- const {result: r} = t.requireResolveExtra("jest-tsd-transform", s);
49
- if (null != r && r.length) {
30
+ const {result: n} = t.requireResolveExtra("jest-tsd-transform", s);
31
+ if (null != n && n.length) {
50
32
  const {result: e} = t.requireResolveExtra("jest-chain-transform", s);
51
33
  null != e && e.length && (o = [ e, {
52
- transformers: [ r, o ]
34
+ transformers: [ n, o ]
53
35
  } ]);
54
36
  }
55
37
  return {
56
- ".(ts|tsx|mts|cts)$": o
38
+ [`.(${_handleFileExtensions([ "ts", "tsx", "mts", "cts" ], "|")})$`]: o
57
39
  };
58
40
  }
59
- var i = "@bluelovers/jest-config", l = "1.1.8";
41
+ function _requireResolve(e) {
42
+ const o = [ t.requireResolveExtra("@bluelovers/tsdx").result, t.requireResolveExtra("tsdx").result ].filter(Boolean), n = t.requireResolveCore(e, {
43
+ includeGlobal: !0,
44
+ includeCurrentDirectory: !0,
45
+ paths: o
46
+ });
47
+ return s.console.debug("[require.resolve]", e, "=>", n), n;
48
+ }
49
+ function makeTestRegexConfig(e) {
50
+ var t;
51
+ null !== (t = e) && void 0 !== t || (e = [ "ts", "tsx", "mts", "cts" ]);
52
+ const s = _handleFileExtensions(e, "|");
53
+ return {
54
+ testMatch: null,
55
+ testRegex: [ `\\.(tests?|spec)\\.(${s})$`, `__tests__/.*\\.(tests?|spec)\\.(${s})$` ]
56
+ };
57
+ }
58
+ function _handleFileExtensionsCore(e) {
59
+ return o.array_unique([ e ].flat());
60
+ }
61
+ function _handleFileExtensions(e, t) {
62
+ return _handleFileExtensionsCore(e).join(t);
63
+ }
64
+ function fixJestConfig(e) {
65
+ var t, s, o;
66
+ return e.testMatch ? e.testRegex = null : e.testRegex && (e.testMatch = null), e.testURL && (null !== (t = e.testEnvironmentOptions) && void 0 !== t || (e.testEnvironmentOptions = {}),
67
+ e.testURL = null !== (o = (s = e.testEnvironmentOptions).url) && void 0 !== o ? o : s.url = e.testURL),
68
+ e;
69
+ }
70
+ var l = "@bluelovers/jest-config", u = "1.1.10";
60
71
  function _newTableBorderless(e) {
61
- let t = new o.Table({
72
+ let t = new n.Table({
62
73
  colAligns: [ "right", "left" ],
63
74
  chars: {
64
75
  top: "",
@@ -79,14 +90,14 @@
79
90
  },
80
91
  ...e
81
92
  });
82
- return t = o.applyStyleBorderless(t), t;
93
+ return t = n.applyStyleBorderless(t), t;
83
94
  }
84
95
  function printJestConfigInfo(e, t) {
85
- var o, n, u, a, f, c, d, _;
96
+ var o, n, i, a, f, c, d, _;
86
97
  const g = _newTableBorderless();
87
98
  null !== (o = t) && void 0 !== o || (t = {}), null !== (n = e) && void 0 !== n || (e = {}),
88
- g.push([ `${i}:`, l ]), g.push([ "process.versions.node:", process.versions.node ]),
89
- g.push([ "cwd:", null !== (u = t.cwd) && void 0 !== u ? u : process.cwd() ]), (null === (a = t.file) || void 0 === a ? void 0 : a.length) && g.push([ "file:", t.file ]),
99
+ g.push([ `${l}:`, u ]), g.push([ "process.versions.node:", process.versions.node ]),
100
+ g.push([ "cwd:", null !== (i = t.cwd) && void 0 !== i ? i : process.cwd() ]), (null === (a = t.file) || void 0 === a ? void 0 : a.length) && g.push([ "file:", t.file ]),
90
101
  (null === (f = e.cacheDirectory) || void 0 === f ? void 0 : f.length) && g.push([ "cacheDirectory:", e.cacheDirectory ]),
91
102
  (null === (c = e.rootDir) || void 0 === c ? void 0 : c.length) && g.push([ "rootDir:", e.rootDir ]),
92
103
  (null === (d = e.roots) || void 0 === d ? void 0 : d.length) && g.push([ "roots:", r.inspect(e.roots) ]),
@@ -96,13 +107,13 @@
96
107
  }) ]), s.console.gray.log("─".repeat(20)), s.console.log("jest.config"), s.console.log(g.toString()),
97
108
  s.console.gray.log("─".repeat(20));
98
109
  }
99
- const u = n.getJestCacheDirectory();
110
+ const a = i.getJestCacheDirectory();
100
111
  function mixinJestConfig(e, t, s) {
101
- var o, r;
112
+ var o, n;
102
113
  null !== (o = e) && void 0 !== o || (e = {});
103
- const n = fixJestConfig({
114
+ const r = fixJestConfig({
104
115
  globals: {},
105
- cacheDirectory: u,
116
+ cacheDirectory: a,
106
117
  maxWorkers: 1,
107
118
  clearMocks: !0,
108
119
  passWithNoTests: !0,
@@ -116,15 +127,18 @@
116
127
  coveragePathIgnorePatterns: [ "/node_modules/", "/__snapshots__/", "/__tests__/", "/__test__/", "/dist/", "/test/", "/fixture/", "/__file_snapshots__/", "/__fixtures__/" ],
117
128
  ...e
118
129
  });
119
- return null !== (r = n.transform) && void 0 !== r || (n.transform = defaultTransform({
130
+ return null !== (n = r.transform) && void 0 !== n || (r.transform = defaultTransform({
120
131
  jestConfig: e,
121
132
  autoPrint: t,
122
133
  options: s,
123
- newJestConfig: n
124
- })), t && printJestConfigInfo(n, s), n;
134
+ newJestConfig: r
135
+ })), t && printJestConfigInfo(r, s), r;
125
136
  }
137
+ e._handleFileExtensions = _handleFileExtensions, e._handleFileExtensionsCore = _handleFileExtensionsCore,
126
138
  e._newTableBorderless = _newTableBorderless, e._requireResolve = _requireResolve,
127
- e.cacheDirectory = u, e.default = mixinJestConfig, e.defaultCoveragePathIgnorePatterns = function defaultCoveragePathIgnorePatterns() {
139
+ e.cacheDirectory = a, e.default = mixinJestConfig, e.defaultCoverageFileExtensions = function defaultCoverageFileExtensions() {
140
+ return [ "js", "mjs", "cjs", "jsx", "ts", "mts", "cts", "tsx" ];
141
+ }, e.defaultCoveragePathIgnorePatterns = function defaultCoveragePathIgnorePatterns() {
128
142
  return [ "/node_modules/", "/__snapshots__/", "/__tests__/", "/__test__/", "/dist/", "/test/", "/fixture/", "/__file_snapshots__/", "/__fixtures__/" ];
129
143
  }, e.defaultModuleFileExtensions = function defaultModuleFileExtensions() {
130
144
  return [ "js", "mjs", "cjs", "jsx", "ts", "mts", "cts", "tsx", "json", "node" ];
@@ -132,7 +146,9 @@
132
146
  return [ "ts", "tsx", "mts", "cts" ];
133
147
  }, e.defaultTestPathIgnorePatterns = function defaultTestPathIgnorePatterns() {
134
148
  return [ "/node_modules/", "/__fixtures__/", "/__file_snapshots__/", "/fixtures/", "/__tests__/helpers/", "/__tests__/utils/", "__mocks__", "/dist/" ];
135
- }, e.defaultTransform = defaultTransform, e.fixJestConfig = fixJestConfig, e.makeTestRegexConfig = makeTestRegexConfig,
149
+ }, e.defaultTransform = defaultTransform, e.defaultTransformFileExtensions = function defaultTransformFileExtensions() {
150
+ return [ "ts", "tsx", "mts", "cts" ];
151
+ }, e.fixJestConfig = fixJestConfig, e.makeTestRegexConfig = makeTestRegexConfig,
136
152
  e.mixinJestConfig = mixinJestConfig, e.printJestConfigInfo = printJestConfigInfo,
137
153
  Object.defineProperty(e, "__esModule", {
138
154
  value: !0
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.production.min.cjs","sources":["../src/helper.ts","../src/plugin/ts-jest.ts","../src/defaults.ts","../src/print.ts","../src/index.ts"],"sourcesContent":["import { requireResolveCore, requireResolveExtra } from '@yarn-tool/require-resolve';\nimport { InitialOptionsTsJest } from 'ts-jest';\nimport { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';\nimport { console } from 'debug-color2';\nimport { IJestConfig } from './types';\n\nexport function _requireResolve(name: string)\n{\n\tconst paths = [\n\t\trequireResolveExtra('@bluelovers/tsdx').result,\n\t\trequireResolveExtra('tsdx').result,\n\t].filter(Boolean);\n\n\tconst result = requireResolveCore(name, {\n\t\tincludeGlobal: true,\n\t\tincludeCurrentDirectory: true,\n\t\tpaths,\n\t});\n\n\tconsole.debug('[require.resolve]', name, '=>', result)\n\n\treturn result\n}\n\nexport function makeTestRegexConfig(testExt: string | ITSArrayListMaybeReadonly<string>): Pick<InitialOptionsTsJest, 'testMatch' | 'testRegex'>\n{\n\ttestExt = [testExt].flat().join('|');\n\n\treturn {\n\t\ttestMatch: void 0 as undefined,\n\t\ttestRegex: [\n\t\t\t`\\\\.(tests?|spec)\\\\.(${testExt})$`,\n\t\t\t`__tests__\\/\\.*\\\\.(tests?|spec)\\\\.(${testExt})$`,\n\t\t],\n\t}\n}\n\nexport function fixJestConfig<T extends IJestConfig>(jestConfig: T): T\n{\n\tif (jestConfig.testMatch)\n\t{\n\t\tjestConfig.testRegex = void 0;\n\t}\n\telse if (jestConfig.testRegex)\n\t{\n\t\tjestConfig.testMatch = void 0;\n\t}\n\n\treturn jestConfig\n}\n","import { TsJestTransformerOptions } from 'ts-jest';\nimport { IRuntime } from '../types';\n\nexport function defaultTsJestTransformerOptions(runtime: IRuntime)\n{\n\tconst old: TsJestTransformerOptions = runtime.jestConfig.globals?.['ts-jest'] ?? {};\n\n\tconst tsconfig = typeof old.tsconfig === 'object' ? old.tsconfig : {};\n\n\treturn {\n\t\t...old,\n\t\ttsconfig: {\n\t\t\tnoEmit: true,\n\t\t\temitDeclarationOnly: false,\n\t\t\tnoUnusedParameters: false,\n\t\t\tallowUnusedLabels: true,\n\t\t\tnoUnusedLocals: false,\n\t\t\tnoPropertyAccessFromIndexSignature: false,\n\t\t\tnoImplicitAny: false,\n\t\t\t...tsconfig,\n\t\t},\n\t} satisfies TsJestTransformerOptions\n}\n","import { IOptions, requireResolveExtra } from '@yarn-tool/require-resolve';\nimport { ITSToWriteableArray } from 'ts-type/lib/helper/array/readonly';\nimport { ITSWriteable } from 'ts-type/lib/helper/readonly';\nimport { _requireResolve } from './helper';\nimport { InitialOptionsTsJest } from 'ts-jest';\nimport { defaultTsJestTransformerOptions } from './plugin/ts-jest';\nimport { IRuntime } from './types';\n\nexport function defaultTestFileExtensions()\n{\n\tconst value = [\n\t\t'ts',\n\t\t'tsx',\n\t\t'mts',\n\t\t'cts',\n//\t'js',\n//\t'jsx',\n//\t'mjs',\n//\t'cjs',\n\t] as const;\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\n/**\n * @see https://jestjs.io/docs/configuration#options\n */\nexport function defaultModuleFileExtensions()\n{\n\tconst value = [\n\t\t'js',\n\t\t'mjs',\n\t\t'cjs',\n\t\t'jsx',\n\t\t'ts',\n\t\t'mts',\n\t\t'cts',\n\t\t'tsx',\n\t\t'json',\n\t\t'node',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultCoveragePathIgnorePatterns()\n{\n\tconst value = [\n\t\t'/node_modules/',\n\t\t'/__snapshots__/',\n\t\t'/__tests__/',\n\t\t'/__test__/',\n\t\t//'**/node_modules/',\n\t\t//'**/__snapshots__/',\n\t\t//'**/__tests__/',\n\t\t'/dist/',\n\t\t'/test/',\n\t\t'/fixture/',\n\t\t'/__file_snapshots__/',\n\t\t'/__fixtures__/',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultTestPathIgnorePatterns()\n{\n\tconst value = [\n\t\t'/node_modules/',\n\t\t'/__fixtures__/',\n\t\t'/__file_snapshots__/',\n\t\t'/fixtures/',\n\t\t'/__tests__/helpers/',\n\t\t'/__tests__/utils/',\n\t\t'__mocks__',\n\t\t'/dist/',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultTransform(runtime: IRuntime)\n{\n\tconst paths: string[] = [\n\t\trequireResolveExtra('@bluelovers/jest-config').result,\n\t].filter(Boolean);\n\n\tconst opts: IOptions = {\n\t\tincludeGlobal: true,\n\t\tincludeCurrentDirectory: true,\n\t\tpaths,\n\t};\n\n\tlet ts_transform: InitialOptionsTsJest[\"transform\"][string] = _requireResolve('ts-jest') as 'ts-jest';\n\n\tts_transform = [ts_transform, defaultTsJestTransformerOptions(runtime)];\n\n\tconst { result: tsd } = requireResolveExtra('jest-tsd-transform', opts);\n\n\tif (tsd?.length)\n\t{\n\t\tconst { result: chain } = requireResolveExtra('jest-chain-transform', opts);\n\n\t\tif (chain?.length)\n\t\t{\n\t\t\tts_transform = [\n\t\t\t\tchain as 'jest-chain-transform', {\n\t\t\t\t\ttransformers: [\n\t\t\t\t\t\ttsd as 'jest-tsd-transform',\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tts_transform as 'ts-jest',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t] satisfies [\n\t\t\t\tstring,\n\t\t\t\tRecord<string, unknown>\n\t\t\t]\n\t\t}\n\t}\n\n\tconst value = {\n\t\t'.(ts|tsx|mts|cts)$': ts_transform,\n\t} as const\n\treturn value as ITSWriteable<typeof value>;\n}\n","import { applyStyleBorderless, Table } from '@yarn-tool/table';\nimport { TableConstructorOptions } from 'cli-table3';\nimport { console } from 'debug-color2';\nimport { inspect } from 'util';\nimport { name as jName, version as jVersion } from '../package.json';\nimport { IJestConfig } from './types';\n\nexport function _newTableBorderless(options?: TableConstructorOptions)\n{\n\tlet table = new Table({\n\t\tcolAligns: ['right', 'left'],\n\t\t//colAligns: ['left', 'center', 'center', 'center'],\n\t\tchars: {\n\t\t\ttop: '',\n\t\t\t'top-mid': '',\n\t\t\t'top-left': '',\n\t\t\t'top-right': '',\n\t\t\tbottom: '',\n\t\t\t'bottom-mid': '',\n\t\t\t'bottom-left': '',\n\t\t\t'bottom-right': '',\n\t\t\tleft: '',\n\t\t\t'left-mid': '',\n\t\t\tmid: '',\n\t\t\t'mid-mid': '',\n\t\t\tright: '',\n\t\t\t'right-mid': '',\n\t\t\tmiddle: '',\n\t\t},\n\t\t...options,\n\t});\n\n\ttable = applyStyleBorderless(table);\n\n\treturn table;\n}\n\nexport interface IOptionsPrintJestConfigInfo\n{\n\tcwd?: string;\n\tfile?: string;\n}\n\nexport function printJestConfigInfo(jestConfig: IJestConfig, options?: IOptionsPrintJestConfigInfo)\n{\n\tconst table = _newTableBorderless();\n\n\toptions ??= {};\n\t// @ts-ignore\n\tjestConfig ??= {};\n\n\ttable.push([`${jName}:`, jVersion]);\n\ttable.push([`process.versions.node:`, process.versions.node]);\n\ttable.push(['cwd:', options.cwd ?? process.cwd()]);\n\n\toptions.file?.length && table.push(['file:', options.file]);\n\n\tjestConfig.cacheDirectory?.length && table.push(['cacheDirectory:', jestConfig.cacheDirectory]);\n\n\tjestConfig.rootDir?.length && table.push(['rootDir:', jestConfig.rootDir]);\n\tjestConfig.roots?.length && table.push(['roots:', inspect(jestConfig.roots)]);\n\n\tjestConfig.preset?.length && table.push(['preset:', jestConfig.preset]);\n\n\tjestConfig.transform && table.push(['transform:', inspect(jestConfig.transform, {\n\t\tdepth: 3\n\t})]);\n\n\tconsole.gray.log('─'.repeat(20));\n\tconsole.log(`jest.config`);\n\tconsole.log(table.toString());\n\tconsole.gray.log('─'.repeat(20));\n}\n","import { _requireResolve, fixJestConfig, makeTestRegexConfig } from './helper';\nimport {\n\tdefaultCoveragePathIgnorePatterns,\n\tdefaultModuleFileExtensions,\n\tdefaultTestFileExtensions,\n\tdefaultTestPathIgnorePatterns, defaultTransform,\n} from './defaults';\nimport { IOptionsPrintJestConfigInfo, printJestConfigInfo } from './print';\nimport { IJestConfig } from './types';\nimport { getJestCacheDirectory } from 'jest-cache-directory';\n\nexport * from './helper';\nexport * from './defaults';\nexport * from './print';\n\nconst cacheDirectory = getJestCacheDirectory();\n\nexport { cacheDirectory }\n\nexport function mixinJestConfig<T extends IJestConfig>(jestConfig?: T, autoPrint?: boolean,\n\toptions?: IOptionsPrintJestConfigInfo): T\n{\n\t// @ts-ignore\n\tjestConfig ??= {};\n\tconst newJestConfig = fixJestConfig<T>({\n\t\tglobals: {\n//\t\t\t'ts-jest': {\n//\t\t\t\t//tsconfig: 'tsconfig.spec.json',\n//\t\t\t},\n\t\t},\n\t\tcacheDirectory,\n\t\tmaxWorkers: 1,\n\t\tclearMocks: true,\n\t\tpassWithNoTests: true,\n\t\tmoduleFileExtensions: defaultModuleFileExtensions(),\n\t\t//testEnvironment: 'node',\n\t\t//testMatch: ['**/*.test.ts', '**/*.spec.ts'],\n\t\t...makeTestRegexConfig(defaultTestFileExtensions()),\n\t\ttestPathIgnorePatterns: defaultTestPathIgnorePatterns(),\n\t\t//testRunner: 'jest-circus/runner',\n\t\tsetupFilesAfterEnv: [\n\t\t\t//\"jest-chain\",\n\t\t\t//\"jest-extended/all\",\n\t\t\t//\"jest-extended-extra\",\n\t\t\t//\"jest-num-close-with\",\n\t\t\t/**\n\t\t\t * https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b\n\t\t\t * https://github.com/doctolib/jest-os-detection\n\t\t\t */\n\t\t\t//'jest-os-detection',\n\t\t],\n\t\t//transform: defaultTransform(),\n\t\tverbose: true,\n\t\t/**\n\t\t * if didn't set `coverageProvider` to `v8`\n\t\t * with `collectCoverage` `true`, nodejs debug point maybe will fail\n\t\t */\n\t\tcoverageProvider: 'v8',\n\t\tcollectCoverage: false,\n\t\tcoveragePathIgnorePatterns: defaultCoveragePathIgnorePatterns(),\n\t\t/**\n\t\t * https://github.com/facebook/jest/issues/9771#issuecomment-872764344\n\t\t */\n\t\t//resolver: 'jest-node-exports-resolver',\n\t\t...jestConfig,\n\t});\n\n\tnewJestConfig.transform ??= defaultTransform({\n\t\tjestConfig,\n\t\tautoPrint,\n\t\toptions,\n\t\tnewJestConfig,\n\t});\n\n\tautoPrint && printJestConfigInfo(newJestConfig, options);\n\n\treturn newJestConfig\n}\n\nexport default mixinJestConfig\n"],"names":["_requireResolve","name","paths","requireResolveExtra","result","filter","Boolean","requireResolveCore","includeGlobal","includeCurrentDirectory","console","debug","makeTestRegexConfig","testExt","testMatch","testRegex","flat","join","fixJestConfig","jestConfig","defaultTsJestTransformerOptions","runtime","_runtime$jestConfig$g","_runtime$jestConfig$g2","old","globals","tsconfig","noEmit","emitDeclarationOnly","noUnusedParameters","allowUnusedLabels","noUnusedLocals","noPropertyAccessFromIndexSignature","noImplicitAny","defaultTransform","opts","ts_transform","tsd","length","chain","transformers","_newTableBorderless","options","table","Table","colAligns","chars","top","bottom","left","mid","right","middle","applyStyleBorderless","printJestConfigInfo","_options","_jestConfig","_options$cwd","_options$file","_jestConfig$cacheDire","_jestConfig$rootDir","_jestConfig$roots","_jestConfig$preset","push","jName","jVersion","process","versions","node","cwd","file","cacheDirectory","rootDir","roots","inspect","preset","transform","depth","gray","log","repeat","toString","getJestCacheDirectory","mixinJestConfig","autoPrint","_newJestConfig$transf","newJestConfig","maxWorkers","clearMocks","passWithNoTests","moduleFileExtensions","testPathIgnorePatterns","setupFilesAfterEnv","verbose","coverageProvider","collectCoverage","coveragePathIgnorePatterns","defaultCoveragePathIgnorePatterns","defaultModuleFileExtensions","defaultTestFileExtensions","defaultTestPathIgnorePatterns"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.production.min.cjs","sources":["../src/plugin/ts-jest.ts","../src/defaults.ts","../src/helper.ts","../src/print.ts","../src/index.ts"],"sourcesContent":["import { TsJestTransformerOptions } from 'ts-jest';\nimport { IRuntime } from '../types';\n\nexport function defaultTsJestTransformerOptions(runtime: IRuntime)\n{\n\tconst old: TsJestTransformerOptions = runtime.jestConfig.globals?.['ts-jest'] ?? {};\n\n\tconst tsconfig = typeof old.tsconfig === 'object' ? old.tsconfig : {};\n\n\treturn {\n\t\t...old,\n\t\ttsconfig: {\n\t\t\tnoEmit: true,\n\t\t\temitDeclarationOnly: false,\n\t\t\tnoUnusedParameters: false,\n\t\t\tallowUnusedLabels: true,\n\t\t\tnoUnusedLocals: false,\n\t\t\tnoPropertyAccessFromIndexSignature: false,\n\t\t\tnoImplicitAny: false,\n\t\t\t...tsconfig,\n\t\t},\n\t} satisfies TsJestTransformerOptions\n}\n","import { IOptions, requireResolveExtra } from '@yarn-tool/require-resolve';\nimport { ITSToWriteableArray } from 'ts-type/lib/helper/array/readonly';\nimport { ITSWriteable } from 'ts-type/lib/helper/readonly';\nimport { _handleFileExtensions, _requireResolve } from './helper';\nimport { InitialOptionsTsJest } from 'ts-jest';\nimport { defaultTsJestTransformerOptions } from './plugin/ts-jest';\nimport { IRuntime } from './types';\n\nexport function defaultTestFileExtensions()\n{\n\tconst value = [\n\t\t'ts',\n\t\t'tsx',\n\t\t'mts',\n\t\t'cts',\n//\t'js',\n//\t'jsx',\n//\t'mjs',\n//\t'cjs',\n\t] as const;\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\n/**\n * @see https://jestjs.io/docs/configuration#options\n */\nexport function defaultModuleFileExtensions()\n{\n\tconst value = [\n\t\t'js',\n\t\t'mjs',\n\t\t'cjs',\n\t\t'jsx',\n\t\t'ts',\n\t\t'mts',\n\t\t'cts',\n\t\t'tsx',\n\t\t'json',\n\t\t'node',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultCoverageFileExtensions()\n{\n\tconst value = [\n\t\t'js',\n\t\t'mjs',\n\t\t'cjs',\n\t\t'jsx',\n\t\t'ts',\n\t\t'mts',\n\t\t'cts',\n\t\t'tsx',\n\t\t//'json',\n\t\t//'node',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultTransformFileExtensions()\n{\n\tconst value = [\n\t\t'ts',\n\t\t'tsx',\n\t\t'mts',\n\t\t'cts',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultCoveragePathIgnorePatterns()\n{\n\tconst value = [\n\t\t'/node_modules/',\n\t\t'/__snapshots__/',\n\t\t'/__tests__/',\n\t\t'/__test__/',\n\t\t//'**/node_modules/',\n\t\t//'**/__snapshots__/',\n\t\t//'**/__tests__/',\n\t\t'/dist/',\n\t\t'/test/',\n\t\t'/fixture/',\n\t\t'/__file_snapshots__/',\n\t\t'/__fixtures__/',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultTestPathIgnorePatterns()\n{\n\tconst value = [\n\t\t'/node_modules/',\n\t\t'/__fixtures__/',\n\t\t'/__file_snapshots__/',\n\t\t'/fixtures/',\n\t\t'/__tests__/helpers/',\n\t\t'/__tests__/utils/',\n\t\t'__mocks__',\n\t\t'/dist/',\n\t] as const\n\treturn value as ITSToWriteableArray<typeof value>;\n}\n\nexport function defaultTransform(runtime: IRuntime)\n{\n\tconst paths: string[] = [\n\t\trequireResolveExtra('@bluelovers/jest-config').result,\n\t].filter(Boolean);\n\n\tconst opts: IOptions = {\n\t\tincludeGlobal: true,\n\t\tincludeCurrentDirectory: true,\n\t\tpaths,\n\t};\n\n\tlet ts_transform: InitialOptionsTsJest[\"transform\"][string] = _requireResolve('ts-jest') as 'ts-jest';\n\n\tts_transform = [ts_transform, defaultTsJestTransformerOptions(runtime)];\n\n\tconst { result: tsd } = requireResolveExtra('jest-tsd-transform', opts);\n\n\tif (tsd?.length)\n\t{\n\t\tconst { result: chain } = requireResolveExtra('jest-chain-transform', opts);\n\n\t\tif (chain?.length)\n\t\t{\n\t\t\tts_transform = [\n\t\t\t\tchain as 'jest-chain-transform', {\n\t\t\t\t\ttransformers: [\n\t\t\t\t\t\ttsd as 'jest-tsd-transform',\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tts_transform as 'ts-jest',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t] satisfies [\n\t\t\t\tstring,\n\t\t\t\tRecord<string, unknown>\n\t\t\t]\n\t\t}\n\t}\n\n\tconst value = {\n\t\t[`.(${_handleFileExtensions(defaultTransformFileExtensions(), '|')})$`]: ts_transform,\n\t} as const\n\treturn value as ITSWriteable<typeof value>;\n}\n","import { requireResolveCore, requireResolveExtra } from '@yarn-tool/require-resolve';\nimport { InitialOptionsTsJest } from 'ts-jest';\nimport { ITSValueOrArrayMaybeReadonly } from 'ts-type/lib/type/base';\nimport { console } from 'debug-color2';\nimport { IJestConfig } from './types';\nimport { defaultTestFileExtensions } from './defaults';\nimport { array_unique } from 'array-hyper-unique';\n\nexport function _requireResolve(name: string)\n{\n\tconst paths = [\n\t\trequireResolveExtra('@bluelovers/tsdx').result,\n\t\trequireResolveExtra('tsdx').result,\n\t].filter(Boolean);\n\n\tconst result = requireResolveCore(name, {\n\t\tincludeGlobal: true,\n\t\tincludeCurrentDirectory: true,\n\t\tpaths,\n\t});\n\n\tconsole.debug('[require.resolve]', name, '=>', result)\n\n\treturn result\n}\n\nexport function makeTestRegexConfig<T extends string>(testExt: ITSValueOrArrayMaybeReadonly<T>): Pick<InitialOptionsTsJest, 'testMatch' | 'testRegex'>\n{\n\ttestExt ??= defaultTestFileExtensions() as any as T[];\n\tconst _testExt = _handleFileExtensions(testExt, '|')\n\n\treturn {\n\t\ttestMatch: null as undefined,\n\t\ttestRegex: [\n\t\t\t`\\\\.(tests?|spec)\\\\.(${_testExt})$`,\n\t\t\t`__tests__\\/\\.*\\\\.(tests?|spec)\\\\.(${_testExt})$`,\n\t\t],\n\t}\n}\n\nexport function _handleFileExtensionsCore<T extends string>(testExt: ITSValueOrArrayMaybeReadonly<T>)\n{\n\treturn array_unique([testExt].flat()) as T[]\n}\n\nexport function _handleFileExtensions<T extends string>(testExt: ITSValueOrArrayMaybeReadonly<T>, sep: string)\n{\n\treturn _handleFileExtensionsCore(testExt).join(sep)\n}\n\nexport function fixJestConfig<T extends IJestConfig>(jestConfig: T): T\n{\n\tif (jestConfig.testMatch)\n\t{\n\t\tjestConfig.testRegex = null;\n\t}\n\telse if (jestConfig.testRegex)\n\t{\n\t\tjestConfig.testMatch = null;\n\t}\n\n\t/**\n\t * Option \"testURL\" was replaced by passing the URL via \"testEnvironmentOptions.url\".\n\t */\n\tif (jestConfig.testURL)\n\t{\n\t\tjestConfig.testEnvironmentOptions ??= {};\n\n\t\tjestConfig.testURL = (jestConfig.testEnvironmentOptions['url'] ??= jestConfig.testURL) as string\n\t}\n\n\treturn jestConfig\n}\n","import { applyStyleBorderless, Table } from '@yarn-tool/table';\nimport { TableConstructorOptions } from 'cli-table3';\nimport { console } from 'debug-color2';\nimport { inspect } from 'util';\nimport { name as jName, version as jVersion } from '../package.json';\nimport { IJestConfig } from './types';\n\nexport function _newTableBorderless(options?: TableConstructorOptions)\n{\n\tlet table = new Table({\n\t\tcolAligns: ['right', 'left'],\n\t\t//colAligns: ['left', 'center', 'center', 'center'],\n\t\tchars: {\n\t\t\ttop: '',\n\t\t\t'top-mid': '',\n\t\t\t'top-left': '',\n\t\t\t'top-right': '',\n\t\t\tbottom: '',\n\t\t\t'bottom-mid': '',\n\t\t\t'bottom-left': '',\n\t\t\t'bottom-right': '',\n\t\t\tleft: '',\n\t\t\t'left-mid': '',\n\t\t\tmid: '',\n\t\t\t'mid-mid': '',\n\t\t\tright: '',\n\t\t\t'right-mid': '',\n\t\t\tmiddle: '',\n\t\t},\n\t\t...options,\n\t});\n\n\ttable = applyStyleBorderless(table);\n\n\treturn table;\n}\n\nexport interface IOptionsPrintJestConfigInfo\n{\n\tcwd?: string;\n\tfile?: string;\n}\n\nexport function printJestConfigInfo(jestConfig: IJestConfig, options?: IOptionsPrintJestConfigInfo)\n{\n\tconst table = _newTableBorderless();\n\n\toptions ??= {};\n\t// @ts-ignore\n\tjestConfig ??= {};\n\n\ttable.push([`${jName}:`, jVersion]);\n\ttable.push([`process.versions.node:`, process.versions.node]);\n\ttable.push(['cwd:', options.cwd ?? process.cwd()]);\n\n\toptions.file?.length && table.push(['file:', options.file]);\n\n\tjestConfig.cacheDirectory?.length && table.push(['cacheDirectory:', jestConfig.cacheDirectory]);\n\n\tjestConfig.rootDir?.length && table.push(['rootDir:', jestConfig.rootDir]);\n\tjestConfig.roots?.length && table.push(['roots:', inspect(jestConfig.roots)]);\n\n\tjestConfig.preset?.length && table.push(['preset:', jestConfig.preset]);\n\n\tjestConfig.transform && table.push(['transform:', inspect(jestConfig.transform, {\n\t\tdepth: 3\n\t})]);\n\n\tconsole.gray.log('─'.repeat(20));\n\tconsole.log(`jest.config`);\n\tconsole.log(table.toString());\n\tconsole.gray.log('─'.repeat(20));\n}\n","import { _requireResolve, fixJestConfig, makeTestRegexConfig } from './helper';\nimport {\n\tdefaultCoveragePathIgnorePatterns,\n\tdefaultModuleFileExtensions,\n\tdefaultTestFileExtensions,\n\tdefaultTestPathIgnorePatterns, defaultTransform,\n} from './defaults';\nimport { IOptionsPrintJestConfigInfo, printJestConfigInfo } from './print';\nimport { IJestConfig } from './types';\nimport { getJestCacheDirectory } from 'jest-cache-directory';\n\nexport * from './helper';\nexport * from './defaults';\nexport * from './print';\n\nconst cacheDirectory = getJestCacheDirectory();\n\nexport { cacheDirectory }\n\nexport function mixinJestConfig<T extends IJestConfig>(jestConfig?: T, autoPrint?: boolean,\n\toptions?: IOptionsPrintJestConfigInfo)\n{\n\t// @ts-ignore\n\tjestConfig ??= {};\n\tconst newJestConfig = fixJestConfig({\n\t\tglobals: {\n//\t\t\t'ts-jest': {\n//\t\t\t\t//tsconfig: 'tsconfig.spec.json',\n//\t\t\t},\n\t\t},\n\t\tcacheDirectory,\n\t\tmaxWorkers: 1,\n\t\tclearMocks: true,\n\t\tpassWithNoTests: true,\n\t\tmoduleFileExtensions: defaultModuleFileExtensions(),\n\t\t//testEnvironment: 'node',\n\t\t//testMatch: ['**/*.test.ts', '**/*.spec.ts'],\n\t\t...makeTestRegexConfig(defaultTestFileExtensions()),\n\t\ttestPathIgnorePatterns: defaultTestPathIgnorePatterns(),\n\t\t//testRunner: 'jest-circus/runner',\n\t\tsetupFilesAfterEnv: [\n\t\t\t//\"jest-chain\",\n\t\t\t//\"jest-extended/all\",\n\t\t\t//\"jest-extended-extra\",\n\t\t\t//\"jest-num-close-with\",\n\t\t\t/**\n\t\t\t * https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b\n\t\t\t * https://github.com/doctolib/jest-os-detection\n\t\t\t */\n\t\t\t//'jest-os-detection',\n\t\t],\n\t\t//transform: defaultTransform(),\n\t\tverbose: true,\n\t\t/**\n\t\t * if didn't set `coverageProvider` to `v8`\n\t\t * with `collectCoverage` `true`, nodejs debug point maybe will fail\n\t\t */\n\t\tcoverageProvider: 'v8',\n\t\tcollectCoverage: false,\n\t\tcoveragePathIgnorePatterns: defaultCoveragePathIgnorePatterns(),\n\t\t/**\n\t\t * https://github.com/facebook/jest/issues/9771#issuecomment-872764344\n\t\t */\n\t\t//resolver: 'jest-node-exports-resolver',\n\t\t...jestConfig,\n\t});\n\n\tnewJestConfig.transform ??= defaultTransform({\n\t\tjestConfig,\n\t\tautoPrint,\n\t\toptions,\n\t\tnewJestConfig,\n\t});\n\n\tautoPrint && printJestConfigInfo(newJestConfig, options);\n\n\treturn newJestConfig\n}\n\nexport default mixinJestConfig\n"],"names":["defaultTsJestTransformerOptions","runtime","_runtime$jestConfig$g","_runtime$jestConfig$g2","old","jestConfig","globals","tsconfig","noEmit","emitDeclarationOnly","noUnusedParameters","allowUnusedLabels","noUnusedLocals","noPropertyAccessFromIndexSignature","noImplicitAny","defaultTransform","opts","includeGlobal","includeCurrentDirectory","paths","requireResolveExtra","result","filter","Boolean","ts_transform","_requireResolve","tsd","length","chain","transformers","_handleFileExtensions","name","requireResolveCore","console","debug","makeTestRegexConfig","testExt","_testExt2","_testExt","testMatch","testRegex","_handleFileExtensionsCore","array_unique","flat","sep","join","fixJestConfig","_jestConfig$testEnvir","_jestConfig$testEnvir2","_jestConfig$testEnvir3","testURL","testEnvironmentOptions","_newTableBorderless","options","table","Table","colAligns","chars","top","bottom","left","mid","right","middle","applyStyleBorderless","printJestConfigInfo","_options","_jestConfig","_options$cwd","_options$file","_jestConfig$cacheDire","_jestConfig$rootDir","_jestConfig$roots","_jestConfig$preset","push","jName","jVersion","process","versions","node","cwd","file","cacheDirectory","rootDir","roots","inspect","preset","transform","depth","gray","log","repeat","toString","getJestCacheDirectory","mixinJestConfig","autoPrint","_newJestConfig$transf","newJestConfig","maxWorkers","clearMocks","passWithNoTests","moduleFileExtensions","testPathIgnorePatterns","setupFilesAfterEnv","verbose","coverageProvider","collectCoverage","coveragePathIgnorePatterns","defaultCoverageFileExtensions","defaultCoveragePathIgnorePatterns","defaultModuleFileExtensions","defaultTestFileExtensions","defaultTestPathIgnorePatterns","defaultTransformFileExtensions"],"mappings":";;;;EAGM,SAAUA,gCAAgCC;IAAiB,IAAAC,GAAAC;IAEhE,MAAMC,IAAuE,UAApEF,IAAuD,UAAvDC,IAA6BF,EAAQI,WAAWC,iBAAnBH,MAA0BA,SAA1BA,IAAAA,EAA6B,oBAAUD,MAAAA,IAAAA,IAAI,IAE3EK,IAAmC,mBAAjBH,EAAIG,WAAwBH,EAAIG,WAAW;IAEnE,OAAO;SACHH;MACHG,UAAU;QACTC,SAAQ;QACRC,sBAAqB;QACrBC,qBAAoB;QACpBC,oBAAmB;QACnBC,iBAAgB;QAChBC,qCAAoC;QACpCC,gBAAe;WACZP;;;AAGN;ECmFM,SAAUQ,iBAAiBd;IAEhC,MAIMe,IAAiB;MACtBC,gBAAe;MACfC,0BAAyB;MACzBC,OAPuB,EACvBC,EAAAA,oBAAoB,2BAA2BC,SAC9CC,OAAOC;;IAQT,IAAIC,IAA0DC,gBAAgB;IAE9ED,IAAe,EAACA,GAAcxB,gCAAgCC;IAE9D,OAAQoB,QAAQK,KAAQN,EAAmBA,oBAAC,sBAAsBJ;IAElE,IAAIU,aAAAA,EAAKC,QACT;MACC,OAAQN,QAAQO,KAAUR,EAAmBA,oBAAC,wBAAwBJ;MAElEY,aAAAA,EAAOD,WAEVH,IAAe,EACdI,GAAiC;QAChCC,cAAc,EACbH,GAEAF;;AAQL;IAKA,OAHc;MACb,CAAC,KAAKM,sBAnFO,EACb,MACA,OACA,OACA,SA+E8D,WAAWN;;AAG3E;EC5IM,SAAUC,gBAAgBM;IAE/B,MAAMZ,IAAQ,EACbC,sBAAoB,oBAAoBC,QACxCD,sBAAoB,QAAQC,SAC3BC,OAAOC,UAEHF,IAASW,EAAkBA,mBAACD,GAAM;MACvCd,gBAAe;MACfC,0BAAyB;MACzBC;;IAKD,OAFAc,EAAOA,QAACC,MAAM,qBAAqBH,GAAM,MAAMV,IAExCA;AACR;EAEM,SAAUc,oBAAsCC;IAAwC,IAAAC;IAEtF,UAAPA,IAAAD,WAAO,MAAAC,MAAPD,IDlBc,EACb,MACA,OACA,OACA;ICeD,MAAME,IAAWR,sBAAsBM,GAAS;IAEhD,OAAO;MACNG,WAAW;MACXC,WAAW,EACV,uBAAuBF,OACvB,mCAAqCA;;AAGxC;EAEM,SAAUG,0BAA4CL;IAE3D,OAAOM,EAAYA,aAAC,EAACN,IAASO;AAC/B;EAEgB,SAAAb,sBAAwCM,GAA0CQ;IAEjG,OAAOH,0BAA0BL,GAASS,KAAKD;AAChD;EAEM,SAAUE,cAAqCzC;IAepD,IAAA0C,GAAAC,GAAAC;IAMA,OAnBI5C,EAAWkC,YAEdlC,EAAWmC,YAAY,OAEfnC,EAAWmC,cAEnBnC,EAAWkC,YAAY,OAMpBlC,EAAW6C,YAEmBH,UAAjCA,IAAA1C,EAAW8C,gCAAsBJ,MAAAA,MAAjC1C,EAAW8C,yBAA2B,CAAA;IAEtC9C,EAAW6C,UAAmDD,UAA5CA,KAAID,IAAA3C,EAAW8C,wBAA4B,aAACF,MAAAA,IAAAA,IAAxCD,EAAA,MAA6C3C,EAAW6C;IAGxE7C;AACR;;ECjEM,SAAU+C,oBAAoBC;IAEnC,IAAIC,IAAQ,IAAIC,QAAM;MACrBC,WAAW,EAAC,SAAS;MAErBC,OAAO;QACNC,KAAK;QACL,WAAW;QACX,YAAY;QACZ,aAAa;QACbC,QAAQ;QACR,cAAc;QACd,eAAe;QACf,gBAAgB;QAChBC,MAAM;QACN,YAAY;QACZC,KAAK;QACL,WAAW;QACXC,OAAO;QACP,aAAa;QACbC,QAAQ;;SAENV;;IAKJ,OAFAC,IAAQU,EAAAA,qBAAqBV,IAEtBA;AACR;EAQgB,SAAAW,oBAAoB5D,GAAyBgD;IAAqC,IAAAa,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;IAEjG,MAAMnB,IAAQF;IAEPc,UAAPA,IAAAb,WAAOa,MAAAA,MAAPb,IAAY,KAEFc,UAAVA,IAAA9D,WAAU8D,MAAAA,MAAV9D,IAAe;IAEfiD,EAAMoB,KAAK,EAAC,GAAGC,MAAUC,MACzBtB,EAAMoB,KAAK,EAAyB,0BAAEG,QAAQC,SAASC;IACvDzB,EAAMoB,KAAK,EAAC,kBAAMN,IAAEf,EAAQ2B,aAAG,MAAAZ,IAAAA,IAAIS,QAAQG,WAE/BX,UAAZA,IAAAhB,EAAQ4B,cAARZ,MAAYA,SAAZA,IAAAA,EAAc1C,WAAU2B,EAAMoB,KAAK,EAAC,SAASrB,EAAQ4B;KAE5BX,UAAzBA,IAAAjE,EAAW6E,wBAAXZ,MAAyBA,SAAzBA,IAAAA,EAA2B3C,WAAU2B,EAAMoB,KAAK,EAAC,mBAAmBrE,EAAW6E;KAE7DX,UAAlBA,IAAAlE,EAAW8E,iBAAXZ,MAAkBA,SAAlBA,IAAAA,EAAoB5C,WAAU2B,EAAMoB,KAAK,EAAC,YAAYrE,EAAW8E;KACjDX,UAAhBA,IAAAnE,EAAW+E,eAAXZ,MAAgBA,SAAhBA,IAAAA,EAAkB7C,WAAU2B,EAAMoB,KAAK,EAAC,UAAUW,EAAAA,QAAQhF,EAAW+E;KAEpDX,UAAjBA,IAAApE,EAAWiF,gBAAXb,MAAiBA,SAAjBA,IAAAA,EAAmB9C,WAAU2B,EAAMoB,KAAK,EAAC,WAAWrE,EAAWiF;IAE/DjF,EAAWkF,aAAajC,EAAMoB,KAAK,EAAC,cAAcW,EAAOA,QAAChF,EAAWkF,WAAW;MAC/EC,OAAO;WAGRvD,EAAOA,QAACwD,KAAKC,IAAI,IAAIC,OAAO,MAC5B1D,EAAAA,QAAQyD,IAAI,gBACZzD,EAAAA,QAAQyD,IAAIpC,EAAMsC;IAClB3D,EAAOA,QAACwD,KAAKC,IAAI,IAAIC,OAAO;AAC7B;ECzDMT,MAAAA,IAAiBW,EAAAA;WAIPC,gBAAuCzF,GAAgB0F,GACtE1C;IAAqC,IAAAc,GAAA6B;IAG3B7B,UAAVA,IAAA9D,WAAU8D,MAAAA,MAAV9D,IAAe;IACf,MAAM4F,IAAgBnD,cAAc;MACnCxC,SAAS,CAIR;MACD4E;MACAgB,YAAY;MACZC,aAAY;MACZC,kBAAiB;MACjBC,sBHNa,EACb,MACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,QACA;SGDGlE,oBH3BU,EACb,MACA,OACA,OACA;MGwBAmE,wBHsDa,EACb,kBACA,kBACA,wBACA,cACA,uBACA,qBACA,aACA;MG5DAC,oBAAoB;MAYpBC,UAAS;MAKTC,kBAAkB;MAClBC,kBAAiB;MACjBC,4BHca,EACb,kBACA,mBACA,eACA,cAIA,UACA,UACA,aACA,wBACA;SGrBGtG;;IAYJ,OATuB2F,UAAvBA,IAAAC,EAAcV,mBAASS,MAAAA,MAAvBC,EAAcV,YAAcxE,iBAAiB;MAC5CV;MACA0F;MACA1C;MACA4C;SAGDF,KAAa9B,oBAAoBgC,GAAe5C,IAEzC4C;AACR;;;gGHlCgBW;IAcf,OAZc,EACb,MACA,OACA,OACA,OACA,MACA,OACA,OACA;AAKF,oDAagBC;IAgBf,OAdc,EACb,kBACA,mBACA,eACA,cAIA,UACA,UACA,aACA,wBACA;AAGF,8CA9DgBC;IAcf,OAZc,EACb,MACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,QACA;AAGF,4CAjCgBC;IAYf,OAVc,EACb,MACA,OACA,OACA;AAOF,gDAqEgBC;IAYf,OAVc,EACb,kBACA,kBACA,wBACA,cACA,uBACA,qBACA,aACA;AAGF,wFA3CgBC;IAQf,OANc,EACb,MACA,OACA,OACA;AAGF;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluelovers/jest-config",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "description": "Jest preset configuration with ts-jest typescript",
5
5
  "keywords": [
6
6
  "jest-preset",
@@ -106,7 +106,7 @@
106
106
  "@yarn-tool/require-resolve": "^3.0.0",
107
107
  "@yarn-tool/table": "^2.0.13",
108
108
  "debug-color2": "^1.3.2",
109
- "jest-cache-directory": "^1.0.5",
109
+ "jest-cache-directory": "^1.0.6",
110
110
  "jest-chain-transform": "^0.0.5",
111
111
  "ts-type": ">=2"
112
112
  },
@@ -114,5 +114,5 @@
114
114
  "publishConfig": {
115
115
  "access": "public"
116
116
  },
117
- "gitHead": "9c26c30c8413bb1be49bee2907c47cb5cacfa0a7"
117
+ "gitHead": "3cc032f37b13377df4dc81311b167431ba7f6ffd"
118
118
  }
package/src/defaults.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { IOptions, requireResolveExtra } from '@yarn-tool/require-resolve';
2
2
  import { ITSToWriteableArray } from 'ts-type/lib/helper/array/readonly';
3
3
  import { ITSWriteable } from 'ts-type/lib/helper/readonly';
4
- import { _requireResolve } from './helper';
4
+ import { _handleFileExtensions, _requireResolve } from './helper';
5
5
  import { InitialOptionsTsJest } from 'ts-jest';
6
6
  import { defaultTsJestTransformerOptions } from './plugin/ts-jest';
7
7
  import { IRuntime } from './types';
@@ -41,6 +41,34 @@ export function defaultModuleFileExtensions()
41
41
  return value as ITSToWriteableArray<typeof value>;
42
42
  }
43
43
 
44
+ export function defaultCoverageFileExtensions()
45
+ {
46
+ const value = [
47
+ 'js',
48
+ 'mjs',
49
+ 'cjs',
50
+ 'jsx',
51
+ 'ts',
52
+ 'mts',
53
+ 'cts',
54
+ 'tsx',
55
+ //'json',
56
+ //'node',
57
+ ] as const
58
+ return value as ITSToWriteableArray<typeof value>;
59
+ }
60
+
61
+ export function defaultTransformFileExtensions()
62
+ {
63
+ const value = [
64
+ 'ts',
65
+ 'tsx',
66
+ 'mts',
67
+ 'cts',
68
+ ] as const
69
+ return value as ITSToWriteableArray<typeof value>;
70
+ }
71
+
44
72
  export function defaultCoveragePathIgnorePatterns()
45
73
  {
46
74
  const value = [
@@ -115,7 +143,7 @@ export function defaultTransform(runtime: IRuntime)
115
143
  }
116
144
 
117
145
  const value = {
118
- '.(ts|tsx|mts|cts)$': ts_transform,
146
+ [`.(${_handleFileExtensions(defaultTransformFileExtensions(), '|')})$`]: ts_transform,
119
147
  } as const
120
148
  return value as ITSWriteable<typeof value>;
121
149
  }
package/src/helper.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import { requireResolveCore, requireResolveExtra } from '@yarn-tool/require-resolve';
2
2
  import { InitialOptionsTsJest } from 'ts-jest';
3
- import { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';
3
+ import { ITSValueOrArrayMaybeReadonly } from 'ts-type/lib/type/base';
4
4
  import { console } from 'debug-color2';
5
5
  import { IJestConfig } from './types';
6
+ import { defaultTestFileExtensions } from './defaults';
7
+ import { array_unique } from 'array-hyper-unique';
6
8
 
7
9
  export function _requireResolve(name: string)
8
10
  {
@@ -22,28 +24,49 @@ export function _requireResolve(name: string)
22
24
  return result
23
25
  }
24
26
 
25
- export function makeTestRegexConfig(testExt: string | ITSArrayListMaybeReadonly<string>): Pick<InitialOptionsTsJest, 'testMatch' | 'testRegex'>
27
+ export function makeTestRegexConfig<T extends string>(testExt: ITSValueOrArrayMaybeReadonly<T>): Pick<InitialOptionsTsJest, 'testMatch' | 'testRegex'>
26
28
  {
27
- testExt = [testExt].flat().join('|');
29
+ testExt ??= defaultTestFileExtensions() as any as T[];
30
+ const _testExt = _handleFileExtensions(testExt, '|')
28
31
 
29
32
  return {
30
- testMatch: void 0 as undefined,
33
+ testMatch: null as undefined,
31
34
  testRegex: [
32
- `\\.(tests?|spec)\\.(${testExt})$`,
33
- `__tests__\/\.*\\.(tests?|spec)\\.(${testExt})$`,
35
+ `\\.(tests?|spec)\\.(${_testExt})$`,
36
+ `__tests__\/\.*\\.(tests?|spec)\\.(${_testExt})$`,
34
37
  ],
35
38
  }
36
39
  }
37
40
 
41
+ export function _handleFileExtensionsCore<T extends string>(testExt: ITSValueOrArrayMaybeReadonly<T>)
42
+ {
43
+ return array_unique([testExt].flat()) as T[]
44
+ }
45
+
46
+ export function _handleFileExtensions<T extends string>(testExt: ITSValueOrArrayMaybeReadonly<T>, sep: string)
47
+ {
48
+ return _handleFileExtensionsCore(testExt).join(sep)
49
+ }
50
+
38
51
  export function fixJestConfig<T extends IJestConfig>(jestConfig: T): T
39
52
  {
40
53
  if (jestConfig.testMatch)
41
54
  {
42
- jestConfig.testRegex = void 0;
55
+ jestConfig.testRegex = null;
43
56
  }
44
57
  else if (jestConfig.testRegex)
45
58
  {
46
- jestConfig.testMatch = void 0;
59
+ jestConfig.testMatch = null;
60
+ }
61
+
62
+ /**
63
+ * Option "testURL" was replaced by passing the URL via "testEnvironmentOptions.url".
64
+ */
65
+ if (jestConfig.testURL)
66
+ {
67
+ jestConfig.testEnvironmentOptions ??= {};
68
+
69
+ jestConfig.testURL = (jestConfig.testEnvironmentOptions['url'] ??= jestConfig.testURL) as string
47
70
  }
48
71
 
49
72
  return jestConfig
package/src/index.ts CHANGED
@@ -18,11 +18,11 @@ const cacheDirectory = getJestCacheDirectory();
18
18
  export { cacheDirectory }
19
19
 
20
20
  export function mixinJestConfig<T extends IJestConfig>(jestConfig?: T, autoPrint?: boolean,
21
- options?: IOptionsPrintJestConfigInfo): T
21
+ options?: IOptionsPrintJestConfigInfo)
22
22
  {
23
23
  // @ts-ignore
24
24
  jestConfig ??= {};
25
- const newJestConfig = fixJestConfig<T>({
25
+ const newJestConfig = fixJestConfig({
26
26
  globals: {
27
27
  // 'ts-jest': {
28
28
  // //tsconfig: 'tsconfig.spec.json',