Upgrading ts-jest 22 to 23
Breaking22.4.6 โ 23.10.5Breaking2Deprecated2New15Changed11Fixed30Other7
BreakingUpgrade verdict
2 breaking changes.
In plain terms
- Type checking is now on by default, which may slow down or change test runs compared to before.
- Tests now use the TypeScript language service by default instead of the previous default.
- Helper functions should now be imported from ts-jest/utils rather than directly from ts-jest.
- The old preprocessor.js file still works, but it is deprecated and should be replaced.
Must act 4 items need code or config changes
Requires Node.js >= 6 from 23.1.1 (none stated before).
Adds bs-logger 0.x, buffer-from 1.x, fast-json-stable-stringify 2.x, json5 2.x, make-error 1.x, mkdirp 0.x, resolve 1.x, semver ^5.5, yargs-parser 10.x.
Drops babel-core, babel-plugin-istanbul, babel-plugin-transform-es2015-modules-commonjs, babel-preset-jest, cpx, fs-extra, jest-config, lodash, pkg-dir, source-map-support, yargs.
Installs 17 packages in all (was 476).
What you must change
Breaking2
Makes typeCheck default to true, so the language service is used by default.
typeCheckLanguage service is used by default from now on.
Deprecations to plan for
Deprecated2
Deprecates importing helpers from ts-jest; import them from ts-jest/utils instead.
ts-jestts-jest/utilsAllows continued use of the old preprocessor.js but deprecates it.
preprocessor.jsAPI changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- added:
class ConfigSet - added:
constructor ConfigSet(jestConfig: jest.ProjectConfig, parentOptions?: TsJestGlobalOptions | undefined, parentLogger?: Logger) - added:
method ConfigSet.resolvePath(inputPath: string, { throwIfMissing, nodeResolve }?: { throwIfMissing?: boolean; nodeResolve?: boolean }): string - added:
readonly property ConfigSet.astTransformers: AstTransformerDesc[] - added:
readonly property ConfigSet.babel: BabelConfig | undefined - added:
readonly property ConfigSet.babelJestTransformer: BabelJestTransformer | undefined - added:
readonly property ConfigSet.cacheKey: string - added:
readonly property ConfigSet.compilerModule: TTypeScript - added:
readonly property ConfigSet.cwd: string - added:
readonly property ConfigSet.hooks: TsJestHooksMap - added:
readonly property ConfigSet.jest: jest.ProjectConfig - added:
readonly property ConfigSet.logger: Logger - added:
readonly property ConfigSet.overriddenCompilerOptions: Partial<CompilerOptions> - added:
readonly property ConfigSet.parentOptions?: TsJestGlobalOptions | undefined - added:
readonly property ConfigSet.projectDependencies: Record<string, string> - added:
readonly property ConfigSet.projectPackageJson: Record<string, any> - added:
readonly property ConfigSet.rootDir: string - added:
readonly property ConfigSet.shouldReportDiagnostic: (filePath: string) => boolean - added:
readonly property ConfigSet.shouldStringifyContent: (filePath: string) => boolean - added:
readonly property ConfigSet.tsCacheDir: string | undefined - added:
readonly property ConfigSet.tsCompiler: TsCompiler - added:
readonly property ConfigSet.tsCustomTransformers: CustomTransformers - added:
readonly property ConfigSet.tsJest: TsJestConfig - added:
readonly property ConfigSet.tsJestDigest: string - added:
readonly property ConfigSet.tsconfig: any - added:
readonly property ConfigSet.typescript: ParsedCommandLine - added:
readonly property ConfigSet.versions: Record<string, string>
- added:
function createJestPreset({ allowJs }?: CreateJestPresetOptions, from?: jest.InitialOptions): TsJestPresets - added:
interface CreateJestPresetOptions - added:
interface TsJestPresets - added:
property CreateJestPresetOptions.allowJs?: boolean - added:
property TsJestPresets.moduleFileExtensions: string[] - added:
property TsJestPresets.testMatch: string[] - added:
property TsJestPresets.transform: Record<string, string>
- added:
function getJestConfigPkg<TJestConfig>(logger: Logger): TJestConfig
- added:
const pathsToModuleNameMapper: (mapping: import('typescript').MapLike<string[]>, { prefix }?: { prefix?: string | undefined }) => { [key: string]: string } | undefined
- removed:
const tsJestModule: TsJestModule - removed:
export = tsJestModule - added:
const createJestPreset: typeof createJestPresetCore - added:
const digest: string - added:
const jestPreset: import('./config/create-jest-preset').TsJestPresets - added:
const mocked: typeof mockedCore - added:
const pathsToModuleNameMapper: (mapping: import('typescript').MapLike<string[]>, { prefix }?: { prefix?: string | undefined }) => { [key: string]: string } | undefined - added:
const version: string - added:
function createTransformer(baseConfig?: TsJestGlobalOptions): TsJestTransformer
- removed:
function install(filePath: string, fileContent: string): any
- removed:
index ConfigGlobals[key: string]: any - removed:
interface BabelTransformOptions extends BabelTransformOpts - removed:
interface ConfigGlobals - removed:
interface FullJestConfig - removed:
interface HasteConfig - removed:
interface TransformOptions - removed:
interface TsJestConfig - removed:
property BabelTransformOptions.cacheDirectory?: string - removed:
property FullJestConfig.automock: boolean - removed:
property FullJestConfig.browser: boolean - removed:
property FullJestConfig.cache: boolean - removed:
property FullJestConfig.cacheDirectory: Path - removed:
property FullJestConfig.clearMocks: boolean - removed:
property FullJestConfig.coveragePathIgnorePatterns: string[] - removed:
property FullJestConfig.cwd: Path - removed:
property FullJestConfig.detectLeaks: boolean - removed:
property FullJestConfig.displayName: string | null - removed:
property FullJestConfig.forceCoverageMatch: Glob[] - removed:
property FullJestConfig.globals: ConfigGlobals - removed:
property FullJestConfig.haste: HasteConfig - removed:
property FullJestConfig.moduleDirectories: string[] - removed:
property FullJestConfig.moduleFileExtensions: string[] - removed:
property FullJestConfig.moduleLoader: Path - removed:
property FullJestConfig.moduleNameMapper: Array<[string, string]> - removed:
property FullJestConfig.modulePathIgnorePatterns: string[] - removed:
property FullJestConfig.modulePaths: string[] - removed:
property FullJestConfig.name: string - removed:
property FullJestConfig.resetMocks: boolean - removed:
property FullJestConfig.resetModules: boolean - removed:
property FullJestConfig.resolver: Path | null - removed:
property FullJestConfig.restoreMocks: boolean - removed:
property FullJestConfig.rootDir: Path - removed:
property FullJestConfig.roots: Path[] - removed:
property FullJestConfig.runner: string - removed:
property FullJestConfig.setupFiles: Path[] - removed:
property FullJestConfig.setupTestFrameworkScriptFile: Path | null - removed:
property FullJestConfig.skipNodeResolution: boolean - removed:
property FullJestConfig.snapshotSerializers: Path[] - removed:
property FullJestConfig.testEnvironment: string - removed:
property FullJestConfig.testEnvironmentOptions: object - removed:
property FullJestConfig.testLocationInResults: boolean - removed:
property FullJestConfig.testMatch: Glob[] - removed:
property FullJestConfig.testPathIgnorePatterns: string[] - removed:
property FullJestConfig.testRegex: string - removed:
property FullJestConfig.testRunner: string - removed:
property FullJestConfig.testURL: string - removed:
property FullJestConfig.timers: 'real' | 'fake' - removed:
property FullJestConfig.transform: Array<[string, Path]> - removed:
property FullJestConfig.transformIgnorePatterns: Glob[] - removed:
property FullJestConfig.unmockedModulePathPatterns: string[] | null - removed:
property FullJestConfig.watchPathIgnorePatterns: string[] - removed:
property HasteConfig.defaultPlatform?: string | null - removed:
property HasteConfig.hasteImplModulePath?: string - removed:
property HasteConfig.platforms?: string[] - removed:
property HasteConfig.providesModuleNodeModules: string[] - removed:
property TransformOptions.instrument: boolean - removed:
property TsJestConfig.babelConfig?: BabelTransformOpts - removed:
property TsJestConfig.disableSourceMapSupport?: boolean - removed:
property TsJestConfig.enableInternalCache?: boolean - removed:
property TsJestConfig.enableTsDiagnostics?: boolean - removed:
property TsJestConfig.ignoreCoverageForAllDecorators?: boolean - removed:
property TsJestConfig.ignoreCoverageForDecorators?: boolean - removed:
property TsJestConfig.skipBabel?: boolean - removed:
property TsJestConfig.tsConfigFile?: string - removed:
property TsJestConfig.useBabelrc?: boolean - removed:
property TsJestConfig.useExperimentalLanguageServer?: boolean - removed:
type Glob = string - removed:
type JestConfig = Partial<FullJestConfig> - removed:
type Path = string - removed:
type PostProcessHook = (src: string, filePath: string, config: JestConfig, transformOptions: TransformOptions) => string
- removed:
function flushLogs(): void - removed:
function logOnce(...thingsToLog: any[]): void
- removed:
const getPostProcessHook: (tsCompilerOptions: CompilerOptions, jestConfig: Partial<FullJestConfig>, tsJestConfig: TsJestConfig) => PostProcessHook - removed:
function postProcessCode(compilerOptions: CompilerOptions, jestConfig: JestConfig, tsJestConfig: TsJestConfig, transformOptions: TransformOptions, transpiledText: string, filePath: string): string
- removed:
function getCacheKey(fileData: string, filePath: Path, jestConfigStr: string, transformOptions?: TransformOptions): string - removed:
function process(src: string, filePath: Path, jestConfig: JestConfig, transformOptions?: TransformOptions): string
- removed:
function getJestConfig(root: string): any
- removed:
function transpileIfTypescript(path: any, contents: any, config?: any, rootDir?: string): any
- removed:
function transpileTypescript(filePath: string, fileSrc: string, compilerOptions: ts.CompilerOptions, tsJestConfig: TsJestConfig): string
- added:
class TsJestTransformer implements jest.Transformer - added:
constructor TsJestTransformer(baseOptions?: TsJestGlobalOptions) - added:
method TsJestTransformer.configsFor(jestConfig: jest.ProjectConfig | string): ConfigSet - added:
method TsJestTransformer.getCacheKey(fileContent: string, filePath: string, jestConfigStr: string, transformOptions?: { instrument?: boolean; rootDir?: string }): string - added:
method TsJestTransformer.process(input: string, filePath: jest.Path, jestConfig: jest.ProjectConfig, transformOptions?: jest.TransformOptions): jest.TransformedSource | string - added:
readonly property TsJestTransformer.id: number - added:
readonly property TsJestTransformer.logger: Logger - added:
readonly property TsJestTransformer.options: TsJestGlobalOptions - added:
static readonly property TsJestTransformer.lastTransformerId: number
- added:
interface AstTransformerDesc - added:
interface IPackageJson - added:
interface TSCommon - added:
interface TsCompiler - added:
interface TsJestConfig - added:
interface TsJestGlobalOptions - added:
interface TsJestHooksMap - added:
interface TypeInfo - added:
method AstTransformerDesc.factory(cs: ConfigSet): TransformerFactory<SourceFile> - added:
method TsCompiler.compile(code: string, fileName: string, lineOffset?: number): string - added:
method TsCompiler.getTypeInfo(code: string, fileName: string, position: number): TypeInfo - added:
method TsJestHooksMap.afterProcess?(args: any[], result: string | jest.TransformedSource): string | jest.TransformedSource | void - added:
property AstTransformerDesc.name: string - added:
property AstTransformerDesc.version: number - added:
property IPackageJson.main: string - added:
property TSCommon.ModuleKind: typeof _ts.ModuleKind - added:
property TSCommon.ScriptSnapshot: typeof _ts.ScriptSnapshot - added:
property TSCommon.ScriptTarget: typeof _ts.ScriptTarget - added:
property TSCommon.createLanguageService: typeof _ts.createLanguageService - added:
property TSCommon.displayPartsToString: typeof _ts.displayPartsToString - added:
property TSCommon.findConfigFile: typeof _ts.findConfigFile - added:
property TSCommon.flattenDiagnosticMessageText: typeof _ts.flattenDiagnosticMessageText - added:
property TSCommon.formatDiagnostics: typeof _ts.formatDiagnostics - added:
property TSCommon.formatDiagnosticsWithColorAndContext: typeof _ts.formatDiagnosticsWithColorAndContext - added:
property TSCommon.getDefaultLibFilePath: typeof _ts.getDefaultLibFilePath - added:
property TSCommon.getPreEmitDiagnostics: typeof _ts.getPreEmitDiagnostics - added:
property TSCommon.parseJsonConfigFileContent: typeof _ts.parseJsonConfigFileContent - added:
property TSCommon.readConfigFile: typeof _ts.readConfigFile - added:
property TSCommon.sys: typeof _ts.sys - added:
property TSCommon.transpileModule: typeof _ts.transpileModule - added:
property TSCommon.version: typeof _ts.version - added:
property TsCompiler.cachedir: string | undefined - added:
property TsCompiler.cwd: string - added:
property TsCompiler.extensions: string[] - added:
property TsCompiler.ts: TSCommon - added:
property TsJestConfig.babelConfig: TsJestConfig$babelConfig - added:
property TsJestConfig.compiler: string - added:
property TsJestConfig.diagnostics: TsJestConfig$diagnostics - added:
property TsJestConfig.isolatedModules: boolean - added:
property TsJestConfig.stringifyContentPathRegex: TsJestConfig$stringifyContentPathRegex - added:
property TsJestConfig.transformers: string[] - added:
property TsJestConfig.tsConfig: TsJestConfig$tsConfig - added:
property TsJestGlobalOptions.astTransformers?: string[] - added:
property TsJestGlobalOptions.babelConfig?: boolean | string | BabelConfig - added:
property TsJestGlobalOptions.compiler?: string - added:
property TsJestGlobalOptions.diagnostics?: boolean | { pretty?: boolean; ignoreCodes?: number | string | Array<number | string>; pathRegex?: RegExp | string; warnOnly?: boolean } - added:
property TsJestGlobalOptions.isolatedModules?: boolean - added:
property TsJestGlobalOptions.stringifyContentPathRegex?: string | RegExp - added:
property TsJestGlobalOptions.tsConfig?: boolean | string | CompilerOptions - added:
property TypeInfo.comment: string - added:
property TypeInfo.name: string - added:
type BabelConfig = _babel.TransformOptions - added:
type BabelJestTransformer = { [K in Exclude<keyof jest.Transformer, 'createTransformer'>]: Exclude<jest.Transformer[K], undefined> } - added:
type TBabelCore = typeof _babel - added:
type TBabelJest = Required<jest.Transformer> - added:
type TTypeScript = typeof _ts
- added:
export { createJestPreset } from '../config/create-jest-preset' - added:
export { mocked } from './testing' - added:
export { pathsToModuleNameMapper } from '../config/paths-to-module-name-mapper'
- added:
function mocked<T>(item: T, deep: true): MaybeMockedDeep<T> - added:
function mocked<T>(item: T, deep?: false): MaybeMocked<T> - added:
type MaybeMocked<T> = T extends Function ? MockedFunction<T> : T extends object ? MockedObject<T> : T - added:
type MaybeMockedDeep<T> = T extends Function ? MockedFunctionDeep<T> : T extends object ? MockedObjectDeep<T> : T
- removed:
const getTSConfig: ((globals: any, rootDir?: string) => tsc.CompilerOptions) & _.MemoizedFunction - removed:
function cacheFile(jestConfig: JestConfig, filePath: string, src: string): void - removed:
function getTSJestConfig(globals: ConfigGlobals): TsJestConfig - removed:
function injectSourcemapHook(filePath: string, typeScriptCode: string, src: string): string - removed:
function mockGlobalTSConfigSchema(globals: any): { 'ts-jest': { tsConfigFile: string } } - removed:
function runTsDiagnostics(filePath: string, compilerOptions: tsc.CompilerOptions): void
- removed:
const tsJestModule: TsJestModule - removed:
export = tsJestModule
- added:
const defaults: TsJestPresets - added:
const jsWithBabel: TsJestPresets - added:
const jsWithTs: TsJestPresets
- added:
export * from '../dist/util/exported'