forked from kulshekhar/ts-jest
/
index.ts
72 lines (62 loc) · 2.32 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import { LogContexts, LogLevels } from 'bs-logger'
import { readFileSync } from 'fs'
import { resolve } from 'path'
import { createJestPreset as createJestPresetCore } from './config/create-jest-preset'
import { pathsToModuleNameMapper as pathsToModuleNameMapperCore } from './config/paths-to-module-name-mapper'
import { TsJestTransformer } from './ts-jest-transformer'
import { TsJestGlobalOptions } from './types'
import { rootLogger } from './util/logger'
import { Deprecateds, interpolate } from './util/messages'
import { mocked as mockedCore } from './util/testing'
import { VersionCheckers } from './util/version-checkers'
// deprecate helpers
const warn = rootLogger.child({ [LogContexts.logLevel]: LogLevels.warn })
const helperMoved = <T extends (...args: any[]) => any>(name: string, helper: T) =>
warn.wrap(interpolate(Deprecateds.HelperMovedToUtils, { helper: name }), helper)
export const mocked = helperMoved('mocked', mockedCore)
export const createJestPreset = helperMoved('createJestPreset', createJestPresetCore)
export const pathsToModuleNameMapper = helperMoved('pathsToModuleNameMapper', pathsToModuleNameMapperCore)
// tslint:disable-next-line:no-var-requires
export const version: string = require('../package.json').version
export const digest: string = readFileSync(resolve(__dirname, '..', '.ts-jest-digest'), 'utf8')
let transformer!: TsJestTransformer
function defaultTransformer(): TsJestTransformer {
return transformer || (transformer = createTransformer())
}
export function createTransformer(baseConfig?: TsJestGlobalOptions) {
VersionCheckers.jest.warn()
return new TsJestTransformer(baseConfig)
}
/**
* @internal
*/
export function process(...args: any[]): any {
return (defaultTransformer().process as any)(...args)
}
/**
* @internal
*/
export function getCacheKey(...args: any[]): any {
return (defaultTransformer().getCacheKey as any)(...args)
}
/**
* @internal
*/
// we let jest doing the instrumentation, it does it well
export const canInstrument = false
const jestPreset = createJestPresetCore()
/**
* @internal
*/
// for tests
// tslint:disable-next-line:variable-name
export const __singleton = () => transformer
/**
* @internal
*/
// tslint:disable-next-line:variable-name
export const __resetModule = () => (transformer = undefined as any)
export {
// extra ==================
jestPreset,
}