@bluelovers/jest-config 1.0.16 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.development.cjs +30 -42
- package/dist/index.cjs.development.cjs.map +1 -1
- package/dist/index.cjs.production.min.cjs +150 -1
- package/dist/index.cjs.production.min.cjs.map +1 -1
- package/dist/index.d.ts +13 -10
- package/dist/index.esm.mjs +60 -55
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.umd.development.cjs +33 -43
- package/dist/index.umd.development.cjs.map +1 -1
- package/dist/index.umd.production.min.cjs +140 -1
- package/dist/index.umd.production.min.cjs.map +1 -1
- package/package.json +3 -3
- package/src/defaults.ts +8 -3
- package/src/helper.ts +2 -44
- package/src/index.ts +16 -8
- package/src/plugin/ts-jest.ts +23 -0
- package/src/print.ts +2 -2
- package/src/types.ts +12 -0
|
@@ -1,2 +1,141 @@
|
|
|
1
|
-
!function(e,
|
|
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) {
|
|
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
|
+
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,
|
|
28
|
+
tsconfig: {
|
|
29
|
+
noEmit: !0,
|
|
30
|
+
emitDeclarationOnly: !1,
|
|
31
|
+
noUnusedParameters: !1,
|
|
32
|
+
allowUnusedLabels: !0,
|
|
33
|
+
noUnusedLocals: !1,
|
|
34
|
+
noPropertyAccessFromIndexSignature: !1,
|
|
35
|
+
noImplicitAny: !1,
|
|
36
|
+
...r
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function defaultTransform(e) {
|
|
41
|
+
const s = {
|
|
42
|
+
includeGlobal: !0,
|
|
43
|
+
includeCurrentDirectory: !0,
|
|
44
|
+
paths: [ t.requireResolveExtra("@bluelovers/jest-config").result ].filter(Boolean)
|
|
45
|
+
};
|
|
46
|
+
let o = _requireResolve("ts-jest");
|
|
47
|
+
o = [ o, defaultTsJestTransformerOptions(e) ];
|
|
48
|
+
const {result: r} = t.requireResolveExtra("jest-tsd-transform", s);
|
|
49
|
+
if (null != r && r.length) {
|
|
50
|
+
const {result: e} = t.requireResolveExtra("jest-chain-transform", s);
|
|
51
|
+
null != e && e.length && (o = [ e, {
|
|
52
|
+
transformers: [ r, o ]
|
|
53
|
+
} ]);
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
".(ts|tsx|mts|cts)$": o
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function _newTableBorderless(e) {
|
|
60
|
+
let t = new o.Table({
|
|
61
|
+
colAligns: [ "right", "left" ],
|
|
62
|
+
chars: {
|
|
63
|
+
top: "",
|
|
64
|
+
"top-mid": "",
|
|
65
|
+
"top-left": "",
|
|
66
|
+
"top-right": "",
|
|
67
|
+
bottom: "",
|
|
68
|
+
"bottom-mid": "",
|
|
69
|
+
"bottom-left": "",
|
|
70
|
+
"bottom-right": "",
|
|
71
|
+
left: "",
|
|
72
|
+
"left-mid": "",
|
|
73
|
+
mid: "",
|
|
74
|
+
"mid-mid": "",
|
|
75
|
+
right: "",
|
|
76
|
+
"right-mid": "",
|
|
77
|
+
middle: ""
|
|
78
|
+
},
|
|
79
|
+
...e
|
|
80
|
+
});
|
|
81
|
+
return t = o.applyStyleBorderless(t), t;
|
|
82
|
+
}
|
|
83
|
+
function printJestConfigInfo(e, t) {
|
|
84
|
+
var o, n, i, l, u, a, f, c;
|
|
85
|
+
const d = _newTableBorderless();
|
|
86
|
+
null !== (o = t) && void 0 !== o || (t = {}), null !== (n = e) && void 0 !== n || (e = {}),
|
|
87
|
+
d.push([ "@bluelovers/jest-config:", "1.1.2" ]), d.push([ "process.versions.node:", process.versions.node ]),
|
|
88
|
+
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 ]),
|
|
89
|
+
(null === (u = e.cacheDirectory) || void 0 === u ? void 0 : u.length) && d.push([ "cacheDirectory:", e.cacheDirectory ]),
|
|
90
|
+
(null === (a = e.rootDir) || void 0 === a ? void 0 : a.length) && d.push([ "rootDir:", e.rootDir ]),
|
|
91
|
+
(null === (f = e.roots) || void 0 === f ? void 0 : f.length) && d.push([ "roots:", r.inspect(e.roots) ]),
|
|
92
|
+
(null === (c = e.preset) || void 0 === c ? void 0 : c.length) && d.push([ "preset:", e.preset ]),
|
|
93
|
+
e.transform && d.push([ "transform:", r.inspect(e.transform, {
|
|
94
|
+
depth: 3
|
|
95
|
+
}) ]), s.console.gray.log("─".repeat(20)), s.console.log("jest.config"), s.console.log(d.toString()),
|
|
96
|
+
s.console.gray.log("─".repeat(20));
|
|
97
|
+
}
|
|
98
|
+
const i = n.getJestCacheDirectory();
|
|
99
|
+
function mixinJestConfig(e, t, s) {
|
|
100
|
+
var o, r;
|
|
101
|
+
null !== (o = e) && void 0 !== o || (e = {});
|
|
102
|
+
const n = fixJestConfig({
|
|
103
|
+
globals: {},
|
|
104
|
+
cacheDirectory: i,
|
|
105
|
+
maxWorkers: 1,
|
|
106
|
+
clearMocks: !0,
|
|
107
|
+
passWithNoTests: !0,
|
|
108
|
+
moduleFileExtensions: [ "ts", "tsx", "mts", "cts", "js", "jsx", "mjs", "cjs", "json", "node" ],
|
|
109
|
+
testEnvironment: "node",
|
|
110
|
+
...makeTestRegexConfig([ "ts", "tsx", "mts", "cts" ]),
|
|
111
|
+
testPathIgnorePatterns: [ "/node_modules/", "/__fixtures__/", "/__file_snapshots__/", "/fixtures/", "/__tests__/helpers/", "/__tests__/utils/", "__mocks__", "/dist/" ],
|
|
112
|
+
setupFilesAfterEnv: [],
|
|
113
|
+
verbose: !0,
|
|
114
|
+
coverageProvider: "v8",
|
|
115
|
+
collectCoverage: !1,
|
|
116
|
+
coveragePathIgnorePatterns: [ "/node_modules/", "/__snapshots__/", "/__tests__/", "/__test__/", "/dist/", "/test/", "/fixture/", "/__file_snapshots__/", "/__fixtures__/" ],
|
|
117
|
+
...e
|
|
118
|
+
});
|
|
119
|
+
return null !== (r = n.transform) && void 0 !== r || (n.transform = defaultTransform({
|
|
120
|
+
jestConfig: e,
|
|
121
|
+
autoPrint: t,
|
|
122
|
+
options: s,
|
|
123
|
+
newJestConfig: n
|
|
124
|
+
})), t && printJestConfigInfo(n, s), n;
|
|
125
|
+
}
|
|
126
|
+
e._newTableBorderless = _newTableBorderless, e._requireResolve = _requireResolve,
|
|
127
|
+
e.cacheDirectory = i, e.default = mixinJestConfig, e.defaultCoveragePathIgnorePatterns = function defaultCoveragePathIgnorePatterns() {
|
|
128
|
+
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() {
|
|
132
|
+
return [ "ts", "tsx", "mts", "cts" ];
|
|
133
|
+
}, e.defaultTestPathIgnorePatterns = function defaultTestPathIgnorePatterns() {
|
|
134
|
+
return [ "/node_modules/", "/__fixtures__/", "/__file_snapshots__/", "/fixtures/", "/__tests__/helpers/", "/__tests__/utils/", "__mocks__", "/dist/" ];
|
|
135
|
+
}, e.defaultTransform = defaultTransform, e.fixJestConfig = fixJestConfig, e.makeTestRegexConfig = makeTestRegexConfig,
|
|
136
|
+
e.mixinJestConfig = mixinJestConfig, e.printJestConfigInfo = printJestConfigInfo,
|
|
137
|
+
Object.defineProperty(e, "__esModule", {
|
|
138
|
+
value: !0
|
|
139
|
+
});
|
|
140
|
+
}));
|
|
2
141
|
//# sourceMappingURL=index.umd.production.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.production.min.cjs","sources":["../src/helper.ts","../src/defaults.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';\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 InitialOptionsTsJest>(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 { requireResolveExtra, IOptions } 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';\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\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\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 { InitialOptionsTsJest } from 'ts-jest';\nimport { console } from 'debug-color2';\nimport { inspect } from 'util';\nimport { name as jName, version as jVersion } from '../package.json';\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: InitialOptionsTsJest, 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 { InitialOptionsTsJest } from 'ts-jest';\nimport { _requireResolve, fixJestConfig, getCacheDirectory, makeTestRegexConfig } from './helper';\nimport {\n\tdefaultCoveragePathIgnorePatterns,\n\tdefaultModuleFileExtensions,\n\tdefaultTestFileExtensions,\n\tdefaultTestPathIgnorePatterns, defaultTransform,\n} from './defaults';\nimport { IOptionsPrintJestConfigInfo, printJestConfigInfo } from './print';\n\nexport * from './helper';\nexport * from './defaults';\nexport * from './print';\n\nconst cacheDirectory = getCacheDirectory();\n\nexport { cacheDirectory }\n\nexport function mixinJestConfig<T extends InitialOptionsTsJest>(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","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\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(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\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\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","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","testEnvironment","testPathIgnorePatterns","setupFilesAfterEnv","verbose","coverageProvider","collectCoverage","coveragePathIgnorePatterns","defaultCoveragePathIgnorePatterns","defaultModuleFileExtensions","defaultTestFileExtensions","defaultTestPathIgnorePatterns"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bluelovers/jest-config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Jest preset configuration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jest-preset",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"@yarn-tool/require-resolve": "^2.0.8",
|
|
105
105
|
"@yarn-tool/table": "^2.0.11",
|
|
106
106
|
"debug-color2": "^1.3.2",
|
|
107
|
-
"
|
|
107
|
+
"jest-cache-directory": "^1.0.1",
|
|
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": "
|
|
115
|
+
"gitHead": "3772062f6ff0108126930daf1714b812401c95ee"
|
|
116
116
|
}
|
package/src/defaults.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
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
4
|
import { _requireResolve } from './helper';
|
|
5
5
|
import { InitialOptionsTsJest } from 'ts-jest';
|
|
6
|
+
import { defaultTsJestTransformerOptions } from './plugin/ts-jest';
|
|
7
|
+
import { IRuntime } from './types';
|
|
6
8
|
|
|
7
9
|
export function defaultTestFileExtensions()
|
|
8
10
|
{
|
|
@@ -70,7 +72,7 @@ export function defaultTestPathIgnorePatterns()
|
|
|
70
72
|
return value as ITSToWriteableArray<typeof value>;
|
|
71
73
|
}
|
|
72
74
|
|
|
73
|
-
export function defaultTransform()
|
|
75
|
+
export function defaultTransform(runtime: IRuntime)
|
|
74
76
|
{
|
|
75
77
|
const paths: string[] = [
|
|
76
78
|
requireResolveExtra('@bluelovers/jest-config').result,
|
|
@@ -82,7 +84,9 @@ export function defaultTransform()
|
|
|
82
84
|
paths,
|
|
83
85
|
};
|
|
84
86
|
|
|
85
|
-
let ts_transform: InitialOptionsTsJest["transform"][string] = _requireResolve('ts-jest') as 'ts-jest'
|
|
87
|
+
let ts_transform: InitialOptionsTsJest["transform"][string] = _requireResolve('ts-jest') as 'ts-jest';
|
|
88
|
+
|
|
89
|
+
ts_transform = [ts_transform, defaultTsJestTransformerOptions(runtime)];
|
|
86
90
|
|
|
87
91
|
const { result: tsd } = requireResolveExtra('jest-tsd-transform', opts);
|
|
88
92
|
|
|
@@ -96,6 +100,7 @@ export function defaultTransform()
|
|
|
96
100
|
chain as 'jest-chain-transform', {
|
|
97
101
|
transformers: [
|
|
98
102
|
tsd as 'jest-tsd-transform',
|
|
103
|
+
// @ts-ignore
|
|
99
104
|
ts_transform as 'ts-jest',
|
|
100
105
|
],
|
|
101
106
|
},
|
package/src/helper.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
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 {
|
|
5
|
+
import { IJestConfig } from './types';
|
|
8
6
|
|
|
9
7
|
export function _requireResolve(name: string)
|
|
10
8
|
{
|
|
@@ -24,26 +22,6 @@ export function _requireResolve(name: string)
|
|
|
24
22
|
return result
|
|
25
23
|
}
|
|
26
24
|
|
|
27
|
-
/**
|
|
28
|
-
* @see https://github.com/facebook/jest/blob/main/packages/jest-config/src/getCacheDirectory.ts
|
|
29
|
-
*/
|
|
30
|
-
export function getCacheDirectory()
|
|
31
|
-
{
|
|
32
|
-
const { getuid } = process;
|
|
33
|
-
const tmpdirPath = process.env['JEST_CACHE_DIRECTORY'] || join(tryRealpath(tmpdir()), 'jest');
|
|
34
|
-
if (getuid == null)
|
|
35
|
-
{
|
|
36
|
-
return tmpdirPath;
|
|
37
|
-
}
|
|
38
|
-
else
|
|
39
|
-
{
|
|
40
|
-
// On some platforms tmpdir() is `/tmp`, causing conflicts between different
|
|
41
|
-
// users and permission issues. Adding an additional subdivision by UID can
|
|
42
|
-
// help.
|
|
43
|
-
return `${tmpdirPath}_${getuid.call(process).toString(36)}`;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
25
|
export function makeTestRegexConfig(testExt: string | ITSArrayListMaybeReadonly<string>): Pick<InitialOptionsTsJest, 'testMatch' | 'testRegex'>
|
|
48
26
|
{
|
|
49
27
|
testExt = [testExt].flat().join('|');
|
|
@@ -57,7 +35,7 @@ export function makeTestRegexConfig(testExt: string | ITSArrayListMaybeReadonly<
|
|
|
57
35
|
}
|
|
58
36
|
}
|
|
59
37
|
|
|
60
|
-
export function fixJestConfig<T extends
|
|
38
|
+
export function fixJestConfig<T extends IJestConfig>(jestConfig: T): T
|
|
61
39
|
{
|
|
62
40
|
if (jestConfig.testMatch)
|
|
63
41
|
{
|
|
@@ -70,23 +48,3 @@ export function fixJestConfig<T extends InitialOptionsTsJest>(jestConfig: T): T
|
|
|
70
48
|
|
|
71
49
|
return jestConfig
|
|
72
50
|
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @see https://github.com/facebook/jest/blob/main/packages/jest-util/src/tryRealpath.ts
|
|
76
|
-
*/
|
|
77
|
-
export default function tryRealpath(path: string): string
|
|
78
|
-
{
|
|
79
|
-
try
|
|
80
|
-
{
|
|
81
|
-
path = realpathSync.native(path);
|
|
82
|
-
}
|
|
83
|
-
catch (error: any)
|
|
84
|
-
{
|
|
85
|
-
if (error.code !== 'ENOENT')
|
|
86
|
-
{
|
|
87
|
-
throw error;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return path;
|
|
92
|
-
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { _requireResolve, fixJestConfig, getCacheDirectory, makeTestRegexConfig } from './helper';
|
|
1
|
+
import { _requireResolve, fixJestConfig, makeTestRegexConfig } from './helper';
|
|
3
2
|
import {
|
|
4
3
|
defaultCoveragePathIgnorePatterns,
|
|
5
4
|
defaultModuleFileExtensions,
|
|
@@ -7,25 +6,27 @@ import {
|
|
|
7
6
|
defaultTestPathIgnorePatterns, defaultTransform,
|
|
8
7
|
} from './defaults';
|
|
9
8
|
import { IOptionsPrintJestConfigInfo, printJestConfigInfo } from './print';
|
|
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 =
|
|
16
|
+
const cacheDirectory = getJestCacheDirectory();
|
|
16
17
|
|
|
17
18
|
export { cacheDirectory }
|
|
18
19
|
|
|
19
|
-
export function mixinJestConfig<T extends
|
|
20
|
+
export function mixinJestConfig<T extends IJestConfig>(jestConfig?: T, autoPrint?: boolean,
|
|
20
21
|
options?: IOptionsPrintJestConfigInfo): T
|
|
21
22
|
{
|
|
22
23
|
// @ts-ignore
|
|
23
24
|
jestConfig ??= {};
|
|
24
25
|
const newJestConfig = fixJestConfig<T>({
|
|
25
26
|
globals: {
|
|
26
|
-
'ts-jest': {
|
|
27
|
-
//tsconfig: 'tsconfig.spec.json',
|
|
28
|
-
},
|
|
27
|
+
// 'ts-jest': {
|
|
28
|
+
// //tsconfig: 'tsconfig.spec.json',
|
|
29
|
+
// },
|
|
29
30
|
},
|
|
30
31
|
cacheDirectory,
|
|
31
32
|
maxWorkers: 1,
|
|
@@ -48,7 +49,7 @@ export function mixinJestConfig<T extends InitialOptionsTsJest>(jestConfig?: T,
|
|
|
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 InitialOptionsTsJest>(jestConfig?: T,
|
|
|
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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TsJestTransformerOptions } from 'ts-jest/dist/types';
|
|
2
|
+
import { IRuntime } from '../types';
|
|
3
|
+
|
|
4
|
+
export function defaultTsJestTransformerOptions(runtime: IRuntime)
|
|
5
|
+
{
|
|
6
|
+
const old: TsJestTransformerOptions = runtime.jestConfig.globals?.['ts-jest'] ?? {};
|
|
7
|
+
|
|
8
|
+
const tsconfig = typeof old.tsconfig === 'object' ? old.tsconfig : {};
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
...old,
|
|
12
|
+
tsconfig: {
|
|
13
|
+
noEmit: true,
|
|
14
|
+
emitDeclarationOnly: false,
|
|
15
|
+
noUnusedParameters: false,
|
|
16
|
+
allowUnusedLabels: true,
|
|
17
|
+
noUnusedLocals: false,
|
|
18
|
+
noPropertyAccessFromIndexSignature: false,
|
|
19
|
+
noImplicitAny: false,
|
|
20
|
+
...tsconfig,
|
|
21
|
+
},
|
|
22
|
+
} satisfies TsJestTransformerOptions
|
|
23
|
+
}
|
package/src/print.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { applyStyleBorderless, Table } from '@yarn-tool/table';
|
|
2
2
|
import { TableConstructorOptions } from 'cli-table3';
|
|
3
|
-
import { InitialOptionsTsJest } from 'ts-jest';
|
|
4
3
|
import { console } from 'debug-color2';
|
|
5
4
|
import { inspect } from 'util';
|
|
6
5
|
import { name as jName, version as jVersion } from '../package.json';
|
|
6
|
+
import { IJestConfig } from './types';
|
|
7
7
|
|
|
8
8
|
export function _newTableBorderless(options?: TableConstructorOptions)
|
|
9
9
|
{
|
|
@@ -41,7 +41,7 @@ export interface IOptionsPrintJestConfigInfo
|
|
|
41
41
|
file?: string;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
export function printJestConfigInfo(jestConfig:
|
|
44
|
+
export function printJestConfigInfo(jestConfig: IJestConfig, options?: IOptionsPrintJestConfigInfo)
|
|
45
45
|
{
|
|
46
46
|
const table = _newTableBorderless();
|
|
47
47
|
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InitialOptionsTsJest, JestConfigWithTsJest } from 'ts-jest';
|
|
2
|
+
import { IOptionsPrintJestConfigInfo } from './print';
|
|
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
|
+
}
|