@bluelovers/jest-config 1.0.14 → 1.0.16
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 +31 -0
- package/README.md +5 -0
- package/dist/index.cjs.development.cjs +37 -4
- package/dist/index.cjs.development.cjs.map +1 -1
- package/dist/index.cjs.production.min.cjs +1 -1
- package/dist/index.cjs.production.min.cjs.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.esm.mjs +32 -13
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.umd.development.cjs +37 -4
- package/dist/index.umd.development.cjs.map +1 -1
- package/dist/index.umd.production.min.cjs +1 -1
- package/dist/index.umd.production.min.cjs.map +1 -1
- package/jest.config.js +116 -0
- package/package.json +7 -8
- package/src/defaults.ts +113 -0
- package/src/helper.ts +92 -0
- package/src/index.ts +72 -0
- package/src/print.ts +73 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.development.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 { ITSToWriteableArray } from 'ts-type/lib/helper/array/readonly';\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","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\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,\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: {\n\t\t\t'.(ts|tsx|mts|cts)$': _requireResolve('ts-jest'),\n\t\t},\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","tmpdir","call","toString","makeTestRegexConfig","testExt","flat","testMatch","testRegex","fixJestConfig","jestConfig","path","realpathSync","native","error","code","defaultTestFileExtensions","value","defaultModuleFileExtensions","defaultCoveragePathIgnorePatterns","defaultTestPathIgnorePatterns","_newTableBorderless","options","table","Table","colAligns","chars","top","bottom","left","mid","right","middle","applyStyleBorderless","printJestConfigInfo","push","jName","jVersion","versions","node","cwd","file","length","cacheDirectory","rootDir","roots","inspect","preset","gray","log","repeat","mixinJestConfig","autoPrint","newJestConfig","globals","maxWorkers","clearMocks","passWithNoTests","moduleFileExtensions","testEnvironment","testPathIgnorePatterns","setupFilesAfterEnv","transform","verbose","coverageProvider","collectCoverage","coveragePathIgnorePatterns"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.development.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","tmpdir","call","toString","makeTestRegexConfig","testExt","flat","testMatch","testRegex","fixJestConfig","jestConfig","path","realpathSync","native","error","code","defaultTestFileExtensions","value","defaultModuleFileExtensions","defaultCoveragePathIgnorePatterns","defaultTestPathIgnorePatterns","defaultTransform","opts","ts_transform","tsd","length","chain","transformers","_newTableBorderless","options","table","Table","colAligns","chars","top","bottom","left","mid","right","middle","applyStyleBorderless","printJestConfigInfo","push","jName","jVersion","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"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"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)}(this,(function(e,t,s,o,r,i,
|
|
1
|
+
!function(e,t){"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)}(this,(function(e,t,s,o,r,n,i,l){"use strict";function _requireResolve(e){const s=[t.requireResolveExtra("@bluelovers/tsdx").result,t.requireResolveExtra("tsdx").result].filter(Boolean),o=t.requireResolveCore(e,{includeGlobal:!0,includeCurrentDirectory:!0,paths:s});return r.console.debug("[require.resolve]",e,"=>",o),o}function getCacheDirectory(){const{getuid:e}=process,t=process.env.JEST_CACHE_DIRECTORY||s.join(function tryRealpath(e){try{e=n.realpathSync.native(e)}catch(e){if("ENOENT"!==e.code)throw e}return e}(o.tmpdir()),"jest");return null==e?t:`${t}_${e.call(process).toString(36)}`}function makeTestRegexConfig(e){return{testMatch:void 0,testRegex:[`\\.(tests?|spec)\\.(${e=[e].flat().join("|")})$`,`__tests__/.*\\.(tests?|spec)\\.(${e})$`]}}function fixJestConfig(e){return e.testMatch?e.testRegex=void 0:e.testRegex&&(e.testMatch=void 0),e}function defaultTransform(){const e={includeGlobal:!0,includeCurrentDirectory:!0,paths:[t.requireResolveExtra("@bluelovers/jest-config").result].filter(Boolean)};let s=_requireResolve("ts-jest");const{result:o}=t.requireResolveExtra("jest-tsd-transform",e);if(null!=o&&o.length){const{result:r}=t.requireResolveExtra("jest-chain-transform",e);null!=r&&r.length&&(s=[r,{transformers:[o,s]}])}return{".(ts|tsx|mts|cts)$":s}}function _newTableBorderless(e){let t=new i.Table({colAligns:["right","left"],chars:{top:"","top-mid":"","top-left":"","top-right":"",bottom:"","bottom-mid":"","bottom-left":"","bottom-right":"",left:"","left-mid":"",mid:"","mid-mid":"",right:"","right-mid":"",middle:""},...e});return t=i.applyStyleBorderless(t),t}function printJestConfigInfo(e,t){var s,o,n,i,u,a,f,c;const _=_newTableBorderless();null!==(s=t)&&void 0!==s||(t={}),null!==(o=e)&&void 0!==o||(e={}),_.push(["@bluelovers/jest-config:","1.0.16"]),_.push(["process.versions.node:",process.versions.node]),_.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]),(null===(u=e.cacheDirectory)||void 0===u?void 0:u.length)&&_.push(["cacheDirectory:",e.cacheDirectory]),(null===(a=e.rootDir)||void 0===a?void 0:a.length)&&_.push(["rootDir:",e.rootDir]),(null===(f=e.roots)||void 0===f?void 0:f.length)&&_.push(["roots:",l.inspect(e.roots)]),(null===(c=e.preset)||void 0===c?void 0:c.length)&&_.push(["preset:",e.preset]),e.transform&&_.push(["transform:",l.inspect(e.transform,{depth:3})]),r.console.gray.log("─".repeat(20)),r.console.log("jest.config"),r.console.log(_.toString()),r.console.gray.log("─".repeat(20))}const u=getCacheDirectory();function mixinJestConfig(e,t,s){var o;null!==(o=e)&&void 0!==o||(e={});const r=fixJestConfig({globals:{"ts-jest":{}},cacheDirectory:u,maxWorkers:1,clearMocks:!0,passWithNoTests:!0,moduleFileExtensions:["ts","tsx","mts","cts","js","jsx","mjs","cjs","json","node"],testEnvironment:"node",...makeTestRegexConfig(["ts","tsx","mts","cts"]),testPathIgnorePatterns:["/node_modules/","/__fixtures__/","/__file_snapshots__/","/fixtures/","/__tests__/helpers/","/__tests__/utils/","__mocks__","/dist/"],setupFilesAfterEnv:[],transform:defaultTransform(),verbose:!0,coverageProvider:"v8",collectCoverage:!1,coveragePathIgnorePatterns:["/node_modules/","/__snapshots__/","/__tests__/","/__test__/","/dist/","/test/","/fixture/","/__file_snapshots__/","/__fixtures__/"],...e});return t&&printJestConfigInfo(r,s),r}e._newTableBorderless=_newTableBorderless,e._requireResolve=_requireResolve,e.cacheDirectory=u,e.default=mixinJestConfig,e.defaultCoveragePathIgnorePatterns=function defaultCoveragePathIgnorePatterns(){return["/node_modules/","/__snapshots__/","/__tests__/","/__test__/","/dist/","/test/","/fixture/","/__file_snapshots__/","/__fixtures__/"]},e.defaultModuleFileExtensions=function defaultModuleFileExtensions(){return["ts","tsx","mts","cts","js","jsx","mjs","cjs","json","node"]},e.defaultTestFileExtensions=function defaultTestFileExtensions(){return["ts","tsx","mts","cts"]},e.defaultTestPathIgnorePatterns=function defaultTestPathIgnorePatterns(){return["/node_modules/","/__fixtures__/","/__file_snapshots__/","/fixtures/","/__tests__/helpers/","/__tests__/utils/","__mocks__","/dist/"]},e.defaultTransform=defaultTransform,e.fixJestConfig=fixJestConfig,e.getCacheDirectory=getCacheDirectory,e.makeTestRegexConfig=makeTestRegexConfig,e.mixinJestConfig=mixinJestConfig,e.printJestConfigInfo=printJestConfigInfo,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=index.umd.production.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.production.min.cjs","sources":["../src/helper.ts","../src/print.ts","../src/index.ts","../src/defaults.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 { 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\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,\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: {\n\t\t\t'.(ts|tsx|mts|cts)$': _requireResolve('ts-jest'),\n\t\t},\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","import { ITSToWriteableArray } from 'ts-type/lib/helper/array/readonly';\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"],"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","_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","length","file","cacheDirectory","rootDir","roots","inspect","preset","gray","log","repeat","mixinJestConfig","autoPrint","newJestConfig","globals","maxWorkers","clearMocks","passWithNoTests","moduleFileExtensions","testEnvironment","testPathIgnorePatterns","setupFilesAfterEnv","transform","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/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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"}
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
const { basename, extname, dirname } = require('path');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* // @type { import('@jest/types').Config.InitialOptions }
|
|
7
|
+
* @type { import('ts-jest').InitialOptionsTsJest }
|
|
8
|
+
*/
|
|
9
|
+
let jestConfig = {
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @param {string} name
|
|
15
|
+
* @returns {string}
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
function _requireResolve(name)
|
|
19
|
+
{
|
|
20
|
+
let result;
|
|
21
|
+
|
|
22
|
+
try
|
|
23
|
+
{
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve');
|
|
26
|
+
|
|
27
|
+
const paths = [
|
|
28
|
+
requireResolveExtra('@bluelovers/tsdx').result,
|
|
29
|
+
requireResolveExtra('tsdx').result,
|
|
30
|
+
].filter(Boolean);
|
|
31
|
+
|
|
32
|
+
result = requireResolveCore(name, {
|
|
33
|
+
includeGlobal: true,
|
|
34
|
+
includeCurrentDirectory: true,
|
|
35
|
+
paths,
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
catch (e)
|
|
39
|
+
{
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
result = result || require.resolve(name);
|
|
44
|
+
|
|
45
|
+
console.info('[require.resolve]', name, '=>', result)
|
|
46
|
+
|
|
47
|
+
return result
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
let _ok = true;
|
|
51
|
+
|
|
52
|
+
try
|
|
53
|
+
{
|
|
54
|
+
if (!jestConfig.preset)
|
|
55
|
+
{
|
|
56
|
+
|
|
57
|
+
let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([
|
|
58
|
+
'jest-preset.js',
|
|
59
|
+
'jest.config.js',
|
|
60
|
+
], {
|
|
61
|
+
ignoreCurrentPackage: true,
|
|
62
|
+
onlyFiles: true,
|
|
63
|
+
}).result;
|
|
64
|
+
|
|
65
|
+
if (result)
|
|
66
|
+
{
|
|
67
|
+
let name = basename(result, extname(result))
|
|
68
|
+
|
|
69
|
+
switch (name)
|
|
70
|
+
{
|
|
71
|
+
case 'jest-preset':
|
|
72
|
+
jestConfig.preset = dirname(result);
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
jestConfig = {
|
|
76
|
+
...require(result),
|
|
77
|
+
jestConfig,
|
|
78
|
+
};
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
_ok = false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (e)
|
|
87
|
+
{
|
|
88
|
+
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
try
|
|
92
|
+
{
|
|
93
|
+
if (_ok && !jestConfig.preset)
|
|
94
|
+
{
|
|
95
|
+
let result = _requireResolve('@bluelovers/jest-config/package.json');
|
|
96
|
+
if (result)
|
|
97
|
+
{
|
|
98
|
+
jestConfig.preset = dirname(result);
|
|
99
|
+
_ok = false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (e)
|
|
104
|
+
{
|
|
105
|
+
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (_ok && !jestConfig.preset)
|
|
109
|
+
{
|
|
110
|
+
jestConfig.preset = '@bluelovers/jest-config';
|
|
111
|
+
_ok = false;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
console.info(`jest.config.preset: ${jestConfig.preset}`);
|
|
115
|
+
|
|
116
|
+
module.exports = jestConfig
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bluelovers/jest-config",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "Jest preset configuration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jest-preset",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"test:jest:snapshot": "yarn run test:jest -- -u",
|
|
72
72
|
"test:mocha": "ynpx --quiet -p ts-node -p mocha mocha -- --require ts-node/register \"!(node_modules)/**/*.{test,spec}.{ts,tsx}\"",
|
|
73
73
|
"test:snapshot": "yarn run test -- -u",
|
|
74
|
+
"test:tsd": "ynpx tsd",
|
|
74
75
|
"test:tsdx": "ynpx @bluelovers/tsdx test --passWithNoTests",
|
|
75
76
|
"posttest": "yarn run build",
|
|
76
77
|
"build": "yarn run build:tsdx && yarn run build:dts:bundle",
|
|
@@ -100,18 +101,16 @@
|
|
|
100
101
|
"tsc:showConfig": "ynpx get-current-tsconfig -p"
|
|
101
102
|
},
|
|
102
103
|
"dependencies": {
|
|
103
|
-
"@yarn-tool/require-resolve": "^2.0.
|
|
104
|
-
"@yarn-tool/table": "^2.0.
|
|
104
|
+
"@yarn-tool/require-resolve": "^2.0.8",
|
|
105
|
+
"@yarn-tool/table": "^2.0.11",
|
|
105
106
|
"debug-color2": "^1.3.2",
|
|
106
107
|
"graceful-fs": "^4.2.10",
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
"devDependencies": {
|
|
110
|
-
"@types/graceful-fs": "^4.1.5"
|
|
108
|
+
"jest-chain-transform": "^0.0.4",
|
|
109
|
+
"ts-type": ">=2"
|
|
111
110
|
},
|
|
112
111
|
"packageManager": "yarn@1.22.19",
|
|
113
112
|
"publishConfig": {
|
|
114
113
|
"access": "public"
|
|
115
114
|
},
|
|
116
|
-
"gitHead": "
|
|
115
|
+
"gitHead": "7d300b66b157cb0a066e28c031823368806d803c"
|
|
117
116
|
}
|
package/src/defaults.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { requireResolveExtra, IOptions } from '@yarn-tool/require-resolve';
|
|
2
|
+
import { ITSToWriteableArray } from 'ts-type/lib/helper/array/readonly';
|
|
3
|
+
import { ITSWriteable } from 'ts-type/lib/helper/readonly';
|
|
4
|
+
import { _requireResolve } from './helper';
|
|
5
|
+
import { InitialOptionsTsJest } from 'ts-jest';
|
|
6
|
+
|
|
7
|
+
export function defaultTestFileExtensions()
|
|
8
|
+
{
|
|
9
|
+
const value = [
|
|
10
|
+
'ts',
|
|
11
|
+
'tsx',
|
|
12
|
+
'mts',
|
|
13
|
+
'cts',
|
|
14
|
+
// 'js',
|
|
15
|
+
// 'jsx',
|
|
16
|
+
// 'mjs',
|
|
17
|
+
// 'cjs',
|
|
18
|
+
] as const;
|
|
19
|
+
return value as ITSToWriteableArray<typeof value>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function defaultModuleFileExtensions()
|
|
23
|
+
{
|
|
24
|
+
const value = [
|
|
25
|
+
'ts',
|
|
26
|
+
'tsx',
|
|
27
|
+
'mts',
|
|
28
|
+
'cts',
|
|
29
|
+
'js',
|
|
30
|
+
'jsx',
|
|
31
|
+
'mjs',
|
|
32
|
+
'cjs',
|
|
33
|
+
'json',
|
|
34
|
+
'node',
|
|
35
|
+
] as const
|
|
36
|
+
return value as ITSToWriteableArray<typeof value>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function defaultCoveragePathIgnorePatterns()
|
|
40
|
+
{
|
|
41
|
+
const value = [
|
|
42
|
+
'/node_modules/',
|
|
43
|
+
'/__snapshots__/',
|
|
44
|
+
'/__tests__/',
|
|
45
|
+
'/__test__/',
|
|
46
|
+
//'**/node_modules/',
|
|
47
|
+
//'**/__snapshots__/',
|
|
48
|
+
//'**/__tests__/',
|
|
49
|
+
'/dist/',
|
|
50
|
+
'/test/',
|
|
51
|
+
'/fixture/',
|
|
52
|
+
'/__file_snapshots__/',
|
|
53
|
+
'/__fixtures__/',
|
|
54
|
+
] as const
|
|
55
|
+
return value as ITSToWriteableArray<typeof value>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function defaultTestPathIgnorePatterns()
|
|
59
|
+
{
|
|
60
|
+
const value = [
|
|
61
|
+
'/node_modules/',
|
|
62
|
+
'/__fixtures__/',
|
|
63
|
+
'/__file_snapshots__/',
|
|
64
|
+
'/fixtures/',
|
|
65
|
+
'/__tests__/helpers/',
|
|
66
|
+
'/__tests__/utils/',
|
|
67
|
+
'__mocks__',
|
|
68
|
+
'/dist/',
|
|
69
|
+
] as const
|
|
70
|
+
return value as ITSToWriteableArray<typeof value>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function defaultTransform()
|
|
74
|
+
{
|
|
75
|
+
const paths: string[] = [
|
|
76
|
+
requireResolveExtra('@bluelovers/jest-config').result,
|
|
77
|
+
].filter(Boolean);
|
|
78
|
+
|
|
79
|
+
const opts: IOptions = {
|
|
80
|
+
includeGlobal: true,
|
|
81
|
+
includeCurrentDirectory: true,
|
|
82
|
+
paths,
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
let ts_transform: InitialOptionsTsJest["transform"][string] = _requireResolve('ts-jest') as 'ts-jest'
|
|
86
|
+
|
|
87
|
+
const { result: tsd } = requireResolveExtra('jest-tsd-transform', opts);
|
|
88
|
+
|
|
89
|
+
if (tsd?.length)
|
|
90
|
+
{
|
|
91
|
+
const { result: chain } = requireResolveExtra('jest-chain-transform', opts);
|
|
92
|
+
|
|
93
|
+
if (chain?.length)
|
|
94
|
+
{
|
|
95
|
+
ts_transform = [
|
|
96
|
+
chain as 'jest-chain-transform', {
|
|
97
|
+
transformers: [
|
|
98
|
+
tsd as 'jest-tsd-transform',
|
|
99
|
+
ts_transform as 'ts-jest',
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
] satisfies [
|
|
103
|
+
string,
|
|
104
|
+
Record<string, unknown>
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const value = {
|
|
110
|
+
'.(ts|tsx|mts|cts)$': ts_transform,
|
|
111
|
+
} as const
|
|
112
|
+
return value as ITSWriteable<typeof value>;
|
|
113
|
+
}
|
package/src/helper.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { requireResolveCore, requireResolveExtra } from '@yarn-tool/require-resolve';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { tmpdir } from 'os';
|
|
4
|
+
import { InitialOptionsTsJest } from 'ts-jest';
|
|
5
|
+
import { ITSArrayListMaybeReadonly } from 'ts-type/lib/type/base';
|
|
6
|
+
import { console } from 'debug-color2';
|
|
7
|
+
import { realpathSync } from 'graceful-fs';
|
|
8
|
+
|
|
9
|
+
export function _requireResolve(name: string)
|
|
10
|
+
{
|
|
11
|
+
const paths = [
|
|
12
|
+
requireResolveExtra('@bluelovers/tsdx').result,
|
|
13
|
+
requireResolveExtra('tsdx').result,
|
|
14
|
+
].filter(Boolean);
|
|
15
|
+
|
|
16
|
+
const result = requireResolveCore(name, {
|
|
17
|
+
includeGlobal: true,
|
|
18
|
+
includeCurrentDirectory: true,
|
|
19
|
+
paths,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
console.debug('[require.resolve]', name, '=>', result)
|
|
23
|
+
|
|
24
|
+
return result
|
|
25
|
+
}
|
|
26
|
+
|
|
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
|
+
export function makeTestRegexConfig(testExt: string | ITSArrayListMaybeReadonly<string>): Pick<InitialOptionsTsJest, 'testMatch' | 'testRegex'>
|
|
48
|
+
{
|
|
49
|
+
testExt = [testExt].flat().join('|');
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
testMatch: void 0 as undefined,
|
|
53
|
+
testRegex: [
|
|
54
|
+
`\\.(tests?|spec)\\.(${testExt})$`,
|
|
55
|
+
`__tests__\/\.*\\.(tests?|spec)\\.(${testExt})$`,
|
|
56
|
+
],
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function fixJestConfig<T extends InitialOptionsTsJest>(jestConfig: T): T
|
|
61
|
+
{
|
|
62
|
+
if (jestConfig.testMatch)
|
|
63
|
+
{
|
|
64
|
+
jestConfig.testRegex = void 0;
|
|
65
|
+
}
|
|
66
|
+
else if (jestConfig.testRegex)
|
|
67
|
+
{
|
|
68
|
+
jestConfig.testMatch = void 0;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return jestConfig
|
|
72
|
+
}
|
|
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
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { InitialOptionsTsJest } from 'ts-jest';
|
|
2
|
+
import { _requireResolve, fixJestConfig, getCacheDirectory, makeTestRegexConfig } from './helper';
|
|
3
|
+
import {
|
|
4
|
+
defaultCoveragePathIgnorePatterns,
|
|
5
|
+
defaultModuleFileExtensions,
|
|
6
|
+
defaultTestFileExtensions,
|
|
7
|
+
defaultTestPathIgnorePatterns, defaultTransform,
|
|
8
|
+
} from './defaults';
|
|
9
|
+
import { IOptionsPrintJestConfigInfo, printJestConfigInfo } from './print';
|
|
10
|
+
|
|
11
|
+
export * from './helper';
|
|
12
|
+
export * from './defaults';
|
|
13
|
+
export * from './print';
|
|
14
|
+
|
|
15
|
+
const cacheDirectory = getCacheDirectory();
|
|
16
|
+
|
|
17
|
+
export { cacheDirectory }
|
|
18
|
+
|
|
19
|
+
export function mixinJestConfig<T extends InitialOptionsTsJest>(jestConfig?: T, autoPrint?: boolean,
|
|
20
|
+
options?: IOptionsPrintJestConfigInfo): T
|
|
21
|
+
{
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
jestConfig ??= {};
|
|
24
|
+
const newJestConfig = fixJestConfig<T>({
|
|
25
|
+
globals: {
|
|
26
|
+
'ts-jest': {
|
|
27
|
+
//tsconfig: 'tsconfig.spec.json',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
cacheDirectory,
|
|
31
|
+
maxWorkers: 1,
|
|
32
|
+
clearMocks: true,
|
|
33
|
+
passWithNoTests: true,
|
|
34
|
+
moduleFileExtensions: defaultModuleFileExtensions(),
|
|
35
|
+
testEnvironment: 'node',
|
|
36
|
+
//testMatch: ['**/*.test.ts', '**/*.spec.ts'],
|
|
37
|
+
...makeTestRegexConfig(defaultTestFileExtensions()),
|
|
38
|
+
testPathIgnorePatterns: defaultTestPathIgnorePatterns(),
|
|
39
|
+
//testRunner: 'jest-circus/runner',
|
|
40
|
+
setupFilesAfterEnv: [
|
|
41
|
+
//"jest-chain",
|
|
42
|
+
//"jest-extended/all",
|
|
43
|
+
//"jest-extended-extra",
|
|
44
|
+
//"jest-num-close-with",
|
|
45
|
+
/**
|
|
46
|
+
* https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b
|
|
47
|
+
* https://github.com/doctolib/jest-os-detection
|
|
48
|
+
*/
|
|
49
|
+
//'jest-os-detection',
|
|
50
|
+
],
|
|
51
|
+
transform: defaultTransform(),
|
|
52
|
+
verbose: true,
|
|
53
|
+
/**
|
|
54
|
+
* if didn't set `coverageProvider` to `v8`
|
|
55
|
+
* with `collectCoverage` `true`, nodejs debug point maybe will fail
|
|
56
|
+
*/
|
|
57
|
+
coverageProvider: 'v8',
|
|
58
|
+
collectCoverage: false,
|
|
59
|
+
coveragePathIgnorePatterns: defaultCoveragePathIgnorePatterns(),
|
|
60
|
+
/**
|
|
61
|
+
* https://github.com/facebook/jest/issues/9771#issuecomment-872764344
|
|
62
|
+
*/
|
|
63
|
+
//resolver: 'jest-node-exports-resolver',
|
|
64
|
+
...jestConfig,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
autoPrint && printJestConfigInfo(newJestConfig, options);
|
|
68
|
+
|
|
69
|
+
return newJestConfig
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export default mixinJestConfig
|