Skip to content

Commit f55d895

Browse files
committed
feat(preset): adds presets typings and export all presets
All presets are now accessible with typings by importing `ts-jest/presets`
1 parent ad8f6d1 commit f55d895

File tree

7 files changed

+32
-15
lines changed

7 files changed

+32
-15
lines changed

presets/default/jest-preset.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
const create = require('../create')
2-
3-
module.exports = create()
1+
module.exports = require('..').defaults

presets/index.d.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { TsJestPresets } from '../dist/types'
2+
3+
export const defaults: TsJesPresets
4+
export const jsWithTs: TsJesPresets
5+
export const jsWithBabel: TsJesPresets

presets/index.js

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const create = './create'
2+
3+
module.exports = {
4+
get defaults() { return create() },
5+
get jsWithTs() { return create({ allowJs: true }) },
6+
get jsWithBabel() {
7+
return create({ allowJs: false }, {
8+
transform: {
9+
'^.+\\.jsx?$': 'babel-jest',
10+
},
11+
})
12+
},
13+
}

presets/js-with-babel/jest-preset.js

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
const create = require('../create')
2-
3-
module.exports = create({ allowJs: false }, {
4-
transform: {
5-
'^.+\\.jsx?$': 'babel-jest',
6-
},
7-
})
1+
module.exports = require('..').jsWithBabel

presets/js-with-ts/jest-preset.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
const create = require('../create')
2-
3-
module.exports = create({allowJs: true})
1+
module.exports = require('..').jsWithTs

src/config/create-jest-preset.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as jestConfig from 'jest-config'
22

3-
import { CreateJestPresetOptions } from '../types'
3+
import { CreateJestPresetOptions, TsJestPresets } from '../types'
44
import { rootLogger } from '../util/logger'
55

66
const logger = rootLogger.child({ namespace: 'jest-preset' })
@@ -12,7 +12,10 @@ const defaults = jestConfig.defaults || {
1212
moduleFileExtensions: ['js', 'json', 'jsx', 'node'],
1313
}
1414

15-
export function createJestPreset({ allowJs = false }: CreateJestPresetOptions = {}, from?: jest.InitialOptions) {
15+
export function createJestPreset(
16+
{ allowJs = false }: CreateJestPresetOptions = {},
17+
from?: jest.InitialOptions,
18+
): TsJestPresets {
1619
logger.debug({ allowJs }, 'creating jest presets', allowJs ? 'handling' : 'not handling', 'JavaScript files')
1720
from = { ...defaults, ...from }
1821
return {

src/types.ts

+6
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ export interface TsJestGlobalOptions {
6969
stringifyContentPathRegex?: string | RegExp
7070
}
7171

72+
export interface TsJestPresets {
73+
transform: Record<string, string>
74+
testMatch: string[]
75+
moduleFileExtensions: string[]
76+
}
77+
7278
interface TsJestConfig$tsConfig$file {
7379
kind: 'file'
7480
value: string | undefined

0 commit comments

Comments
 (0)