UNPKG

ts-jest

Version:

A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript

119 lines (118 loc) 4.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.backportTsJestDebugEnvVar = exports.backportJestConfig = void 0; const bs_logger_1 = require("bs-logger"); const messages_1 = require("./messages"); const context = { [bs_logger_1.LogContexts.namespace]: 'backports' }; /** * @internal */ const backportJestConfig = (logger, config) => { logger.debug({ ...context, config }, 'backporting config'); // eslint-disable-next-line @typescript-eslint/no-explicit-any const { globals = {} } = (config || {}); const { 'ts-jest': tsJest = {} } = globals; // eslint-disable-next-line @typescript-eslint/no-explicit-any const mergeTsJest = {}; let hadWarnings = false; const warnConfig = (oldPath, newPath, note) => { hadWarnings = true; logger.warn(context, (0, messages_1.interpolate)(note ? "\"[jest-config].{{oldPath}}\" is deprecated, use \"[jest-config].{{newPath}}\" instead.\n \u21B3 {{note}}" /* Deprecations.ConfigOptionWithNote */ : "\"[jest-config].{{oldPath}}\" is deprecated, use \"[jest-config].{{newPath}}\" instead." /* Deprecations.ConfigOption */, { oldPath, newPath, note, })); }; if ('__TS_CONFIG__' in globals) { warnConfig('globals.__TS_CONFIG__', 'globals.ts-jest.tsconfig'); if (typeof globals.__TS_CONFIG__ === 'object') { mergeTsJest.tsconfig = globals.__TS_CONFIG__; } delete globals.__TS_CONFIG__; } if ('__TRANSFORM_HTML__' in globals) { warnConfig('globals.__TRANSFORM_HTML__', 'globals.ts-jest.stringifyContentPathRegex'); if (globals.__TRANSFORM_HTML__) { mergeTsJest.stringifyContentPathRegex = '\\.html?$'; } delete globals.__TRANSFORM_HTML__; } if ('typeCheck' in tsJest) { warnConfig('globals.ts-jest.typeCheck', 'globals.ts-jest.isolatedModules'); mergeTsJest.isolatedModules = !tsJest.typeCheck; delete tsJest.typeCheck; } if ('tsConfigFile' in tsJest) { warnConfig('globals.ts-jest.tsConfigFile', 'globals.ts-jest.tsconfig'); if (tsJest.tsConfigFile) { mergeTsJest.tsconfig = tsJest.tsConfigFile; } delete tsJest.tsConfigFile; } if ('tsConfig' in tsJest) { warnConfig('globals.ts-jest.tsConfig', 'globals.ts-jest.tsconfig'); if (tsJest.tsConfig) { mergeTsJest.tsconfig = tsJest.tsConfig; } delete tsJest.tsConfig; } if ('enableTsDiagnostics' in tsJest) { warnConfig('globals.ts-jest.enableTsDiagnostics', 'globals.ts-jest.diagnostics'); if (tsJest.enableTsDiagnostics) { mergeTsJest.diagnostics = { warnOnly: true }; if (typeof tsJest.enableTsDiagnostics === 'string') mergeTsJest.diagnostics.exclude = [tsJest.enableTsDiagnostics]; } else { mergeTsJest.diagnostics = false; } delete tsJest.enableTsDiagnostics; } if ('useBabelrc' in tsJest) { warnConfig('globals.ts-jest.useBabelrc', 'globals.ts-jest.babelConfig', "See `babel-jest` related issue: https://github.com/facebook/jest/issues/3845" /* Deprecations.ConfigOptionUseBabelRcNote */); if (tsJest.useBabelrc != null) { mergeTsJest.babelConfig = tsJest.useBabelrc ? true : {}; } delete tsJest.useBabelrc; } if ('skipBabel' in tsJest) { warnConfig('globals.ts-jest.skipBabel', 'globals.ts-jest.babelConfig'); if (tsJest.skipBabel === false && !mergeTsJest.babelConfig) { mergeTsJest.babelConfig = true; } delete tsJest.skipBabel; } // if we had some warnings we can inform the user about the CLI tool if (hadWarnings) { logger.warn(context, "Your Jest configuration is outdated. Use the CLI to help migrating it: ts-jest config:migrate <config-file>." /* Helps.MigrateConfigUsingCLI */); } return { // eslint-disable-next-line @typescript-eslint/no-explicit-any ...config, globals: { ...globals, 'ts-jest': { ...mergeTsJest, ...tsJest, }, }, }; }; exports.backportJestConfig = backportJestConfig; /** * @internal */ const backportTsJestDebugEnvVar = (logger) => { if ('TS_JEST_DEBUG' in process.env) { const shouldLog = !/^\s*(?:0|f(?:alse)?|no?|disabled?|off|)\s*$/i.test(process.env.TS_JEST_DEBUG || ''); delete process.env.TS_JEST_DEBUG; if (shouldLog) { process.env.TS_JEST_LOG = 'ts-jest.log,stderr:warn'; } logger.warn(context, (0, messages_1.interpolate)("Using env. var \"{{old}}\" is deprecated, use \"{{new}}\" instead." /* Deprecations.EnvVar */, { old: 'TS_JEST_DEBUG', new: 'TS_JEST_LOG', })); } }; exports.backportTsJestDebugEnvVar = backportTsJestDebugEnvVar;