@bluelovers/jest-config 1.1.1 → 1.1.3

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,25 +1,14 @@
1
1
  !function(e, t) {
2
- "object" == typeof exports && "undefined" != typeof module ? t(exports, require("@yarn-tool/require-resolve"), require("path"), require("os"), require("debug-color2"), require("graceful-fs"), require("@yarn-tool/table"), require("util")) : "function" == typeof define && define.amd ? define([ "exports", "@yarn-tool/require-resolve", "path", "os", "debug-color2", "graceful-fs", "@yarn-tool/table", "util" ], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).BlueloversJestConfig = {}, e.requireResolve, e.path, e.os, e.debugColor2, e.gracefulFs, e.table, e.util);
3
- }(this, (function(e, t, s, o, r, n, i, l) {
2
+ "object" == typeof exports && "undefined" != typeof module ? t(exports, require("@yarn-tool/require-resolve"), require("debug-color2"), require("jest-config"), require("@yarn-tool/table"), require("util"), require("jest-cache-directory")) : "function" == typeof define && define.amd ? define([ "exports", "@yarn-tool/require-resolve", "debug-color2", "jest-config", "@yarn-tool/table", "util", "jest-cache-directory" ], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).BlueloversJestConfig = {}, e.requireResolve, e.debugColor2, e.jestConfig, e.table, e.util, e.jestCacheDirectory);
3
+ }(this, (function(e, t, s, o, r, n, i) {
4
4
  "use strict";
5
5
  function _requireResolve(e) {
6
- const s = [ t.requireResolveExtra("@bluelovers/tsdx").result, t.requireResolveExtra("tsdx").result ].filter(Boolean), o = t.requireResolveCore(e, {
6
+ const o = [ t.requireResolveExtra("@bluelovers/tsdx").result, t.requireResolveExtra("tsdx").result ].filter(Boolean), r = t.requireResolveCore(e, {
7
7
  includeGlobal: !0,
8
8
  includeCurrentDirectory: !0,
9
- paths: s
9
+ paths: o
10
10
  });
11
- return r.console.debug("[require.resolve]", e, "=>", o), o;
12
- }
13
- function getCacheDirectory() {
14
- const {getuid: e} = process, t = process.env.JEST_CACHE_DIRECTORY || s.join(function tryRealpath(e) {
15
- try {
16
- e = n.realpathSync.native(e);
17
- } catch (e) {
18
- if ("ENOENT" !== e.code) throw e;
19
- }
20
- return e;
21
- }(o.tmpdir()), "jest");
22
- return null == e ? t : `${t}_${e.call(process).toString(36)}`;
11
+ return s.console.debug("[require.resolve]", e, "=>", r), r;
23
12
  }
24
13
  function makeTestRegexConfig(e) {
25
14
  return {
@@ -31,14 +20,11 @@
31
20
  return e.testMatch ? e.testRegex = void 0 : e.testRegex && (e.testMatch = void 0),
32
21
  e;
33
22
  }
34
- function defaultTransform() {
35
- const e = {
36
- includeGlobal: !0,
37
- includeCurrentDirectory: !0,
38
- paths: [ t.requireResolveExtra("@bluelovers/jest-config").result ].filter(Boolean)
39
- };
40
- let s = _requireResolve("ts-jest");
41
- s = [ s, {
23
+ function defaultTsJestTransformerOptions(e) {
24
+ 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 : {};
26
+ return {
27
+ ...o,
42
28
  tsconfig: {
43
29
  noEmit: !0,
44
30
  emitDeclarationOnly: !1,
@@ -46,22 +32,35 @@
46
32
  allowUnusedLabels: !0,
47
33
  noUnusedLocals: !1,
48
34
  noPropertyAccessFromIndexSignature: !1,
49
- noImplicitAny: !1
35
+ noImplicitAny: !1,
36
+ ...r
50
37
  }
51
- } ];
52
- const {result: o} = t.requireResolveExtra("jest-tsd-transform", e);
53
- if (null != o && o.length) {
54
- const {result: r} = t.requireResolveExtra("jest-chain-transform", e);
55
- null != r && r.length && (s = [ r, {
56
- transformers: [ o, s ]
38
+ };
39
+ }
40
+ function defaultModuleFileExtensions() {
41
+ return [ ...o.defaults.moduleFileExtensions, "mts", "cts" ];
42
+ }
43
+ function defaultTransform(e) {
44
+ const s = {
45
+ includeGlobal: !0,
46
+ includeCurrentDirectory: !0,
47
+ paths: [ t.requireResolveExtra("@bluelovers/jest-config").result ].filter(Boolean)
48
+ };
49
+ let o = _requireResolve("ts-jest");
50
+ o = [ o, defaultTsJestTransformerOptions(e) ];
51
+ const {result: r} = t.requireResolveExtra("jest-tsd-transform", s);
52
+ if (null != r && r.length) {
53
+ const {result: e} = t.requireResolveExtra("jest-chain-transform", s);
54
+ null != e && e.length && (o = [ e, {
55
+ transformers: [ r, o ]
57
56
  } ]);
58
57
  }
59
58
  return {
60
- ".(ts|tsx|mts|cts)$": s
59
+ ".(ts|tsx|mts|cts)$": o
61
60
  };
62
61
  }
63
62
  function _newTableBorderless(e) {
64
- let t = new i.Table({
63
+ let t = new r.Table({
65
64
  colAligns: [ "right", "left" ],
66
65
  chars: {
67
66
  top: "",
@@ -82,59 +81,60 @@
82
81
  },
83
82
  ...e
84
83
  });
85
- return t = i.applyStyleBorderless(t), t;
84
+ return t = r.applyStyleBorderless(t), t;
86
85
  }
87
86
  function printJestConfigInfo(e, t) {
88
- var s, o, n, i, u, a, c, f;
89
- const _ = _newTableBorderless();
90
- null !== (s = t) && void 0 !== s || (t = {}), null !== (o = e) && void 0 !== o || (e = {}),
91
- _.push([ "@bluelovers/jest-config:", "1.1.1" ]), _.push([ "process.versions.node:", process.versions.node ]),
92
- _.push([ "cwd:", null !== (n = t.cwd) && void 0 !== n ? n : process.cwd() ]), (null === (i = t.file) || void 0 === i ? void 0 : i.length) && _.push([ "file:", t.file ]),
93
- (null === (u = e.cacheDirectory) || void 0 === u ? void 0 : u.length) && _.push([ "cacheDirectory:", e.cacheDirectory ]),
94
- (null === (a = e.rootDir) || void 0 === a ? void 0 : a.length) && _.push([ "rootDir:", e.rootDir ]),
95
- (null === (c = e.roots) || void 0 === c ? void 0 : c.length) && _.push([ "roots:", l.inspect(e.roots) ]),
96
- (null === (f = e.preset) || void 0 === f ? void 0 : f.length) && _.push([ "preset:", e.preset ]),
97
- e.transform && _.push([ "transform:", l.inspect(e.transform, {
87
+ var o, r, i, l, u, a, f, c;
88
+ const d = _newTableBorderless();
89
+ null !== (o = t) && void 0 !== o || (t = {}), null !== (r = e) && void 0 !== r || (e = {}),
90
+ d.push([ "@bluelovers/jest-config:", "1.1.3" ]), d.push([ "process.versions.node:", process.versions.node ]),
91
+ d.push([ "cwd:", null !== (i = t.cwd) && void 0 !== i ? i : process.cwd() ]), (null === (l = t.file) || void 0 === l ? void 0 : l.length) && d.push([ "file:", t.file ]),
92
+ (null === (u = e.cacheDirectory) || void 0 === u ? void 0 : u.length) && d.push([ "cacheDirectory:", e.cacheDirectory ]),
93
+ (null === (a = e.rootDir) || void 0 === a ? void 0 : a.length) && d.push([ "rootDir:", e.rootDir ]),
94
+ (null === (f = e.roots) || void 0 === f ? void 0 : f.length) && d.push([ "roots:", n.inspect(e.roots) ]),
95
+ (null === (c = e.preset) || void 0 === c ? void 0 : c.length) && d.push([ "preset:", e.preset ]),
96
+ e.transform && d.push([ "transform:", n.inspect(e.transform, {
98
97
  depth: 3
99
- }) ]), r.console.gray.log("─".repeat(20)), r.console.log("jest.config"), r.console.log(_.toString()),
100
- r.console.gray.log("─".repeat(20));
98
+ }) ]), s.console.gray.log("─".repeat(20)), s.console.log("jest.config"), s.console.log(d.toString()),
99
+ s.console.gray.log("─".repeat(20));
101
100
  }
102
- const u = getCacheDirectory();
101
+ const l = i.getJestCacheDirectory();
103
102
  function mixinJestConfig(e, t, s) {
104
- var o;
103
+ var o, r;
105
104
  null !== (o = e) && void 0 !== o || (e = {});
106
- const r = fixJestConfig({
105
+ const n = fixJestConfig({
107
106
  globals: {},
108
- cacheDirectory: u,
107
+ cacheDirectory: l,
109
108
  maxWorkers: 1,
110
109
  clearMocks: !0,
111
110
  passWithNoTests: !0,
112
- moduleFileExtensions: [ "ts", "tsx", "mts", "cts", "js", "jsx", "mjs", "cjs", "json", "node" ],
113
- testEnvironment: "node",
111
+ moduleFileExtensions: defaultModuleFileExtensions(),
114
112
  ...makeTestRegexConfig([ "ts", "tsx", "mts", "cts" ]),
115
113
  testPathIgnorePatterns: [ "/node_modules/", "/__fixtures__/", "/__file_snapshots__/", "/fixtures/", "/__tests__/helpers/", "/__tests__/utils/", "__mocks__", "/dist/" ],
116
114
  setupFilesAfterEnv: [],
117
- transform: defaultTransform(),
118
115
  verbose: !0,
119
116
  coverageProvider: "v8",
120
117
  collectCoverage: !1,
121
118
  coveragePathIgnorePatterns: [ "/node_modules/", "/__snapshots__/", "/__tests__/", "/__test__/", "/dist/", "/test/", "/fixture/", "/__file_snapshots__/", "/__fixtures__/" ],
122
119
  ...e
123
120
  });
124
- return t && printJestConfigInfo(r, s), r;
121
+ return null !== (r = n.transform) && void 0 !== r || (n.transform = defaultTransform({
122
+ jestConfig: e,
123
+ autoPrint: t,
124
+ options: s,
125
+ newJestConfig: n
126
+ })), t && printJestConfigInfo(n, s), n;
125
127
  }
126
128
  e._newTableBorderless = _newTableBorderless, e._requireResolve = _requireResolve,
127
- e.cacheDirectory = u, e.default = mixinJestConfig, e.defaultCoveragePathIgnorePatterns = function defaultCoveragePathIgnorePatterns() {
129
+ e.cacheDirectory = l, e.default = mixinJestConfig, e.defaultCoveragePathIgnorePatterns = function defaultCoveragePathIgnorePatterns() {
128
130
  return [ "/node_modules/", "/__snapshots__/", "/__tests__/", "/__test__/", "/dist/", "/test/", "/fixture/", "/__file_snapshots__/", "/__fixtures__/" ];
129
- }, e.defaultModuleFileExtensions = function defaultModuleFileExtensions() {
130
- return [ "ts", "tsx", "mts", "cts", "js", "jsx", "mjs", "cjs", "json", "node" ];
131
- }, e.defaultTestFileExtensions = function defaultTestFileExtensions() {
131
+ }, e.defaultModuleFileExtensions = defaultModuleFileExtensions, e.defaultTestFileExtensions = function defaultTestFileExtensions() {
132
132
  return [ "ts", "tsx", "mts", "cts" ];
133
133
  }, e.defaultTestPathIgnorePatterns = function defaultTestPathIgnorePatterns() {
134
134
  return [ "/node_modules/", "/__fixtures__/", "/__file_snapshots__/", "/fixtures/", "/__tests__/helpers/", "/__tests__/utils/", "__mocks__", "/dist/" ];
135
- }, e.defaultTransform = defaultTransform, e.fixJestConfig = fixJestConfig, e.getCacheDirectory = getCacheDirectory,
136
- e.makeTestRegexConfig = makeTestRegexConfig, e.mixinJestConfig = mixinJestConfig,
137
- e.printJestConfigInfo = printJestConfigInfo, Object.defineProperty(e, "__esModule", {
135
+ }, e.defaultTransform = defaultTransform, e.fixJestConfig = fixJestConfig, e.makeTestRegexConfig = makeTestRegexConfig,
136
+ e.mixinJestConfig = mixinJestConfig, e.printJestConfigInfo = printJestConfigInfo,
137
+ Object.defineProperty(e, "__esModule", {
138
138
  value: !0
139
139
  });
140
140
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.production.min.cjs","sources":["../src/helper.ts","../src/defaults.ts","../src/plugin/ts-jest.ts","../src/print.ts","../src/index.ts"],"sourcesContent":["import { requireResolveCore, requireResolveExtra } from '@yarn-tool/require-resolve';\nimport { join } from 'path';\nimport { tmpdir } from 'os';\nimport { InitialOptionsTsJest } from 'ts-jest';\nimport { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';\nimport { console } from 'debug-color2';\nimport { realpathSync } from 'graceful-fs';\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\n/**\n * @see https://github.com/facebook/jest/blob/main/packages/jest-config/src/getCacheDirectory.ts\n */\nexport function getCacheDirectory()\n{\n\tconst { getuid } = process;\n\tconst tmpdirPath = process.env['JEST_CACHE_DIRECTORY'] || join(tryRealpath(tmpdir()), 'jest');\n\tif (getuid == null)\n\t{\n\t\treturn tmpdirPath;\n\t}\n\telse\n\t{\n\t\t// On some platforms tmpdir() is `/tmp`, causing conflicts between different\n\t\t// users and permission issues. Adding an additional subdivision by UID can\n\t\t// help.\n\t\treturn `${tmpdirPath}_${getuid.call(process).toString(36)}`;\n\t}\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\n/**\n * @see https://github.com/facebook/jest/blob/main/packages/jest-util/src/tryRealpath.ts\n */\nexport default function tryRealpath(path: string): string\n{\n\ttry\n\t{\n\t\tpath = realpathSync.native(path);\n\t}\n\tcatch (error: any)\n\t{\n\t\tif (error.code !== 'ENOENT')\n\t\t{\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn path;\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';\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\nexport function defaultModuleFileExtensions()\n{\n\tconst value = [\n\t\t'ts',\n\t\t'tsx',\n\t\t'mts',\n\t\t'cts',\n\t\t'js',\n\t\t'jsx',\n\t\t'mjs',\n\t\t'cjs',\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()\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()];\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 { TsJestTransformerOptions } from 'ts-jest/dist/types';\n\nexport function defaultTsJestTransformerOptions()\n{\n\treturn {\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},\n\t} satisfies TsJestTransformerOptions\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, getCacheDirectory, 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';\n\nexport * from './helper';\nexport * from './defaults';\nexport * from './print';\n\nconst cacheDirectory = getCacheDirectory();\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\ttestEnvironment: '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\ttransform: 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\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","getCacheDirectory","getuid","process","tmpdirPath","env","join","tryRealpath","path","realpathSync","native","error","code","tmpdir","call","toString","makeTestRegexConfig","testExt","testMatch","testRegex","flat","fixJestConfig","jestConfig","defaultTransform","opts","ts_transform","tsconfig","noEmit","emitDeclarationOnly","noUnusedParameters","allowUnusedLabels","noUnusedLocals","noPropertyAccessFromIndexSignature","noImplicitAny","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","versions","node","cwd","file","cacheDirectory","rootDir","roots","inspect","preset","transform","depth","gray","log","repeat","mixinJestConfig","autoPrint","newJestConfig","globals","maxWorkers","clearMocks","passWithNoTests","moduleFileExtensions","testEnvironment","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/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/dist/types';\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\nimport { defaults } from 'jest-config';\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...defaults.moduleFileExtensions as [\"js\", \"mjs\", \"cjs\", \"jsx\", \"ts\", \"tsx\", \"json\", \"node\"],\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'.(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","defaultModuleFileExtensions","defaults","moduleFileExtensions","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","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","testPathIgnorePatterns","setupFilesAfterEnv","verbose","coverageProvider","collectCoverage","coveragePathIgnorePatterns","defaultCoveragePathIgnorePatterns","defaultTestFileExtensions","defaultTestPathIgnorePatterns"],"mappings":";;;;EAMM,SAAUA,gBAAgBC;IAE/B,MAAMC,IAAQ,EACbC,sBAAoB,oBAAoBC,QACxCD,sBAAoB,QAAQC,SAC3BC,OAAOC,UAEHF,IAASG,EAAkBA,mBAACN,GAAM;MACvCO,gBAAe;MACfC,0BAAyB;MACzBP;;IAKD,OAFAQ,EAAOA,QAACC,MAAM,qBAAqBV,GAAM,MAAMG,IAExCA;AACR;EAEM,SAAUQ,oBAAoBC;IAInC,OAAO;MACNC,gBAAW;MACXC,WAAW,EACV,uBALFF,IAAU,EAACA,IAASG,OAAOC,KAAK,UAM9B,mCAAqCJ;;AAGxC;EAEM,SAAUK,cAAqCC;IAWpD,OATIA,EAAWL,YAEdK,EAAWJ,iBAAY,IAEfI,EAAWJ,cAEnBI,EAAWL,iBAAY;IAGjBK;AACR;EC9CM,SAAUC,gCAAgCC;IAAiB,IAAAC,GAAAC;IAEhE,MAAMC,IAAuE,UAApEF,IAAuD,UAAvDC,IAA6BF,EAAQF,WAAWM,iBAAO,MAAAF,SAAA,IAA1BA,EAA6B,oBAAU,MAAAD,IAAAA,IAAI,IAE3EI,IAAmC,mBAAjBF,EAAIE,WAAwBF,EAAIE,WAAW;IAEnE,OAAO;SACHF;MACHE,UAAU;QACTC,SAAQ;QACRC,sBAAqB;QACrBC,qBAAoB;QACpBC,oBAAmB;QACnBC,iBAAgB;QAChBC,qCAAoC;QACpCC,gBAAe;WACZP;;;AAGN;WCMgBQ;IAOf,OALc,KACVC,EAAAA,SAASC,sBACZ,OACA;AAGF;EAoCM,SAAUC,iBAAiBhB;IAEhC,MAIMiB,IAAiB;MACtB9B,gBAAe;MACfC,0BAAyB;MACzBP,OAPuB,EACvBC,EAAAA,oBAAoB,2BAA2BC,SAC9CC,OAAOC;;IAQT,IAAIiC,IAA0DvC,gBAAgB;IAE9EuC,IAAe,EAACA,GAAcnB,gCAAgCC;IAE9D,OAAQjB,QAAQoC,KAAQrC,EAAmBA,oBAAC,sBAAsBmC;IAElE,IAAIE,aAAAA,EAAKC,QACT;MACC,OAAQrC,QAAQsC,KAAUvC,EAAmBA,oBAAC,wBAAwBmC;MAElEI,aAAAA,EAAOD,WAEVF,IAAe,EACdG,GAAiC;QAChCC,cAAc,EACbH,GAEAD;;AAQJ;IAKD,OAHc;MACb,sBAAsBA;;AAGxB;EC5GM,SAAUK,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,oBAAoBtC,GAAyB0B;IAAqC,IAAAa,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;IAEjG,MAAMnB,IAAQF;IAEP,UAAPc,IAAAb,WAAO,MAAAa,MAAPb,IAAY,KAEF,UAAVc,IAAAxC,WAAU,MAAAwC,MAAVxC,IAAe;IAEf2B,EAAMoB,KAAK,EAAC,wCACZpB,EAAMoB,KAAK,EAAyB,0BAAEC,QAAQC,SAASC;IACvDvB,EAAMoB,KAAK,EAAC,kBAAQrB,IAAAA,EAAQyB,2BAAOH,QAAQG,qBAE3CT,IAAAhB,EAAQ0B,iCAARV,EAAcpB,WAAUK,EAAMoB,KAAK,EAAC,SAASrB,EAAQ0B;eAErDT,IAAA3C,EAAWqD,2CAAXV,EAA2BrB,WAAUK,EAAMoB,KAAK,EAAC,mBAAmB/C,EAAWqD;eAE/ET,IAAA5C,EAAWsD,oCAAXV,EAAoBtB,WAAUK,EAAMoB,KAAK,EAAC,YAAY/C,EAAWsD;KACjD,UAAhBtD,IAAAA,EAAWuD,eAAK,MAAAV,SAAA,IAAhBA,EAAkBvB,WAAUK,EAAMoB,KAAK,EAAC,UAAUS,EAAAA,QAAQxD,EAAWuD;eAErET,IAAA9C,EAAWyD,mCAAXX,EAAmBxB,WAAUK,EAAMoB,KAAK,EAAC,WAAW/C,EAAWyD;IAE/DzD,EAAW0D,aAAa/B,EAAMoB,KAAK,EAAC,cAAcS,EAAOA,QAACxD,EAAW0D,WAAW;MAC/EC,OAAO;WAGRpE,EAAOA,QAACqE,KAAKC,IAAI,IAAIC,OAAO,MAC5BvE,EAAAA,QAAQsE,IAAI,gBACZtE,EAAAA,QAAQsE,IAAIlC,EAAMoC;IAClBxE,EAAOA,QAACqE,KAAKC,IAAI,IAAIC,OAAO;AAC7B;ECzDMT,MAAAA,IAAiBW,EAAAA;WAIPC,gBAAuCjE,GAAgBkE,GACtExC;IAAqC,IAAAc,GAAA2B;IAG3B,UAAV3B,IAAAxC,WAAU,MAAAwC,MAAVxC,IAAe;IACf,MAAMoE,IAAgBrE,cAAiB;MACtCO,SAAS,CAIR;MACD+C;MACAgB,YAAY;MACZC,aAAY;MACZC,kBAAiB;MACjBtD,sBAAsBF;SAGnBtB,oBFzBU,EACb,MACA,OACA,OACA;MEsBA+E,wBFqBa,EACb,kBACA,kBACA,wBACA,cACA,uBACA,qBACA,aACA;ME3BAC,oBAAoB;MAYpBC,UAAS;MAKTC,kBAAkB;MAClBC,kBAAiB;MACjBC,4BFnBa,EACb,kBACA,mBACA,eACA,cAIA,UACA,UACA,aACA,wBACA;SEYG7E;;IAYJ,OATuB,UAAvBoE,IAAAA,EAAcV,mBAAS,MAAAS,MAAvBC,EAAcV,YAAcxC,iBAAiB;MAC5ClB;MACAkE;MACAxC;MACA0C;SAGDF,KAAa5B,oBAAoB8B,GAAe1C,IAEzC0C;AACR;;oGFvCgBU;IAgBf,OAdc,EACb,kBACA,mBACA,eACA,cAIA,UACA,UACA,aACA,wBACA;AAGF,yGA7CgBC;IAYf,OAVc,EACb,MACA,OACA,OACA;AAOF,gDAkCgBC;IAYf,OAVc,EACb,kBACA,kBACA,wBACA,cACA,uBACA,qBACA,aACA;AAGF;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluelovers/jest-config",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "Jest preset configuration",
5
5
  "keywords": [
6
6
  "jest-preset",
@@ -101,10 +101,10 @@
101
101
  "tsc:showConfig": "ynpx get-current-tsconfig -p"
102
102
  },
103
103
  "dependencies": {
104
- "@yarn-tool/require-resolve": "^2.0.8",
105
- "@yarn-tool/table": "^2.0.11",
104
+ "@yarn-tool/require-resolve": "^2.0.9",
105
+ "@yarn-tool/table": "^2.0.12",
106
106
  "debug-color2": "^1.3.2",
107
- "graceful-fs": "^4.2.10",
107
+ "jest-cache-directory": "^1.0.2",
108
108
  "jest-chain-transform": "^0.0.4",
109
109
  "ts-type": ">=2"
110
110
  },
@@ -112,5 +112,5 @@
112
112
  "publishConfig": {
113
113
  "access": "public"
114
114
  },
115
- "gitHead": "d7672491422ea0d62bfa480216443475553211ec"
115
+ "gitHead": "cfe306fed943e6130c41737c91fdeff7e89bd4fa"
116
116
  }
package/src/defaults.ts CHANGED
@@ -4,6 +4,9 @@ import { ITSWriteable } from 'ts-type/lib/helper/readonly';
4
4
  import { _requireResolve } from './helper';
5
5
  import { InitialOptionsTsJest } from 'ts-jest';
6
6
  import { defaultTsJestTransformerOptions } from './plugin/ts-jest';
7
+ import { IRuntime } from './types';
8
+
9
+ import { defaults } from 'jest-config';
7
10
 
8
11
  export function defaultTestFileExtensions()
9
12
  {
@@ -20,19 +23,15 @@ export function defaultTestFileExtensions()
20
23
  return value as ITSToWriteableArray<typeof value>;
21
24
  }
22
25
 
26
+ /**
27
+ * @see https://jestjs.io/docs/configuration#options
28
+ */
23
29
  export function defaultModuleFileExtensions()
24
30
  {
25
31
  const value = [
26
- 'ts',
27
- 'tsx',
32
+ ...defaults.moduleFileExtensions as ["js", "mjs", "cjs", "jsx", "ts", "tsx", "json", "node"],
28
33
  'mts',
29
34
  'cts',
30
- 'js',
31
- 'jsx',
32
- 'mjs',
33
- 'cjs',
34
- 'json',
35
- 'node',
36
35
  ] as const
37
36
  return value as ITSToWriteableArray<typeof value>;
38
37
  }
@@ -71,7 +70,7 @@ export function defaultTestPathIgnorePatterns()
71
70
  return value as ITSToWriteableArray<typeof value>;
72
71
  }
73
72
 
74
- export function defaultTransform()
73
+ export function defaultTransform(runtime: IRuntime)
75
74
  {
76
75
  const paths: string[] = [
77
76
  requireResolveExtra('@bluelovers/jest-config').result,
@@ -85,7 +84,7 @@ export function defaultTransform()
85
84
 
86
85
  let ts_transform: InitialOptionsTsJest["transform"][string] = _requireResolve('ts-jest') as 'ts-jest';
87
86
 
88
- ts_transform = [ts_transform, defaultTsJestTransformerOptions()];
87
+ ts_transform = [ts_transform, defaultTsJestTransformerOptions(runtime)];
89
88
 
90
89
  const { result: tsd } = requireResolveExtra('jest-tsd-transform', opts);
91
90
 
package/src/helper.ts CHANGED
@@ -1,10 +1,7 @@
1
1
  import { requireResolveCore, requireResolveExtra } from '@yarn-tool/require-resolve';
2
- import { join } from 'path';
3
- import { tmpdir } from 'os';
4
2
  import { InitialOptionsTsJest } from 'ts-jest';
5
3
  import { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';
6
4
  import { console } from 'debug-color2';
7
- import { realpathSync } from 'graceful-fs';
8
5
  import { IJestConfig } from './types';
9
6
 
10
7
  export function _requireResolve(name: string)
@@ -25,26 +22,6 @@ export function _requireResolve(name: string)
25
22
  return result
26
23
  }
27
24
 
28
- /**
29
- * @see https://github.com/facebook/jest/blob/main/packages/jest-config/src/getCacheDirectory.ts
30
- */
31
- export function getCacheDirectory()
32
- {
33
- const { getuid } = process;
34
- const tmpdirPath = process.env['JEST_CACHE_DIRECTORY'] || join(tryRealpath(tmpdir()), 'jest');
35
- if (getuid == null)
36
- {
37
- return tmpdirPath;
38
- }
39
- else
40
- {
41
- // On some platforms tmpdir() is `/tmp`, causing conflicts between different
42
- // users and permission issues. Adding an additional subdivision by UID can
43
- // help.
44
- return `${tmpdirPath}_${getuid.call(process).toString(36)}`;
45
- }
46
- }
47
-
48
25
  export function makeTestRegexConfig(testExt: string | ITSArrayListMaybeReadonly<string>): Pick<InitialOptionsTsJest, 'testMatch' | 'testRegex'>
49
26
  {
50
27
  testExt = [testExt].flat().join('|');
@@ -71,23 +48,3 @@ export function fixJestConfig<T extends IJestConfig>(jestConfig: T): T
71
48
 
72
49
  return jestConfig
73
50
  }
74
-
75
- /**
76
- * @see https://github.com/facebook/jest/blob/main/packages/jest-util/src/tryRealpath.ts
77
- */
78
- export default function tryRealpath(path: string): string
79
- {
80
- try
81
- {
82
- path = realpathSync.native(path);
83
- }
84
- catch (error: any)
85
- {
86
- if (error.code !== 'ENOENT')
87
- {
88
- throw error;
89
- }
90
- }
91
-
92
- return path;
93
- }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { _requireResolve, fixJestConfig, getCacheDirectory, makeTestRegexConfig } from './helper';
1
+ import { _requireResolve, fixJestConfig, makeTestRegexConfig } from './helper';
2
2
  import {
3
3
  defaultCoveragePathIgnorePatterns,
4
4
  defaultModuleFileExtensions,
@@ -7,12 +7,13 @@ import {
7
7
  } from './defaults';
8
8
  import { IOptionsPrintJestConfigInfo, printJestConfigInfo } from './print';
9
9
  import { IJestConfig } from './types';
10
+ import { getJestCacheDirectory } from 'jest-cache-directory';
10
11
 
11
12
  export * from './helper';
12
13
  export * from './defaults';
13
14
  export * from './print';
14
15
 
15
- const cacheDirectory = getCacheDirectory();
16
+ const cacheDirectory = getJestCacheDirectory();
16
17
 
17
18
  export { cacheDirectory }
18
19
 
@@ -32,7 +33,7 @@ export function mixinJestConfig<T extends IJestConfig>(jestConfig?: T, autoPrint
32
33
  clearMocks: true,
33
34
  passWithNoTests: true,
34
35
  moduleFileExtensions: defaultModuleFileExtensions(),
35
- testEnvironment: 'node',
36
+ //testEnvironment: 'node',
36
37
  //testMatch: ['**/*.test.ts', '**/*.spec.ts'],
37
38
  ...makeTestRegexConfig(defaultTestFileExtensions()),
38
39
  testPathIgnorePatterns: defaultTestPathIgnorePatterns(),
@@ -48,7 +49,7 @@ export function mixinJestConfig<T extends IJestConfig>(jestConfig?: T, autoPrint
48
49
  */
49
50
  //'jest-os-detection',
50
51
  ],
51
- transform: defaultTransform(),
52
+ //transform: defaultTransform(),
52
53
  verbose: true,
53
54
  /**
54
55
  * if didn't set `coverageProvider` to `v8`
@@ -64,6 +65,13 @@ export function mixinJestConfig<T extends IJestConfig>(jestConfig?: T, autoPrint
64
65
  ...jestConfig,
65
66
  });
66
67
 
68
+ newJestConfig.transform ??= defaultTransform({
69
+ jestConfig,
70
+ autoPrint,
71
+ options,
72
+ newJestConfig,
73
+ });
74
+
67
75
  autoPrint && printJestConfigInfo(newJestConfig, options);
68
76
 
69
77
  return newJestConfig
@@ -1,8 +1,14 @@
1
1
  import { TsJestTransformerOptions } from 'ts-jest/dist/types';
2
+ import { IRuntime } from '../types';
2
3
 
3
- export function defaultTsJestTransformerOptions()
4
+ export function defaultTsJestTransformerOptions(runtime: IRuntime)
4
5
  {
6
+ const old: TsJestTransformerOptions = runtime.jestConfig.globals?.['ts-jest'] ?? {};
7
+
8
+ const tsconfig = typeof old.tsconfig === 'object' ? old.tsconfig : {};
9
+
5
10
  return {
11
+ ...old,
6
12
  tsconfig: {
7
13
  noEmit: true,
8
14
  emitDeclarationOnly: false,
@@ -11,6 +17,7 @@ export function defaultTsJestTransformerOptions()
11
17
  noUnusedLocals: false,
12
18
  noPropertyAccessFromIndexSignature: false,
13
19
  noImplicitAny: false,
20
+ ...tsconfig,
14
21
  },
15
22
  } satisfies TsJestTransformerOptions
16
23
  }
package/src/types.ts CHANGED
@@ -1,3 +1,12 @@
1
1
  import { InitialOptionsTsJest, JestConfigWithTsJest } from 'ts-jest';
2
+ import { IOptionsPrintJestConfigInfo } from './print';
2
3
 
3
4
  export type IJestConfig = InitialOptionsTsJest | JestConfigWithTsJest;
5
+
6
+ export interface IRuntime<T extends IJestConfig = IJestConfig>
7
+ {
8
+ jestConfig: T,
9
+ autoPrint: boolean,
10
+ options: IOptionsPrintJestConfigInfo,
11
+ newJestConfig?: T,
12
+ }