From 94a6752c67bc061eb4b8fc192b3a28c38d33eb65 Mon Sep 17 00:00:00 2001 From: Tom Mrazauskas Date: Sun, 6 Feb 2022 03:36:43 +0200 Subject: [PATCH 1/7] fix(expect): add type definitions for asymmetric `closeTo` matcher (#12304) --- CHANGELOG.md | 2 ++ packages/expect/src/types.ts | 1 + packages/jest-types/__typetests__/expect.test.ts | 11 +++++++++++ 3 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad40bf59222f..38e17f9242ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Fixes +- `[expect]` Add type definitions for asymmetric `closeTo` matcher ([#12304](https://github.com/facebook/jest/pull/12304)) + ### Chore & Maintenance ### Performance diff --git a/packages/expect/src/types.ts b/packages/expect/src/types.ts index 53286977a83a..6b1d1b8560b0 100644 --- a/packages/expect/src/types.ts +++ b/packages/expect/src/types.ts @@ -74,6 +74,7 @@ interface AsymmetricMatchers { any(sample: unknown): AsymmetricMatcher; anything(): AsymmetricMatcher; arrayContaining(sample: Array): AsymmetricMatcher; + closeTo(sample: number, precision?: number): AsymmetricMatcher; objectContaining(sample: Record): AsymmetricMatcher; stringContaining(sample: string): AsymmetricMatcher; stringMatching(sample: string | RegExp): AsymmetricMatcher; diff --git a/packages/jest-types/__typetests__/expect.test.ts b/packages/jest-types/__typetests__/expect.test.ts index 3f6eae703433..37a6f9efb136 100644 --- a/packages/jest-types/__typetests__/expect.test.ts +++ b/packages/jest-types/__typetests__/expect.test.ts @@ -25,6 +25,17 @@ expectType(expect(['B']).toEqual(expect.not.arrayContaining(['A']))); expectError(expect(['A']).toEqual(expect.not.arrayContaining('A'))); expectError(expect(['A']).toEqual(expect.not.arrayContaining())); +expectType(expect(0.1 + 0.2).toEqual(expect.closeTo(0.3))); +expectType(expect(0.1 + 0.2).toEqual(expect.closeTo(0.3, 5))); +expectError(expect(0.1 + 0.2).toEqual(expect.closeTo('three'))); +expectError(expect(0.1 + 0.2).toEqual(expect.closeTo(0.3, false))); +expectError(expect(0.1 + 0.2).toEqual(expect.closeTo())); +expectType(expect(0.1 + 0.2).toEqual(expect.not.closeTo(0.3))); +expectType(expect(0.1 + 0.2).toEqual(expect.not.closeTo(0.3, 5))); +expectError(expect(0.1 + 0.2).toEqual(expect.not.closeTo('three'))); +expectError(expect(0.1 + 0.2).toEqual(expect.not.closeTo(0.3, false))); +expectError(expect(0.1 + 0.2).toEqual(expect.not.closeTo())); + expectType(expect({a: 1}).toEqual(expect.objectContaining({a: 1}))); expectError(expect({a: 1}).toEqual(expect.objectContaining(1))); expectError(expect({a: 1}).toEqual(expect.objectContaining())); From 5a95898bc1172d26883df92f8fc8bbc6b7fe4296 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sun, 6 Feb 2022 10:23:36 +0100 Subject: [PATCH 2/7] feat(pretty-format): expose `ConvertAnsi` plugin (#12308) --- CHANGELOG.md | 2 ++ jest.config.js | 1 + packages/pretty-format/package.json | 3 ++- scripts/buildUtils.js | 3 +++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38e17f9242ff..9eb466ffdd77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### Features +- `[pretty-format]` Expose `ConvertAnsi` plugin ([#12308](https://github.com/facebook/jest/pull/12308)) + ### Fixes - `[expect]` Add type definitions for asymmetric `closeTo` matcher ([#12304](https://github.com/facebook/jest/pull/12304)) diff --git a/jest.config.js b/jest.config.js index 98103ffa7447..15d7bd48491b 100644 --- a/jest.config.js +++ b/jest.config.js @@ -35,6 +35,7 @@ module.exports = { escapeString: false, }, snapshotSerializers: [ + // change to require.resolve('pretty-format/ConvertAnsi') when we drop Node 10 '/packages/pretty-format/build/plugins/ConvertAnsi.js', ], testPathIgnorePatterns: [ diff --git a/packages/pretty-format/package.json b/packages/pretty-format/package.json index 3a5638554d6b..144ac1c2078a 100644 --- a/packages/pretty-format/package.json +++ b/packages/pretty-format/package.json @@ -15,7 +15,8 @@ "types": "./build/index.d.ts", "default": "./build/index.js" }, - "./package.json": "./package.json" + "./package.json": "./package.json", + "./ConvertAnsi": "./build/plugins/ConvertAnsi.js" }, "author": "James Kyle ", "dependencies": { diff --git a/scripts/buildUtils.js b/scripts/buildUtils.js index d2ba6ba08fc6..5f69966efaf1 100644 --- a/scripts/buildUtils.js +++ b/scripts/buildUtils.js @@ -65,6 +65,9 @@ module.exports.getPackages = function getPackages() { './build/utils': './build/utils.js', } : {}), + ...(pkg.name === 'pretty-format' + ? {'./ConvertAnsi': './build/plugins/ConvertAnsi.js'} + : {}), }, `Package ${pkg.name} does not export correct files`, ); From dd299789dd39e1ecf1eecccd8e0248472bbb9109 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 7 Feb 2022 00:35:12 +0100 Subject: [PATCH 3/7] chore: read package.json less during build (#12310) --- .eslintrc.js | 7 +------ scripts/build.js | 2 +- scripts/buildTs.js | 33 +++++++++++++++++++-------------- scripts/buildUtils.js | 6 +++--- scripts/watch.js | 2 +- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 3608aed77d00..c3e7307c6eaf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,15 +5,10 @@ * LICENSE file in the root directory of this source tree. */ -const {sync: readPkg} = require('read-pkg'); const {getPackages} = require('./scripts/buildUtils'); const internalPackages = getPackages() - .map(packageDir => { - const pkg = readPkg({cwd: packageDir}); - - return pkg.name; - }) + .map(({pkg}) => pkg.name) .sort(); module.exports = { diff --git a/scripts/build.js b/scripts/build.js index ac0f2255e0a3..576474296a13 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -142,5 +142,5 @@ if (files.length) { } else { const packages = getPackages(); process.stdout.write(chalk.inverse(' Building packages \n')); - packages.forEach(buildNodePackage); + packages.map(({packageDir}) => packageDir).forEach(buildNodePackage); } diff --git a/scripts/buildTs.js b/scripts/buildTs.js index adb7cfc9fa00..035623289b76 100644 --- a/scripts/buildTs.js +++ b/scripts/buildTs.js @@ -25,7 +25,7 @@ const readFilePromise = util.promisify(fs.readFile); const packages = getPackages(); const packagesWithTs = packages.filter(p => - fs.existsSync(path.resolve(p, 'tsconfig.json')), + fs.existsSync(path.resolve(p.packageDir, 'tsconfig.json')), ); const {stdout: allWorkspacesString} = await execa('yarn', [ @@ -37,14 +37,12 @@ const readFilePromise = util.promisify(fs.readFile); const workspacesWithTs = new Map( JSON.parse(`[${allWorkspacesString.split('\n').join(',')}]`) .filter(({location}) => - packagesWithTs.some(pkg => pkg.endsWith(location)), + packagesWithTs.some(({packageDir}) => packageDir.endsWith(location)), ) .map(({location, name}) => [name, location]), ); - packagesWithTs.forEach(pkgDir => { - const pkg = require(`${pkgDir}/package.json`); - + packagesWithTs.forEach(({packageDir, pkg}) => { assert.ok(pkg.types, `Package ${pkg.name} is missing \`types\` field`); assert.strictEqual( @@ -72,13 +70,18 @@ const readFilePromise = util.promisify(fs.readFile); return true; }) .map(dep => - path.relative(pkgDir, `${pkgDir}/../../${workspacesWithTs.get(dep)}`), + path.relative( + packageDir, + `${packageDir}/../../${workspacesWithTs.get(dep)}`, + ), ) .sort(); if (jestDependenciesOfPackage.length > 0) { const tsConfig = JSON.parse( - stripJsonComments(fs.readFileSync(`${pkgDir}/tsconfig.json`, 'utf8')), + stripJsonComments( + fs.readFileSync(`${packageDir}/tsconfig.json`, 'utf8'), + ), ); const references = tsConfig.references.map(({path}) => path); @@ -95,7 +98,12 @@ const readFilePromise = util.promisify(fs.readFile); } }); - const args = ['tsc', '-b', ...packagesWithTs, ...process.argv.slice(2)]; + const args = [ + 'tsc', + '-b', + ...packagesWithTs.map(({packageDir}) => packageDir), + ...process.argv.slice(2), + ]; console.log(chalk.inverse(' Building TypeScript definition files ')); @@ -119,11 +127,10 @@ const readFilePromise = util.promisify(fs.readFile); try { await Promise.all( packagesWithTs.map( - throat(cpus, async pkgDir => { - const buildDir = path.resolve(pkgDir, 'build/**/*.d.ts'); - const ts3dot4 = path.resolve(pkgDir, 'build/ts3.4'); + throat(cpus, async ({packageDir, pkg}) => { + const buildDir = path.resolve(packageDir, 'build/**/*.d.ts'); - const globbed = await globby([buildDir, `!${ts3dot4}`]); + const globbed = await globby([buildDir]); const files = await Promise.all( globbed.map(file => @@ -164,8 +171,6 @@ const readFilePromise = util.promisify(fs.readFile); ); if (filesWithNodeReference.length > 0) { - const pkg = require(pkgDir + '/package.json'); - assert.ok( pkg.dependencies, `Package \`${pkg.name}\` is missing \`dependencies\``, diff --git a/scripts/buildUtils.js b/scripts/buildUtils.js index 5f69966efaf1..6a8b79298f61 100644 --- a/scripts/buildUtils.js +++ b/scripts/buildUtils.js @@ -28,7 +28,7 @@ module.exports.getPackages = function getPackages() { const nodeEngineRequirement = rootPackage.engines.node; - packages.forEach(packageDir => { + return packages.map(packageDir => { const pkg = readPkg({cwd: packageDir}); assert.ok(pkg.engines, `Engine requirement in ${pkg.name} should exist`); @@ -83,9 +83,9 @@ module.exports.getPackages = function getPackages() { } }); } - }); - return packages; + return {packageDir, pkg}; + }); }; module.exports.adjustToTerminalWidth = function adjustToTerminalWidth(str) { diff --git a/scripts/watch.js b/scripts/watch.js index 9c340b084c84..8c93185108fd 100644 --- a/scripts/watch.js +++ b/scripts/watch.js @@ -30,7 +30,7 @@ const rebuild = filename => filesToBuild.set(filename, true); chokidar .watch( - getPackages().map(p => path.resolve(p, 'src')), + getPackages().map(p => path.resolve(p.packageDir, 'src')), { ignoreInitial: true, ignored: /(^|[\/\\])\../, // ignore dotfiles From e0f3d166f3d7086e3588df4bfbf863dd15daa995 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 7 Feb 2022 00:51:20 +0100 Subject: [PATCH 4/7] chore: avoid using anonymous default exports (#12313) --- .eslintrc.js | 12 ++ CHANGELOG.md | 2 + packages/babel-plugin-jest-hoist/src/index.ts | 172 +++++++++--------- packages/diff-sequences/src/index.ts | 6 +- .../legacy-code-todo-rewrite/jestExpect.ts | 6 +- packages/jest-cli/src/init/index.ts | 6 +- packages/jest-config/src/resolveConfigPath.ts | 6 +- packages/jest-console/src/getConsoleOutput.ts | 6 +- .../jest-core/src/getChangedFilesPromise.ts | 6 +- packages/jest-core/src/lib/createContext.ts | 16 +- .../src/lib/handleDeprecationWarnings.ts | 7 +- .../jest-core/src/lib/updateGlobalConfig.ts | 6 +- packages/jest-core/src/runGlobalHook.ts | 6 +- .../src/index.ts | 6 +- packages/jest-each/src/bind.ts | 12 +- packages/jest-each/src/table/array.ts | 7 +- packages/jest-each/src/table/template.ts | 6 +- packages/jest-jasmine2/src/each.ts | 4 +- packages/jest-jasmine2/src/jasmine/Env.ts | 2 +- packages/jest-jasmine2/src/jestExpect.ts | 4 +- .../jest-jasmine2/src/setup_jest_globals.ts | 6 +- packages/jest-leak-detector/src/index.ts | 2 +- .../src/generateEmptyCoverage.ts | 2 +- .../jest-reporters/src/getResultHeader.ts | 6 +- .../jest-reporters/src/getSnapshotStatus.ts | 6 +- .../jest-reporters/src/getSnapshotSummary.ts | 6 +- packages/jest-source-map/src/getCallsite.ts | 6 +- packages/jest-util/src/createProcessObject.ts | 2 +- .../jest-util/src/installCommonGlobals.ts | 2 +- packages/jest-util/src/setGlobal.ts | 6 +- .../jest-util/src/testPathPatternToRegExp.ts | 6 +- packages/jest-watcher/src/lib/colorize.ts | 15 +- .../src/lib/formatTestNameByPattern.ts | 8 +- 33 files changed, 208 insertions(+), 163 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index c3e7307c6eaf..acdbb5c000e7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -180,6 +180,18 @@ module.exports = { files: 'packages/**/*.ts', rules: { '@typescript-eslint/explicit-module-boundary-types': 'error', + 'import/no-anonymous-default-export': [ + 'error', + { + allowAnonymousClass: false, + allowAnonymousFunction: false, + allowArray: false, + allowArrowFunction: false, + allowCallExpression: false, + allowLiteral: false, + allowObject: true, + }, + ], }, }, { diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb466ffdd77..e1f8cec7abe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ ### Chore & Maintenance +- `[*]` Avoid anonymous default exports ([#12313](https://github.com/facebook/jest/pull/12313)) + ### Performance ## 27.5.0 diff --git a/packages/babel-plugin-jest-hoist/src/index.ts b/packages/babel-plugin-jest-hoist/src/index.ts index cc3aeba8431a..0d47bb6ac05b 100644 --- a/packages/babel-plugin-jest-hoist/src/index.ts +++ b/packages/babel-plugin-jest-hoist/src/index.ts @@ -268,102 +268,106 @@ const extractJestObjExprIfHoistable = ( }; /* eslint-disable sort-keys */ -export default (): PluginObj<{ +export default function jestHoist(): PluginObj<{ declareJestObjGetterIdentifier: () => Identifier; jestObjGetterIdentifier?: Identifier; -}> => ({ - pre({path: program}) { - this.declareJestObjGetterIdentifier = () => { - if (this.jestObjGetterIdentifier) { - return this.jestObjGetterIdentifier; - } +}> { + return { + pre({path: program}) { + this.declareJestObjGetterIdentifier = () => { + if (this.jestObjGetterIdentifier) { + return this.jestObjGetterIdentifier; + } - this.jestObjGetterIdentifier = - program.scope.generateUidIdentifier('getJestObj'); + this.jestObjGetterIdentifier = + program.scope.generateUidIdentifier('getJestObj'); - program.unshiftContainer('body', [ - createJestObjectGetter({ - GETTER_NAME: this.jestObjGetterIdentifier.name, - JEST_GLOBALS_MODULE_JEST_EXPORT_NAME, - JEST_GLOBALS_MODULE_NAME, - }), - ]); + program.unshiftContainer('body', [ + createJestObjectGetter({ + GETTER_NAME: this.jestObjGetterIdentifier.name, + JEST_GLOBALS_MODULE_JEST_EXPORT_NAME, + JEST_GLOBALS_MODULE_NAME, + }), + ]); - return this.jestObjGetterIdentifier; - }; - }, - visitor: { - ExpressionStatement(exprStmt) { - const jestObjExpr = extractJestObjExprIfHoistable( - exprStmt.get('expression'), - ); - if (jestObjExpr) { - jestObjExpr.replaceWith( - callExpression(this.declareJestObjGetterIdentifier(), []), + return this.jestObjGetterIdentifier; + }; + }, + visitor: { + ExpressionStatement(exprStmt) { + const jestObjExpr = extractJestObjExprIfHoistable( + exprStmt.get('expression'), ); - } + if (jestObjExpr) { + jestObjExpr.replaceWith( + callExpression(this.declareJestObjGetterIdentifier(), []), + ); + } + }, }, - }, - // in `post` to make sure we come after an import transform and can unshift above the `require`s - post({path: program}) { - const self = this; - - visitBlock(program); - program.traverse({BlockStatement: visitBlock}); - - function visitBlock(block: NodePath | NodePath) { - // use a temporary empty statement instead of the real first statement, which may itself be hoisted - const [varsHoistPoint, callsHoistPoint] = block.unshiftContainer('body', [ - emptyStatement(), - emptyStatement(), - ]); - block.traverse({ - CallExpression: visitCallExpr, - VariableDeclarator: visitVariableDeclarator, - // do not traverse into nested blocks, or we'll hoist calls in there out to this block - blacklist: ['BlockStatement'], - }); - callsHoistPoint.remove(); - varsHoistPoint.remove(); - - function visitCallExpr(callExpr: NodePath) { - const { - node: {callee}, - } = callExpr; - if ( - isIdentifier(callee) && - callee.name === self.jestObjGetterIdentifier?.name - ) { - const mockStmt = callExpr.getStatementParent(); - - if (mockStmt) { - const mockStmtParent = mockStmt.parentPath; - if (mockStmtParent.isBlock()) { - const mockStmtNode = mockStmt.node; - mockStmt.remove(); - callsHoistPoint.insertBefore(mockStmtNode); + // in `post` to make sure we come after an import transform and can unshift above the `require`s + post({path: program}) { + const self = this; + + visitBlock(program); + program.traverse({BlockStatement: visitBlock}); + + function visitBlock(block: NodePath | NodePath) { + // use a temporary empty statement instead of the real first statement, which may itself be hoisted + const [varsHoistPoint, callsHoistPoint] = block.unshiftContainer( + 'body', + [emptyStatement(), emptyStatement()], + ); + block.traverse({ + CallExpression: visitCallExpr, + VariableDeclarator: visitVariableDeclarator, + // do not traverse into nested blocks, or we'll hoist calls in there out to this block + blacklist: ['BlockStatement'], + }); + callsHoistPoint.remove(); + varsHoistPoint.remove(); + + function visitCallExpr(callExpr: NodePath) { + const { + node: {callee}, + } = callExpr; + if ( + isIdentifier(callee) && + callee.name === self.jestObjGetterIdentifier?.name + ) { + const mockStmt = callExpr.getStatementParent(); + + if (mockStmt) { + const mockStmtParent = mockStmt.parentPath; + if (mockStmtParent.isBlock()) { + const mockStmtNode = mockStmt.node; + mockStmt.remove(); + callsHoistPoint.insertBefore(mockStmtNode); + } } } } - } - function visitVariableDeclarator(varDecl: NodePath) { - if (hoistedVariables.has(varDecl.node)) { - // should be assert function, but it's not. So let's cast below - varDecl.parentPath.assertVariableDeclaration(); - - const {kind, declarations} = varDecl.parent as VariableDeclaration; - if (declarations.length === 1) { - varDecl.parentPath.remove(); - } else { - varDecl.remove(); + function visitVariableDeclarator( + varDecl: NodePath, + ) { + if (hoistedVariables.has(varDecl.node)) { + // should be assert function, but it's not. So let's cast below + varDecl.parentPath.assertVariableDeclaration(); + + const {kind, declarations} = varDecl.parent as VariableDeclaration; + if (declarations.length === 1) { + varDecl.parentPath.remove(); + } else { + varDecl.remove(); + } + varsHoistPoint.insertBefore( + variableDeclaration(kind, [varDecl.node]), + ); } - varsHoistPoint.insertBefore( - variableDeclaration(kind, [varDecl.node]), - ); } } - } - }, -}); + }, + }; +} /* eslint-enable */ diff --git a/packages/diff-sequences/src/index.ts b/packages/diff-sequences/src/index.ts index cdbfe305b574..deabc2a13fc8 100644 --- a/packages/diff-sequences/src/index.ts +++ b/packages/diff-sequences/src/index.ts @@ -779,12 +779,12 @@ const validateCallback = (name: string, arg: unknown) => { // Given lengths of sequences and input function to compare items at indexes, // return by output function the number of adjacent items and starting indexes // of each common subsequence. -export default ( +export default function diffSequence( aLength: number, bLength: number, isCommon: IsCommon, foundSubsequence: FoundSubsequence, -): void => { +): void { validateLength('aLength', aLength); validateLength('bLength', bLength); validateCallback('isCommon', isCommon); @@ -869,4 +869,4 @@ export default ( foundSubsequence(nCommonR, aEnd, bEnd); } } -}; +} diff --git a/packages/jest-circus/src/legacy-code-todo-rewrite/jestExpect.ts b/packages/jest-circus/src/legacy-code-todo-rewrite/jestExpect.ts index a13ce01bd3a8..aacd1208b954 100644 --- a/packages/jest-circus/src/legacy-code-todo-rewrite/jestExpect.ts +++ b/packages/jest-circus/src/legacy-code-todo-rewrite/jestExpect.ts @@ -17,7 +17,9 @@ import { export type Expect = typeof expect; -export default (config: Pick): Expect => { +export default function jestExpect( + config: Pick, +): Expect { expect.setState({expand: config.expand}); expect.extend({ toMatchInlineSnapshot, @@ -29,4 +31,4 @@ export default (config: Pick): Expect => { expect.addSnapshotSerializer = addSerializer; return expect; -}; +} diff --git a/packages/jest-cli/src/init/index.ts b/packages/jest-cli/src/init/index.ts index 700be87b8728..1d7a6e382c26 100644 --- a/packages/jest-cli/src/init/index.ts +++ b/packages/jest-cli/src/init/index.ts @@ -37,9 +37,9 @@ type PromptsResults = { const getConfigFilename = (ext: string) => JEST_CONFIG_BASE_NAME + ext; -export default async ( +export default async function init( rootDir: string = tryRealpath(process.cwd()), -): Promise => { +): Promise { // prerequisite checks const projectPackageJsonPath: string = path.join(rootDir, PACKAGE_JSON); @@ -152,4 +152,4 @@ export default async ( console.log( `📝 Configuration file created at ${chalk.cyan(jestConfigPath)}`, ); -}; +} diff --git a/packages/jest-config/src/resolveConfigPath.ts b/packages/jest-config/src/resolveConfigPath.ts index 243a3616ec81..d47cd879aa92 100644 --- a/packages/jest-config/src/resolveConfigPath.ts +++ b/packages/jest-config/src/resolveConfigPath.ts @@ -21,11 +21,11 @@ const isFile = (filePath: Config.Path) => const getConfigFilename = (ext: string) => JEST_CONFIG_BASE_NAME + ext; -export default ( +export default function resolveConfigPath( pathToResolve: Config.Path, cwd: Config.Path, skipMultipleConfigWarning = false, -): Config.Path => { +): Config.Path { if (!path.isAbsolute(cwd)) { throw new Error(`"cwd" must be an absolute path. cwd: ${cwd}`); } @@ -61,7 +61,7 @@ export default ( cwd, skipMultipleConfigWarning, ); -}; +} const resolveConfigPathByTraversing = ( pathToResolve: Config.Path, diff --git a/packages/jest-console/src/getConsoleOutput.ts b/packages/jest-console/src/getConsoleOutput.ts index 9ff9d15ab95c..98764ca5ab60 100644 --- a/packages/jest-console/src/getConsoleOutput.ts +++ b/packages/jest-console/src/getConsoleOutput.ts @@ -14,11 +14,11 @@ import { } from 'jest-message-util'; import type {ConsoleBuffer} from './types'; -export default ( +export default function getConsoleOutput( buffer: ConsoleBuffer, config: StackTraceConfig, globalConfig: Config.GlobalConfig, -): string => { +): string { const TITLE_INDENT = globalConfig.verbose ? ' ' : ' '; const CONSOLE_INDENT = TITLE_INDENT + ' '; @@ -64,4 +64,4 @@ export default ( }, ''); return logEntries.trimRight() + '\n'; -}; +} diff --git a/packages/jest-core/src/getChangedFilesPromise.ts b/packages/jest-core/src/getChangedFilesPromise.ts index c96ea986be26..b628bfee04b7 100644 --- a/packages/jest-core/src/getChangedFilesPromise.ts +++ b/packages/jest-core/src/getChangedFilesPromise.ts @@ -10,10 +10,10 @@ import type {Config} from '@jest/types'; import {ChangedFilesPromise, getChangedFilesForRoots} from 'jest-changed-files'; import {formatExecError} from 'jest-message-util'; -export default ( +export default function getChangedFilesPromise( globalConfig: Config.GlobalConfig, configs: Array, -): ChangedFilesPromise | undefined => { +): ChangedFilesPromise | undefined { if (globalConfig.onlyChanged) { const allRootsForAllProjects = configs.reduce>( (roots, config) => { @@ -41,4 +41,4 @@ export default ( } return undefined; -}; +} diff --git a/packages/jest-core/src/lib/createContext.ts b/packages/jest-core/src/lib/createContext.ts index 0cd6c5b23677..0b5e3a7c8444 100644 --- a/packages/jest-core/src/lib/createContext.ts +++ b/packages/jest-core/src/lib/createContext.ts @@ -9,12 +9,14 @@ import type {Config} from '@jest/types'; import type {HasteMapObject} from 'jest-haste-map'; import Runtime, {Context} from 'jest-runtime'; -export default ( +export default function createContext( config: Config.ProjectConfig, {hasteFS, moduleMap}: HasteMapObject, -): Context => ({ - config, - hasteFS, - moduleMap, - resolver: Runtime.createResolver(config, moduleMap), -}); +): Context { + return { + config, + hasteFS, + moduleMap, + resolver: Runtime.createResolver(config, moduleMap), + }; +} diff --git a/packages/jest-core/src/lib/handleDeprecationWarnings.ts b/packages/jest-core/src/lib/handleDeprecationWarnings.ts index 83eea7aaf967..20571ba4cfd1 100644 --- a/packages/jest-core/src/lib/handleDeprecationWarnings.ts +++ b/packages/jest-core/src/lib/handleDeprecationWarnings.ts @@ -8,11 +8,11 @@ import chalk = require('chalk'); import {KEYS} from 'jest-watcher'; -export default ( +export default function handleDeprecationWarnings( pipe: NodeJS.WriteStream, stdin: NodeJS.ReadStream = process.stdin, -): Promise => - new Promise((resolve, reject) => { +): Promise { + return new Promise((resolve, reject) => { if (typeof stdin.setRawMode === 'function') { const messages = [ chalk.red('There are deprecation warnings.\n'), @@ -39,3 +39,4 @@ export default ( resolve(); } }); +} diff --git a/packages/jest-core/src/lib/updateGlobalConfig.ts b/packages/jest-core/src/lib/updateGlobalConfig.ts index 3e28231108da..4ba644d6bee9 100644 --- a/packages/jest-core/src/lib/updateGlobalConfig.ts +++ b/packages/jest-core/src/lib/updateGlobalConfig.ts @@ -13,10 +13,10 @@ type ExtraConfigOptions = Partial< Pick >; -export default ( +export default function updateGlobalConfig( globalConfig: Config.GlobalConfig, options: AllowedConfigOptions & ExtraConfigOptions = {}, -): Config.GlobalConfig => { +): Config.GlobalConfig { const newConfig: Config.GlobalConfig = {...globalConfig}; if (options.mode === 'watch') { @@ -112,4 +112,4 @@ export default ( } return Object.freeze(newConfig); -}; +} diff --git a/packages/jest-core/src/runGlobalHook.ts b/packages/jest-core/src/runGlobalHook.ts index 2c635a2ecdb6..60de3085592e 100644 --- a/packages/jest-core/src/runGlobalHook.ts +++ b/packages/jest-core/src/runGlobalHook.ts @@ -11,7 +11,7 @@ import {createScriptTransformer} from '@jest/transform'; import type {Config} from '@jest/types'; import prettyFormat from 'pretty-format'; -export default async ({ +export default async function runGlobalHook({ allTests, globalConfig, moduleName, @@ -19,7 +19,7 @@ export default async ({ allTests: Array; globalConfig: Config.GlobalConfig; moduleName: 'globalSetup' | 'globalTeardown'; -}): Promise => { +}): Promise { const globalModulePaths = new Set( allTests.map(test => test.context.config[moduleName]), ); @@ -74,4 +74,4 @@ export default async ({ } } } -}; +} diff --git a/packages/jest-create-cache-key-function/src/index.ts b/packages/jest-create-cache-key-function/src/index.ts index 63f9fbd3add8..fe042dfccb89 100644 --- a/packages/jest-create-cache-key-function/src/index.ts +++ b/packages/jest-create-cache-key-function/src/index.ts @@ -73,7 +73,9 @@ function getCacheKeyFunction(globalCacheKey: string): GetCacheKeyFunction { }; } -export default ( +export default function createCacheKey( files: Array = [], values: Array = [], -): GetCacheKeyFunction => getCacheKeyFunction(getGlobalCacheKey(files, values)); +): GetCacheKeyFunction { + return getCacheKeyFunction(getGlobalCacheKey(files, values)); +} diff --git a/packages/jest-each/src/bind.ts b/packages/jest-each/src/bind.ts index 81e65ce6d14d..6b6a7b8b27a4 100644 --- a/packages/jest-each/src/bind.ts +++ b/packages/jest-each/src/bind.ts @@ -28,11 +28,14 @@ type GlobalCallback = ( timeout?: number, ) => void; -export default ( - cb: GlobalCallback, - supportsDone: boolean = true, +export default function bind( + cb: GlobalCallback, + supportsDone: boolean = true, +) { + return ( + table: Global.EachTable, + ...taggedTemplateData: Global.TemplateData ) => - (table: Global.EachTable, ...taggedTemplateData: Global.TemplateData) => function eachBind( title: string, test: Global.EachTestFn, @@ -57,6 +60,7 @@ export default ( }); } }; +} const isArrayTable = (data: Global.TemplateData) => data.length === 0; diff --git a/packages/jest-each/src/table/array.ts b/packages/jest-each/src/table/array.ts index deef22c46e38..a4fb9d5d0c63 100644 --- a/packages/jest-each/src/table/array.ts +++ b/packages/jest-each/src/table/array.ts @@ -20,7 +20,10 @@ const PLACEHOLDER_PREFIX = '%'; const ESCAPED_PLACEHOLDER_PREFIX = /%%/g; const JEST_EACH_PLACEHOLDER_ESCAPE = '@@__JEST_EACH_PLACEHOLDER_ESCAPE__@@'; -export default (title: string, arrayTable: Global.ArrayTable): EachTests => { +export default function array( + title: string, + arrayTable: Global.ArrayTable, +): EachTests { if (isTemplates(title, arrayTable)) { return arrayTable.map((template, index) => ({ arguments: [template], @@ -34,7 +37,7 @@ export default (title: string, arrayTable: Global.ArrayTable): EachTests => { arguments: row, title: formatTitle(title, row, index), })); -}; +} const isTemplates = ( title: string, diff --git a/packages/jest-each/src/table/template.ts b/packages/jest-each/src/table/template.ts index 491845a12186..a7d90a163a8d 100644 --- a/packages/jest-each/src/table/template.ts +++ b/packages/jest-each/src/table/template.ts @@ -11,18 +11,18 @@ import type {EachTests} from '../bind'; import type {Headings, Template, Templates} from './interpolation'; import {interpolateVariables} from './interpolation'; -export default ( +export default function template( title: string, headings: Headings, row: Global.Row, -): EachTests => { +): EachTests { const table = convertRowToTable(row, headings); const templates = convertTableToTemplates(table, headings); return templates.map((template, index) => ({ arguments: [template], title: interpolateVariables(title, template, index), })); -}; +} const convertRowToTable = (row: Global.Row, headings: Headings): Global.Table => Array.from({length: row.length / headings.length}).map((_, index) => diff --git a/packages/jest-jasmine2/src/each.ts b/packages/jest-jasmine2/src/each.ts index 1b022929cf9a..b53c7efeb962 100644 --- a/packages/jest-jasmine2/src/each.ts +++ b/packages/jest-jasmine2/src/each.ts @@ -8,7 +8,7 @@ import type {JestEnvironment} from '@jest/environment'; import {bind as bindEach} from 'jest-each'; -export default (environment: JestEnvironment): void => { +export default function each(environment: JestEnvironment): void { environment.global.it.each = bindEach(environment.global.it); environment.global.fit.each = bindEach(environment.global.fit); environment.global.xit.each = bindEach(environment.global.xit); @@ -36,4 +36,4 @@ export default (environment: JestEnvironment): void => { environment.global.it.concurrent.skip, false, ); -}; +} diff --git a/packages/jest-jasmine2/src/jasmine/Env.ts b/packages/jest-jasmine2/src/jasmine/Env.ts index 20975e1e9550..a68491ca40c3 100644 --- a/packages/jest-jasmine2/src/jasmine/Env.ts +++ b/packages/jest-jasmine2/src/jasmine/Env.ts @@ -49,7 +49,7 @@ import type { import type {default as Spec, SpecResult} from './Spec'; import type Suite from './Suite'; -export default function (j$: Jasmine) { +export default function jasmineEnv(j$: Jasmine) { return class Env { specFilter: (spec: Spec) => boolean; catchExceptions: (value: unknown) => boolean; diff --git a/packages/jest-jasmine2/src/jestExpect.ts b/packages/jest-jasmine2/src/jestExpect.ts index 6b586a2fbeb2..30e32567f5f7 100644 --- a/packages/jest-jasmine2/src/jestExpect.ts +++ b/packages/jest-jasmine2/src/jestExpect.ts @@ -20,7 +20,7 @@ import type {Jasmine, JasmineMatchersObject, RawMatcherFn} from './types'; declare const global: Global.Global; -export default (config: {expand: boolean}): void => { +export default function jestExpect(config: {expand: boolean}): void { global.expect = expect; expect.setState({expand: config.expand}); expect.extend({ @@ -66,4 +66,4 @@ export default (config: {expand: boolean}): void => { expect.extend(jestMatchersObject); }; -}; +} diff --git a/packages/jest-jasmine2/src/setup_jest_globals.ts b/packages/jest-jasmine2/src/setup_jest_globals.ts index 7fc6329aa317..fbf00602d4fd 100644 --- a/packages/jest-jasmine2/src/setup_jest_globals.ts +++ b/packages/jest-jasmine2/src/setup_jest_globals.ts @@ -89,12 +89,12 @@ const patchJasmine = () => { })((global.jasmine as Jasmine).Spec); }; -export default async ({ +export default async function setupJestGlobals({ config, globalConfig, localRequire, testPath, -}: SetupOptions): Promise => { +}: SetupOptions): Promise { // Jest tests snapshotSerializers in order preceding built-in serializers. // Therefore, add in reverse because the last added is the first tested. config.snapshotSerializers @@ -119,4 +119,4 @@ export default async ({ setState({snapshotState, testPath}); // Return it back to the outer scope (test runner outside the VM). return snapshotState; -}; +} diff --git a/packages/jest-leak-detector/src/index.ts b/packages/jest-leak-detector/src/index.ts index ba6f4eb358e8..2f7bb318bb3d 100644 --- a/packages/jest-leak-detector/src/index.ts +++ b/packages/jest-leak-detector/src/index.ts @@ -15,7 +15,7 @@ import {format as prettyFormat} from 'pretty-format'; const tick = promisify(setImmediate); -export default class { +export default class LeakDetector { private _isReferenceBeingHeld: boolean; constructor(value: unknown) { diff --git a/packages/jest-reporters/src/generateEmptyCoverage.ts b/packages/jest-reporters/src/generateEmptyCoverage.ts index 3d7f13a08db8..af9effddbc93 100644 --- a/packages/jest-reporters/src/generateEmptyCoverage.ts +++ b/packages/jest-reporters/src/generateEmptyCoverage.ts @@ -24,7 +24,7 @@ export type CoverageWorkerResult = result: SingleV8Coverage; }; -export default async function ( +export default async function generateEmptyCoverage( source: string, filename: Config.Path, globalConfig: Config.GlobalConfig, diff --git a/packages/jest-reporters/src/getResultHeader.ts b/packages/jest-reporters/src/getResultHeader.ts index 68f6dc82bfd5..ce7e1f82cb6f 100644 --- a/packages/jest-reporters/src/getResultHeader.ts +++ b/packages/jest-reporters/src/getResultHeader.ts @@ -26,11 +26,11 @@ const PASS = chalk.supportsColor ? chalk.reset.inverse.bold.green(` ${PASS_TEXT} `) : PASS_TEXT; -export default ( +export default function getResultHeader( result: TestResult, globalConfig: Config.GlobalConfig, projectConfig?: Config.ProjectConfig, -): string => { +): string { const testPath = result.testFilePath; const formattedTestPath = formatTestPath( projectConfig ? projectConfig : globalConfig, @@ -64,4 +64,4 @@ export default ( `${status} ${projectDisplayName}${fileLink}` + (testDetail.length ? ` (${testDetail.join(', ')})` : '') ); -}; +} diff --git a/packages/jest-reporters/src/getSnapshotStatus.ts b/packages/jest-reporters/src/getSnapshotStatus.ts index 3c19f9ca3406..53bc5be069fb 100644 --- a/packages/jest-reporters/src/getSnapshotStatus.ts +++ b/packages/jest-reporters/src/getSnapshotStatus.ts @@ -16,10 +16,10 @@ const SNAPSHOT_ADDED = chalk.bold.green; const SNAPSHOT_UPDATED = chalk.bold.green; const SNAPSHOT_OUTDATED = chalk.bold.yellow; -export default ( +export default function getSnapshotStatus( snapshot: TestResult['snapshot'], afterUpdate: boolean, -): Array => { +): Array { const statuses = []; if (snapshot.added) { @@ -71,4 +71,4 @@ export default ( } return statuses; -}; +} diff --git a/packages/jest-reporters/src/getSnapshotSummary.ts b/packages/jest-reporters/src/getSnapshotSummary.ts index 66bf7cd4227f..eb54902c7209 100644 --- a/packages/jest-reporters/src/getSnapshotSummary.ts +++ b/packages/jest-reporters/src/getSnapshotSummary.ts @@ -22,11 +22,11 @@ const SNAPSHOT_REMOVED = chalk.bold.green; const SNAPSHOT_SUMMARY = chalk.bold; const SNAPSHOT_UPDATED = chalk.bold.green; -export default ( +export default function getSnapshotSummary( snapshots: SnapshotSummary, globalConfig: Config.GlobalConfig, updateCommand: string, -): Array => { +): Array { const summary = []; summary.push(SNAPSHOT_SUMMARY('Snapshot Summary')); if (snapshots.added) { @@ -136,4 +136,4 @@ export default ( } return summary; -}; +} diff --git a/packages/jest-source-map/src/getCallsite.ts b/packages/jest-source-map/src/getCallsite.ts index 5a0f74a5bdfb..44d4420fb201 100644 --- a/packages/jest-source-map/src/getCallsite.ts +++ b/packages/jest-source-map/src/getCallsite.ts @@ -46,10 +46,10 @@ const addSourceMapConsumer = ( }); }; -export default ( +export default function getCallsite( level: number, sourceMaps?: SourceMapRegistry | null, -): callsites.CallSite => { +): callsites.CallSite { const levelAfterThisCall = level + 1; const stack = callsites()[levelAfterThisCall]; const sourceMapFileName = sourceMaps?.get(stack.getFileName() || ''); @@ -65,4 +65,4 @@ export default ( } return stack; -}; +} diff --git a/packages/jest-util/src/createProcessObject.ts b/packages/jest-util/src/createProcessObject.ts index 5623a6ba082d..32661b47d44a 100644 --- a/packages/jest-util/src/createProcessObject.ts +++ b/packages/jest-util/src/createProcessObject.ts @@ -79,7 +79,7 @@ function createProcessEnv(): NodeJS.ProcessEnv { return Object.assign(proxy, process.env); } -export default function (): NodeJS.Process { +export default function createProcessObject(): NodeJS.Process { const process = require('process'); const newProcess = deepCyclicCopy(process, { blacklist: BLACKLIST, diff --git a/packages/jest-util/src/installCommonGlobals.ts b/packages/jest-util/src/installCommonGlobals.ts index 5931f672e3e8..617974443fcf 100644 --- a/packages/jest-util/src/installCommonGlobals.ts +++ b/packages/jest-util/src/installCommonGlobals.ts @@ -12,7 +12,7 @@ import deepCyclicCopy from './deepCyclicCopy'; const DTRACE = Object.keys(global).filter(key => key.startsWith('DTRACE')); -export default function ( +export default function installCommonGlobals( globalObject: typeof globalThis, globals: Config.ConfigGlobals, ): typeof globalThis & Config.ConfigGlobals { diff --git a/packages/jest-util/src/setGlobal.ts b/packages/jest-util/src/setGlobal.ts index bbce818ddac0..18f6cf4c1067 100644 --- a/packages/jest-util/src/setGlobal.ts +++ b/packages/jest-util/src/setGlobal.ts @@ -5,11 +5,11 @@ * LICENSE file in the root directory of this source tree. */ -export default ( +export default function setGlobal( globalToMutate: typeof globalThis, key: string, value: unknown, -): void => { +): void { // @ts-expect-error: no index globalToMutate[key] = value; -}; +} diff --git a/packages/jest-util/src/testPathPatternToRegExp.ts b/packages/jest-util/src/testPathPatternToRegExp.ts index ccdc16d0d771..8b3d67f79b14 100644 --- a/packages/jest-util/src/testPathPatternToRegExp.ts +++ b/packages/jest-util/src/testPathPatternToRegExp.ts @@ -10,6 +10,8 @@ import type {Config} from '@jest/types'; // Because we serialize/deserialize globalConfig when we spawn workers, // we can't pass regular expression. Using this shared function on both sides // will ensure that we produce consistent regexp for testPathPattern. -export default ( +export default function testPathPatternToRegExp( testPathPattern: Config.GlobalConfig['testPathPattern'], -): RegExp => new RegExp(testPathPattern, 'i'); +): RegExp { + return new RegExp(testPathPattern, 'i'); +} diff --git a/packages/jest-watcher/src/lib/colorize.ts b/packages/jest-watcher/src/lib/colorize.ts index 056078699bb9..680cd75c8934 100644 --- a/packages/jest-watcher/src/lib/colorize.ts +++ b/packages/jest-watcher/src/lib/colorize.ts @@ -7,7 +7,14 @@ import chalk = require('chalk'); -export default (str: string, start: number, end: number): string => - chalk.dim(str.slice(0, start)) + - chalk.reset(str.slice(start, end)) + - chalk.dim(str.slice(end)); +export default function colorize( + str: string, + start: number, + end: number, +): string { + return ( + chalk.dim(str.slice(0, start)) + + chalk.reset(str.slice(start, end)) + + chalk.dim(str.slice(end)) + ); +} diff --git a/packages/jest-watcher/src/lib/formatTestNameByPattern.ts b/packages/jest-watcher/src/lib/formatTestNameByPattern.ts index 2690e9dd25a4..7ee3334bc548 100644 --- a/packages/jest-watcher/src/lib/formatTestNameByPattern.ts +++ b/packages/jest-watcher/src/lib/formatTestNameByPattern.ts @@ -11,7 +11,11 @@ import colorize from './colorize'; const DOTS = '...'; const ENTER = '⏎'; -export default (testName: string, pattern: string, width: number): string => { +export default function formatTestNameByPattern( + testName: string, + pattern: string, + width: number, +): string { const inlineTestName = testName.replace(/(\r\n|\n|\r)/gm, ENTER); let regexp; @@ -54,4 +58,4 @@ export default (testName: string, pattern: string, width: number): string => { } return `${chalk.dim(slicedTestName)}${chalk.reset(DOTS)}`; -}; +} From 47c7a5b88dfd3d3b7b23b0d4c88a2ad8fe9184e2 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 7 Feb 2022 00:51:41 +0100 Subject: [PATCH 5/7] fix: point to correctly exported files in `jest-repl` (#12311) --- CHANGELOG.md | 1 + packages/jest-repl/package.json | 8 ++++---- scripts/build.js | 14 ++++++++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1f8cec7abe9..e1b0ebf8c0e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Fixes - `[expect]` Add type definitions for asymmetric `closeTo` matcher ([#12304](https://github.com/facebook/jest/pull/12304)) +- `[jest-repl]` Make module importable ([#12311](https://github.com/facebook/jest/pull/12311)) ### Chore & Maintenance diff --git a/packages/jest-repl/package.json b/packages/jest-repl/package.json index 3d09b2b15b1f..c2512a662ee7 100644 --- a/packages/jest-repl/package.json +++ b/packages/jest-repl/package.json @@ -7,12 +7,12 @@ "directory": "packages/jest-repl" }, "license": "MIT", - "main": "./build/index.js", - "types": "./build/index.d.ts", + "main": "./build/cli/index.js", + "types": "./build/cli/index.d.ts", "exports": { ".": { - "types": "./build/index.d.ts", - "default": "./build/index.js" + "types": "./build/cli/index.d.ts", + "default": "./build/cli/index.js" }, "./package.json": "./package.json", "./bin/jest-repl": "./bin/jest-repl.js", diff --git a/scripts/build.js b/scripts/build.js index 576474296a13..9a1d99c0cdd6 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -20,6 +20,7 @@ 'use strict'; +const assert = require('assert'); const fs = require('fs'); const path = require('path'); const babel = require('@babel/core'); @@ -56,15 +57,20 @@ function getBuildPath(file, buildFolder) { return path.resolve(pkgBuildPath, relativeToSrcPath).replace(/\.ts$/, '.js'); } -function buildNodePackage(p) { - const srcDir = path.resolve(p, SRC_DIR); +function buildNodePackage({packageDir, pkg}) { + const srcDir = path.resolve(packageDir, SRC_DIR); const pattern = path.resolve(srcDir, '**/*'); const files = glob.sync(pattern, {nodir: true}); - process.stdout.write(adjustToTerminalWidth(`${path.basename(p)}\n`)); + process.stdout.write(adjustToTerminalWidth(`${pkg.name}\n`)); files.forEach(file => buildFile(file, true)); + assert.ok( + fs.existsSync(path.resolve(packageDir, pkg.main)), + `Main file "${pkg.main}" in ${pkg.name} should exist`, + ); + process.stdout.write(`${OK}\n`); } @@ -142,5 +148,5 @@ if (files.length) { } else { const packages = getPackages(); process.stdout.write(chalk.inverse(' Building packages \n')); - packages.map(({packageDir}) => packageDir).forEach(buildNodePackage); + packages.forEach(buildNodePackage); } From eace5f34ba0162a6d5e9e52ddd507f784ab80edf Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 7 Feb 2022 01:13:04 +0100 Subject: [PATCH 6/7] chore: prepare ignorefiles for dist/ directory (#12314) --- .eslintignore | 1 + .gitignore | 2 ++ .npmignore | 5 ----- packages/babel-jest/.npmignore | 1 + packages/babel-plugin-jest-hoist/.npmignore | 1 + packages/babel-preset-jest/.npmignore | 1 + packages/diff-sequences/.npmignore | 1 + packages/expect/.npmignore | 1 + packages/jest-changed-files/.npmignore | 1 + packages/jest-circus/.npmignore | 1 + packages/jest-cli/.npmignore | 1 + packages/jest-config/.npmignore | 1 + packages/jest-console/.npmignore | 1 + packages/jest-core/.npmignore | 1 + packages/jest-diff/.npmignore | 1 + packages/jest-docblock/.npmignore | 1 + packages/jest-each/.npmignore | 1 + packages/jest-environment-jsdom/.npmignore | 1 + packages/jest-environment-node/.npmignore | 1 + packages/jest-environment/.npmignore | 1 + packages/jest-fake-timers/.npmignore | 1 + packages/jest-get-type/.npmignore | 1 + packages/jest-globals/.npmignore | 1 + packages/jest-haste-map/.npmignore | 1 + packages/jest-jasmine2/.npmignore | 1 + packages/jest-leak-detector/.npmignore | 1 + packages/jest-matcher-utils/.npmignore | 1 + packages/jest-message-util/.npmignore | 1 + packages/jest-mock/.npmignore | 1 + packages/jest-phabricator/.npmignore | 1 + packages/jest-regex-util/.npmignore | 1 + packages/jest-repl/.npmignore | 1 + packages/jest-reporters/.npmignore | 1 + packages/jest-resolve-dependencies/.npmignore | 1 + packages/jest-resolve/.npmignore | 1 + packages/jest-runner/.npmignore | 1 + packages/jest-runtime/.npmignore | 1 + packages/jest-serializer/.npmignore | 1 + packages/jest-snapshot/.npmignore | 1 + packages/jest-source-map/.npmignore | 1 + packages/jest-test-result/.npmignore | 1 + packages/jest-test-sequencer/.npmignore | 1 + packages/jest-transform/.npmignore | 1 + packages/jest-types/.npmignore | 1 + packages/jest-util/.npmignore | 1 + packages/jest-validate/.npmignore | 1 + packages/jest-watcher/.npmignore | 1 + packages/jest-worker/.npmignore | 1 + packages/jest/.npmignore | 1 + packages/pretty-format/.npmignore | 1 + 50 files changed, 50 insertions(+), 5 deletions(-) delete mode 100644 .npmignore diff --git a/.eslintignore b/.eslintignore index 0871961de1b7..48fa766a507d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,6 +3,7 @@ bin/ flow-typed/** packages/*/build/** +packages/*/dist/** packages/jest-diff/src/cleanupSemantic.ts website/.docusaurus website/blog diff --git a/.gitignore b/.gitignore index 12c5fbd4402a..7dfb5101b363 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ /node_modules /packages/*/build/ +/packages/*/dist/ /packages/*/coverage/ /packages/*/node_modules/ @@ -40,6 +41,7 @@ junit.xml package-lock.json *.tsbuildinfo +api-extractor.json # https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored but nested for e2e directories **/.yarn/* diff --git a/.npmignore b/.npmignore deleted file mode 100644 index d4d07d3d730e..000000000000 --- a/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -**/__mocks__/** -**/__tests__/** -src -tsconfig.json -tsconfig.tsbuildinfo \ No newline at end of file diff --git a/packages/babel-jest/.npmignore b/packages/babel-jest/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/babel-jest/.npmignore +++ b/packages/babel-jest/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/babel-plugin-jest-hoist/.npmignore b/packages/babel-plugin-jest-hoist/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/babel-plugin-jest-hoist/.npmignore +++ b/packages/babel-plugin-jest-hoist/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/babel-preset-jest/.npmignore b/packages/babel-preset-jest/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/babel-preset-jest/.npmignore +++ b/packages/babel-preset-jest/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/diff-sequences/.npmignore b/packages/diff-sequences/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/diff-sequences/.npmignore +++ b/packages/diff-sequences/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/expect/.npmignore b/packages/expect/.npmignore index 83740ab0bc5a..80bf61eb922c 100644 --- a/packages/expect/.npmignore +++ b/packages/expect/.npmignore @@ -4,3 +4,4 @@ __typetests__ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-changed-files/.npmignore b/packages/jest-changed-files/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-changed-files/.npmignore +++ b/packages/jest-changed-files/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-circus/.npmignore b/packages/jest-circus/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-circus/.npmignore +++ b/packages/jest-circus/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-cli/.npmignore b/packages/jest-cli/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-cli/.npmignore +++ b/packages/jest-cli/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-config/.npmignore b/packages/jest-config/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-config/.npmignore +++ b/packages/jest-config/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-console/.npmignore b/packages/jest-console/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-console/.npmignore +++ b/packages/jest-console/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-core/.npmignore b/packages/jest-core/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-core/.npmignore +++ b/packages/jest-core/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-diff/.npmignore b/packages/jest-diff/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-diff/.npmignore +++ b/packages/jest-diff/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-docblock/.npmignore b/packages/jest-docblock/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-docblock/.npmignore +++ b/packages/jest-docblock/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-each/.npmignore b/packages/jest-each/.npmignore index 3685848b64f2..e39ea04d059f 100644 --- a/packages/jest-each/.npmignore +++ b/packages/jest-each/.npmignore @@ -4,3 +4,4 @@ src assets tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-environment-jsdom/.npmignore b/packages/jest-environment-jsdom/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-environment-jsdom/.npmignore +++ b/packages/jest-environment-jsdom/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-environment-node/.npmignore b/packages/jest-environment-node/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-environment-node/.npmignore +++ b/packages/jest-environment-node/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-environment/.npmignore b/packages/jest-environment/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-environment/.npmignore +++ b/packages/jest-environment/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-fake-timers/.npmignore b/packages/jest-fake-timers/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-fake-timers/.npmignore +++ b/packages/jest-fake-timers/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-get-type/.npmignore b/packages/jest-get-type/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-get-type/.npmignore +++ b/packages/jest-get-type/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-globals/.npmignore b/packages/jest-globals/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-globals/.npmignore +++ b/packages/jest-globals/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-haste-map/.npmignore b/packages/jest-haste-map/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-haste-map/.npmignore +++ b/packages/jest-haste-map/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-jasmine2/.npmignore b/packages/jest-jasmine2/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-jasmine2/.npmignore +++ b/packages/jest-jasmine2/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-leak-detector/.npmignore b/packages/jest-leak-detector/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-leak-detector/.npmignore +++ b/packages/jest-leak-detector/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-matcher-utils/.npmignore b/packages/jest-matcher-utils/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-matcher-utils/.npmignore +++ b/packages/jest-matcher-utils/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-message-util/.npmignore b/packages/jest-message-util/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-message-util/.npmignore +++ b/packages/jest-message-util/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-mock/.npmignore b/packages/jest-mock/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-mock/.npmignore +++ b/packages/jest-mock/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-phabricator/.npmignore b/packages/jest-phabricator/.npmignore index aa4d010f4035..7f7d90bc4416 100644 --- a/packages/jest-phabricator/.npmignore +++ b/packages/jest-phabricator/.npmignore @@ -4,3 +4,4 @@ example src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-regex-util/.npmignore b/packages/jest-regex-util/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-regex-util/.npmignore +++ b/packages/jest-regex-util/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-repl/.npmignore b/packages/jest-repl/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-repl/.npmignore +++ b/packages/jest-repl/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-reporters/.npmignore b/packages/jest-reporters/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-reporters/.npmignore +++ b/packages/jest-reporters/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-resolve-dependencies/.npmignore b/packages/jest-resolve-dependencies/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-resolve-dependencies/.npmignore +++ b/packages/jest-resolve-dependencies/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-resolve/.npmignore b/packages/jest-resolve/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-resolve/.npmignore +++ b/packages/jest-resolve/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-runner/.npmignore b/packages/jest-runner/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-runner/.npmignore +++ b/packages/jest-runner/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-runtime/.npmignore b/packages/jest-runtime/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-runtime/.npmignore +++ b/packages/jest-runtime/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-serializer/.npmignore b/packages/jest-serializer/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-serializer/.npmignore +++ b/packages/jest-serializer/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-snapshot/.npmignore b/packages/jest-snapshot/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-snapshot/.npmignore +++ b/packages/jest-snapshot/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-source-map/.npmignore b/packages/jest-source-map/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-source-map/.npmignore +++ b/packages/jest-source-map/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-test-result/.npmignore b/packages/jest-test-result/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-test-result/.npmignore +++ b/packages/jest-test-result/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-test-sequencer/.npmignore b/packages/jest-test-sequencer/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-test-sequencer/.npmignore +++ b/packages/jest-test-sequencer/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-transform/.npmignore b/packages/jest-transform/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-transform/.npmignore +++ b/packages/jest-transform/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-types/.npmignore b/packages/jest-types/.npmignore index 83740ab0bc5a..80bf61eb922c 100644 --- a/packages/jest-types/.npmignore +++ b/packages/jest-types/.npmignore @@ -4,3 +4,4 @@ __typetests__ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-util/.npmignore b/packages/jest-util/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-util/.npmignore +++ b/packages/jest-util/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-validate/.npmignore b/packages/jest-validate/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-validate/.npmignore +++ b/packages/jest-validate/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-watcher/.npmignore b/packages/jest-watcher/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest-watcher/.npmignore +++ b/packages/jest-watcher/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest-worker/.npmignore b/packages/jest-worker/.npmignore index 4904e404bea3..c7af63914cb0 100644 --- a/packages/jest-worker/.npmignore +++ b/packages/jest-worker/.npmignore @@ -4,3 +4,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/jest/.npmignore b/packages/jest/.npmignore index 3ee5d55b0b89..70febcbacbcb 100644 --- a/packages/jest/.npmignore +++ b/packages/jest/.npmignore @@ -3,3 +3,4 @@ src tsconfig.json tsconfig.tsbuildinfo +api-extractor.json diff --git a/packages/pretty-format/.npmignore b/packages/pretty-format/.npmignore index b11975bef5ac..c70bb3e9d8bd 100644 --- a/packages/pretty-format/.npmignore +++ b/packages/pretty-format/.npmignore @@ -4,3 +4,4 @@ src perf tsconfig.json tsconfig.tsbuildinfo +api-extractor.json From a9b7e8a82bef4c8697f62c8585ae4c8e6ae56885 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 7 Feb 2022 01:21:43 +0100 Subject: [PATCH 7/7] chore: also clean out dist/ directory --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ea3c799d352b..0c527556cda6 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "which": "^2.0.1" }, "scripts": { - "build-clean": "rimraf './packages/*/build' './packages/*/tsconfig.tsbuildinfo'", + "build-clean": "rimraf './packages/*/build' './packages/*/dist' './packages/*/tsconfig.tsbuildinfo'", "build": "yarn build:js && yarn build:ts", "build:js": "node ./scripts/build.js", "build:ts": "node ./scripts/buildTs.js",