From 25e880aeef6b9e32fa7e2a18f40bee43cdeb3276 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Fri, 9 Sep 2022 23:53:01 +0530 Subject: [PATCH 01/13] Simplied the Jest-haste-map API --- packages/jest-core/src/cli/index.ts | 4 +- packages/jest-core/src/lib/createContext.ts | 4 +- packages/jest-core/src/watch.ts | 50 ++++++++----------- packages/jest-haste-map/src/HasteFS.ts | 4 +- packages/jest-haste-map/src/ModuleMap.ts | 2 +- packages/jest-haste-map/src/index.ts | 20 +++++--- packages/jest-haste-map/src/types.ts | 18 +++++++ .../jest-resolve-dependencies/src/index.ts | 6 +-- .../src/__tests__/resolve.test.ts | 8 +-- packages/jest-runtime/src/index.ts | 4 +- packages/jest-snapshot/src/index.ts | 6 +-- packages/jest-test-result/src/types.ts | 6 +-- 12 files changed, 76 insertions(+), 56 deletions(-) diff --git a/packages/jest-core/src/cli/index.ts b/packages/jest-core/src/cli/index.ts index 6556a919ebb9..95598c8b4e30 100644 --- a/packages/jest-core/src/cli/index.ts +++ b/packages/jest-core/src/cli/index.ts @@ -13,7 +13,7 @@ import type {AggregatedResult, TestContext} from '@jest/test-result'; import type {Config} from '@jest/types'; import type {ChangedFilesPromise} from 'jest-changed-files'; import {readConfigs} from 'jest-config'; -import type HasteMap from 'jest-haste-map'; +import type {IHasteMap} from 'jest-haste-map'; import Runtime from 'jest-runtime'; import {createDirectory, preRunMessage} from 'jest-util'; import {TestWatcher} from 'jest-watcher'; @@ -236,7 +236,7 @@ const runWatch = async ( hasDeprecationWarnings: boolean, globalConfig: Config.GlobalConfig, outputStream: NodeJS.WriteStream, - hasteMapInstances: Array, + hasteMapInstances: Array, filter?: Filter, ) => { if (hasDeprecationWarnings) { diff --git a/packages/jest-core/src/lib/createContext.ts b/packages/jest-core/src/lib/createContext.ts index be1a75061dd9..0f2180e9645d 100644 --- a/packages/jest-core/src/lib/createContext.ts +++ b/packages/jest-core/src/lib/createContext.ts @@ -7,12 +7,12 @@ import type {TestContext} from '@jest/test-result'; import type {Config} from '@jest/types'; -import type {HasteMapObject} from 'jest-haste-map'; +import type {IHasteFS,ImoduleMap} from 'jest-haste-map'; import Runtime from 'jest-runtime'; export default function createContext( config: Config.ProjectConfig, - {hasteFS, moduleMap}: HasteMapObject, + {hasteFS:IHasteFS, moduleMap:ImoduleMap}: HasteMapObject, ): TestContext { return { config, diff --git a/packages/jest-core/src/watch.ts b/packages/jest-core/src/watch.ts index d1b84c7635bc..2f3e2d00dec3 100644 --- a/packages/jest-core/src/watch.ts +++ b/packages/jest-core/src/watch.ts @@ -12,10 +12,7 @@ import exit = require('exit'); import slash = require('slash'); import type {TestContext} from '@jest/test-result'; import type {Config} from '@jest/types'; -import type { - ChangeEvent as HasteChangeEvent, - default as HasteMap, -} from 'jest-haste-map'; +import type {IHasteMap as HasteMap} from 'jest-haste-map'; import {formatExecError} from 'jest-message-util'; import { isInteractive, @@ -241,31 +238,28 @@ export default async function watch( emitFileChange(); hasteMapInstances.forEach((hasteMapInstance, index) => { - hasteMapInstance.on( - 'change', - ({eventsQueue, hasteFS, moduleMap}: HasteChangeEvent) => { - const validPaths = eventsQueue.filter(({filePath}) => - isValidPath(globalConfig, filePath), - ); + hasteMapInstance.on('change', ({eventsQueue, hasteFS, moduleMap}) => { + const validPaths = eventsQueue.filter(({filePath}) => + isValidPath(globalConfig, filePath), + ); - if (validPaths.length) { - const context = (contexts[index] = createContext( - contexts[index].config, - {hasteFS, moduleMap}, - )); - - activePlugin = null; - - searchSources = searchSources.slice(); - searchSources[index] = { - context, - searchSource: new SearchSource(context), - }; - emitFileChange(); - startRun(globalConfig); - } - }, - ); + if (validPaths.length) { + const context = (contexts[index] = createContext( + contexts[index].config, + {hasteFS, moduleMap}, + )); + + activePlugin = null; + + searchSources = searchSources.slice(); + searchSources[index] = { + context, + searchSource: new SearchSource(context), + }; + emitFileChange(); + startRun(globalConfig); + } + }); }); if (!hasExitListener) { diff --git a/packages/jest-haste-map/src/HasteFS.ts b/packages/jest-haste-map/src/HasteFS.ts index 56fd2792067c..a46cdc87aaaf 100644 --- a/packages/jest-haste-map/src/HasteFS.ts +++ b/packages/jest-haste-map/src/HasteFS.ts @@ -8,9 +8,9 @@ import {globsToMatcher, replacePathSepForGlob} from 'jest-util'; import H from './constants'; import * as fastPath from './lib/fast_path'; -import type {FileData} from './types'; +import type {FileData,IHasteFS} from './types'; -export default class HasteFS { +export default class implements IHasteFS { private readonly _rootDir: string; private readonly _files: FileData; diff --git a/packages/jest-haste-map/src/ModuleMap.ts b/packages/jest-haste-map/src/ModuleMap.ts index fea276a6f325..59fd7760115b 100644 --- a/packages/jest-haste-map/src/ModuleMap.ts +++ b/packages/jest-haste-map/src/ModuleMap.ts @@ -19,7 +19,7 @@ import type { const EMPTY_OBJ: Record = {}; const EMPTY_MAP = new Map(); -export default class ModuleMap implements IModuleMap { +export default class ModuleMap implements IModuleMap { static DuplicateHasteCandidatesError: typeof DuplicateHasteCandidatesError; private readonly _raw: RawModuleMap; private json: SerializableModuleMap | undefined; diff --git a/packages/jest-haste-map/src/index.ts b/packages/jest-haste-map/src/index.ts index c3f65c495ef4..57b92658f551 100644 --- a/packages/jest-haste-map/src/index.ts +++ b/packages/jest-haste-map/src/index.ts @@ -34,6 +34,8 @@ import type { FileMetaData, HasteMapStatic, HasteRegExp, + IHasteMap, + IModuleMap, InternalHasteMap, HasteMap as InternalHasteMapObject, MockData, @@ -109,11 +111,12 @@ type Watcher = { type HasteWorker = typeof import('./worker'); -export type {default as FS} from './HasteFS'; -export {default as ModuleMap} from './ModuleMap'; +export const ModuleMap = HasteModuleMap as { + create: (rootPath: string) => IModuleMap; +}; export type { - ChangeEvent, - HasteMap as HasteMapObject, + IHasteFS, + IHasteMap, IModuleMap, SerializableModuleMap, } from './types'; @@ -210,7 +213,7 @@ function invariant(condition: unknown, message?: string): asserts condition { * Worker processes can directly access the cache through `HasteMap.read()`. * */ -export default class HasteMap extends EventEmitter { + class HasteMap extends EventEmitter implements IHasteMap { private _buildPromise: Promise | null = null; private _cachePath = ''; private _changeInterval?: ReturnType; @@ -227,7 +230,7 @@ export default class HasteMap extends EventEmitter { return HasteMap; } - static async create(options: Options): Promise { + static async create(options: Options): Promise { if (options.hasteMapModulePath) { const CustomHasteMap = require(options.hasteMapModulePath); return new CustomHasteMap(options); @@ -1143,3 +1146,8 @@ function copy>(object: T): T { function copyMap(input: Map): Map { return new Map(input); } + +export default HasteMap as HasteMapStatic & { + create(options: Options): Promise; + getStatic(config: Config.ProjectConfig): HasteMapStatic; +}; \ No newline at end of file diff --git a/packages/jest-haste-map/src/types.ts b/packages/jest-haste-map/src/types.ts index 934526d218b2..c56c950534c1 100644 --- a/packages/jest-haste-map/src/types.ts +++ b/packages/jest-haste-map/src/types.ts @@ -39,6 +39,24 @@ export interface IModuleMap { toJSON(): S; } +export interface IHasteFS { + exists(path: string): boolean; + getAbsoluteFileIterator(): Iterable; + getAllFiles(): Array; + getDependencies(file: string): Array | null; + getSize(path: string): number | null; + matchFiles(pattern: RegExp | string): Array; + matchFilesWithGlob( + globs: ReadonlyArray, + root: string | null, + ): Set; +} + +export interface IHasteMap { + on(eventType: 'change', handler: (event: ChangeEvent) => void): void; + build(): Promise<{hasteFS: IHasteFS; moduleMap: IModuleMap}>; +} + export type HasteMapStatic = { getCacheFilePath( tmpdir: string, diff --git a/packages/jest-resolve-dependencies/src/index.ts b/packages/jest-resolve-dependencies/src/index.ts index 21ba04ac3115..58ea8b26481b 100644 --- a/packages/jest-resolve-dependencies/src/index.ts +++ b/packages/jest-resolve-dependencies/src/index.ts @@ -6,7 +6,7 @@ */ import * as path from 'path'; -import type {FS as HasteFS} from 'jest-haste-map'; +import type {IHasteFS} from 'jest-haste-map'; import type {ResolveModuleConfig, default as Resolver} from 'jest-resolve'; import {SnapshotResolver, isSnapshotPath} from 'jest-snapshot'; @@ -20,13 +20,13 @@ export type ResolvedModule = { * to retrieve a list of all transitive inverse dependencies. */ export class DependencyResolver { - private _hasteFS: HasteFS; + private _hasteFS: IHasteFS; private _resolver: Resolver; private _snapshotResolver: SnapshotResolver; constructor( resolver: Resolver, - hasteFS: HasteFS, + hasteFS: IHasteFS, snapshotResolver: SnapshotResolver, ) { this._resolver = resolver; diff --git a/packages/jest-resolve/src/__tests__/resolve.test.ts b/packages/jest-resolve/src/__tests__/resolve.test.ts index eb6d3c3cd7d3..64d17348025e 100644 --- a/packages/jest-resolve/src/__tests__/resolve.test.ts +++ b/packages/jest-resolve/src/__tests__/resolve.test.ts @@ -9,7 +9,7 @@ import * as path from 'path'; import * as fs from 'graceful-fs'; import {sync as resolveSync} from 'resolve'; -import {ModuleMap} from 'jest-haste-map'; +import {IModuleMap} from 'jest-haste-map'; import userResolver from '../__mocks__/userResolver'; import userResolverAsync from '../__mocks__/userResolverAsync'; import defaultResolver from '../defaultResolver'; @@ -358,7 +358,7 @@ describe('findNodeModuleAsync', () => { }); describe('resolveModule', () => { - let moduleMap: ModuleMap; + let moduleMap: IModuleMap; beforeEach(() => { moduleMap = ModuleMap.create('/'); }); @@ -463,7 +463,7 @@ describe('resolveModule', () => { }); describe('resolveModuleAsync', () => { - let moduleMap: ModuleMap; + let moduleMap: IModuleMap; beforeEach(() => { moduleMap = ModuleMap.create('/'); }); @@ -626,7 +626,7 @@ describe('nodeModulesPaths', () => { describe('Resolver.getModulePaths() -> nodeModulesPaths()', () => { const _path = path; - let moduleMap: ModuleMap; + let moduleMap: IModuleMap; beforeEach(() => { jest.resetModules(); diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 4e9358d24f8a..26bac1fe1ccc 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -48,7 +48,7 @@ import { shouldInstrument, } from '@jest/transform'; import type {Config, Global} from '@jest/types'; -import HasteMap, {IModuleMap} from 'jest-haste-map'; +import {IHasteMap,IModuleMap} from 'jest-haste-map'; import {formatStackTrace, separateMessageFromStack} from 'jest-message-util'; import type {MockMetadata, ModuleMocker} from 'jest-mock'; import {escapePathForRegex} from 'jest-regex-util'; @@ -330,7 +330,7 @@ export default class Runtime { static createHasteMap( config: Config.ProjectConfig, options?: HasteMapOptions, - ): Promise { + ): Promise { const ignorePatternParts = [ ...config.modulePathIgnorePatterns, ...(options && options.watch ? config.watchPathIgnorePatterns : []), diff --git a/packages/jest-snapshot/src/index.ts b/packages/jest-snapshot/src/index.ts index adf570b82476..ca054ca79595 100644 --- a/packages/jest-snapshot/src/index.ts +++ b/packages/jest-snapshot/src/index.ts @@ -8,7 +8,7 @@ import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import type {MatcherFunctionWithContext} from 'expect'; -import type {FS as HasteFS} from 'jest-haste-map'; +import type {IHasteFS} from 'jest-haste-map'; import { BOLD_WEIGHT, EXPECTED_COLOR, @@ -110,11 +110,11 @@ function stripAddedIndentation(inlineSnapshot: string) { return inlineSnapshot; } -const fileExists = (filePath: string, hasteFS: HasteFS): boolean => +const fileExists = (filePath: string, hasteFS: IHasteFS): boolean => hasteFS.exists(filePath) || fs.existsSync(filePath); export const cleanup = ( - hasteFS: HasteFS, + hasteFS: IHasteFS, update: Config.SnapshotUpdateState, snapshotResolver: SnapshotResolver, testPathIgnorePatterns?: Config.ProjectConfig['testPathIgnorePatterns'], diff --git a/packages/jest-test-result/src/types.ts b/packages/jest-test-result/src/types.ts index 752ee750c730..bbc6eeaf5114 100644 --- a/packages/jest-test-result/src/types.ts +++ b/packages/jest-test-result/src/types.ts @@ -9,7 +9,7 @@ import type {V8Coverage} from 'collect-v8-coverage'; import type {CoverageMap, CoverageMapData} from 'istanbul-lib-coverage'; import type {ConsoleBuffer} from '@jest/console'; import type {Config, TestResult, TransformTypes} from '@jest/types'; -import type {FS as HasteFS, ModuleMap} from 'jest-haste-map'; +import type {IHasteFS, IModuleMap} from 'jest-haste-map'; import type Resolver from 'jest-resolve'; export interface RuntimeTransformResult extends TransformTypes.TransformResult { @@ -187,8 +187,8 @@ export type Test = { export type TestContext = { config: Config.ProjectConfig; - hasteFS: HasteFS; - moduleMap: ModuleMap; + hasteFS: IHasteFS; + moduleMap: IModuleMap; resolver: Resolver; }; From b25a01dd9a50fac6d799a22b1f4c99ff66626689 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 00:07:26 +0530 Subject: [PATCH 02/13] Including Ihastemap --- packages/jest-runtime/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 26bac1fe1ccc..43f2b1d9131f 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -342,7 +342,7 @@ export default class Runtime { ? new RegExp(ignorePatternParts.join('|')) : undefined; - return HasteMap.create({ + return IHasteMap.create({ cacheDirectory: config.cacheDirectory, computeSha1: config.haste.computeSha1, console: options?.console, From d5dbb386cee3b4aabf60795219c5e49d83375e22 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 00:15:18 +0530 Subject: [PATCH 03/13] Revert change --- packages/jest-runtime/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 43f2b1d9131f..26bac1fe1ccc 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -342,7 +342,7 @@ export default class Runtime { ? new RegExp(ignorePatternParts.join('|')) : undefined; - return IHasteMap.create({ + return HasteMap.create({ cacheDirectory: config.cacheDirectory, computeSha1: config.haste.computeSha1, console: options?.console, From 80af3f5790152a0fe7be3c56601e966485dc2139 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 00:37:02 +0530 Subject: [PATCH 04/13] Added hastemap import --- packages/jest-runtime/src/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 26bac1fe1ccc..49d548dea082 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -48,7 +48,8 @@ import { shouldInstrument, } from '@jest/transform'; import type {Config, Global} from '@jest/types'; -import {IHasteMap,IModuleMap} from 'jest-haste-map'; +import {IHasteMap, IModuleMap} from 'jest-haste-map'; +import HasteMap from 'jest-haste-map'; import {formatStackTrace, separateMessageFromStack} from 'jest-message-util'; import type {MockMetadata, ModuleMocker} from 'jest-mock'; import {escapePathForRegex} from 'jest-regex-util'; From 13a5c28685710584da7b7f48ef952c8bc2ba7f17 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 00:59:51 +0530 Subject: [PATCH 05/13] ts fix --- packages/jest-core/src/lib/createContext.ts | 2 +- packages/jest-runtime/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/jest-core/src/lib/createContext.ts b/packages/jest-core/src/lib/createContext.ts index 0f2180e9645d..f1d068bcbed6 100644 --- a/packages/jest-core/src/lib/createContext.ts +++ b/packages/jest-core/src/lib/createContext.ts @@ -12,7 +12,7 @@ import Runtime from 'jest-runtime'; export default function createContext( config: Config.ProjectConfig, - {hasteFS:IHasteFS, moduleMap:ImoduleMap}: HasteMapObject, + {hasteFS:IHasteFS, moduleMap:ImoduleMap}: ): TestContext { return { config, diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 49d548dea082..b8362a73cb6d 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -48,7 +48,7 @@ import { shouldInstrument, } from '@jest/transform'; import type {Config, Global} from '@jest/types'; -import {IHasteMap, IModuleMap} from 'jest-haste-map'; +import type {IHasteMap, IModuleMap} from 'jest-haste-map'; import HasteMap from 'jest-haste-map'; import {formatStackTrace, separateMessageFromStack} from 'jest-message-util'; import type {MockMetadata, ModuleMocker} from 'jest-mock'; From b8913c271cfc26ab102dd11e4e33b9e2ba6bda08 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 01:08:46 +0530 Subject: [PATCH 06/13] Test fix --- packages/jest-core/src/lib/createContext.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/jest-core/src/lib/createContext.ts b/packages/jest-core/src/lib/createContext.ts index f1d068bcbed6..357c96b717d9 100644 --- a/packages/jest-core/src/lib/createContext.ts +++ b/packages/jest-core/src/lib/createContext.ts @@ -7,12 +7,13 @@ import type {TestContext} from '@jest/test-result'; import type {Config} from '@jest/types'; -import type {IHasteFS,ImoduleMap} from 'jest-haste-map'; +import type {IHasteFS,IModuleMap} from 'jest-haste-map'; import Runtime from 'jest-runtime'; export default function createContext( config: Config.ProjectConfig, - {hasteFS:IHasteFS, moduleMap:ImoduleMap}: + {hasteFS,moduleMap}: + {hasteFS: IHasteFS; moduleMap: IModuleMap}, ): TestContext { return { config, From 2ae35b6dd00c20c96ac25291f4ca121425c12f1b Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 01:21:06 +0530 Subject: [PATCH 07/13] fixes --- packages/jest-resolve/src/__tests__/resolve.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/jest-resolve/src/__tests__/resolve.test.ts b/packages/jest-resolve/src/__tests__/resolve.test.ts index 64d17348025e..f6b6ce26eff1 100644 --- a/packages/jest-resolve/src/__tests__/resolve.test.ts +++ b/packages/jest-resolve/src/__tests__/resolve.test.ts @@ -9,7 +9,8 @@ import * as path from 'path'; import * as fs from 'graceful-fs'; import {sync as resolveSync} from 'resolve'; -import {IModuleMap} from 'jest-haste-map'; +import {ModuleMap} from 'jest-haste-map'; +import type {IModuleMap} from 'jest-haste-map'; import userResolver from '../__mocks__/userResolver'; import userResolverAsync from '../__mocks__/userResolverAsync'; import defaultResolver from '../defaultResolver'; From 5d82f43d571c1e4d2311071c188853949b9e1b98 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 01:56:33 +0530 Subject: [PATCH 08/13] Lint and import fixes --- packages/jest-core/src/lib/createContext.ts | 5 ++--- packages/jest-core/src/watch.ts | 2 +- packages/jest-haste-map/src/HasteFS.ts | 4 ++-- packages/jest-haste-map/src/index.ts | 4 ++-- packages/jest-resolve/src/__tests__/resolve.test.ts | 3 +-- packages/jest-runtime/src/index.ts | 3 +-- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/packages/jest-core/src/lib/createContext.ts b/packages/jest-core/src/lib/createContext.ts index 357c96b717d9..721f5c5471e9 100644 --- a/packages/jest-core/src/lib/createContext.ts +++ b/packages/jest-core/src/lib/createContext.ts @@ -7,13 +7,12 @@ import type {TestContext} from '@jest/test-result'; import type {Config} from '@jest/types'; -import type {IHasteFS,IModuleMap} from 'jest-haste-map'; +import type {IHasteFS, IModuleMap} from 'jest-haste-map'; import Runtime from 'jest-runtime'; export default function createContext( config: Config.ProjectConfig, - {hasteFS,moduleMap}: - {hasteFS: IHasteFS; moduleMap: IModuleMap}, + {hasteFS, moduleMap}: {hasteFS: IHasteFS; moduleMap: IModuleMap}, ): TestContext { return { config, diff --git a/packages/jest-core/src/watch.ts b/packages/jest-core/src/watch.ts index 2f3e2d00dec3..84fbd3e2a69e 100644 --- a/packages/jest-core/src/watch.ts +++ b/packages/jest-core/src/watch.ts @@ -238,7 +238,7 @@ export default async function watch( emitFileChange(); hasteMapInstances.forEach((hasteMapInstance, index) => { - hasteMapInstance.on('change', ({eventsQueue, hasteFS, moduleMap}) => { + hasteMapInstance.on('change', ({eventsQueue, hasteFS, moduleMap}) => { const validPaths = eventsQueue.filter(({filePath}) => isValidPath(globalConfig, filePath), ); diff --git a/packages/jest-haste-map/src/HasteFS.ts b/packages/jest-haste-map/src/HasteFS.ts index a46cdc87aaaf..3fc1144c976c 100644 --- a/packages/jest-haste-map/src/HasteFS.ts +++ b/packages/jest-haste-map/src/HasteFS.ts @@ -8,9 +8,9 @@ import {globsToMatcher, replacePathSepForGlob} from 'jest-util'; import H from './constants'; import * as fastPath from './lib/fast_path'; -import type {FileData,IHasteFS} from './types'; +import type {FileData, IHasteFS} from './types'; -export default class implements IHasteFS { +export default class HasteFS implements IHasteFS { private readonly _rootDir: string; private readonly _files: FileData; diff --git a/packages/jest-haste-map/src/index.ts b/packages/jest-haste-map/src/index.ts index 57b92658f551..1d5cad2b2b5f 100644 --- a/packages/jest-haste-map/src/index.ts +++ b/packages/jest-haste-map/src/index.ts @@ -213,7 +213,7 @@ function invariant(condition: unknown, message?: string): asserts condition { * Worker processes can directly access the cache through `HasteMap.read()`. * */ - class HasteMap extends EventEmitter implements IHasteMap { +class HasteMap extends EventEmitter implements IHasteMap { private _buildPromise: Promise | null = null; private _cachePath = ''; private _changeInterval?: ReturnType; @@ -1150,4 +1150,4 @@ function copyMap(input: Map): Map { export default HasteMap as HasteMapStatic & { create(options: Options): Promise; getStatic(config: Config.ProjectConfig): HasteMapStatic; -}; \ No newline at end of file +}; diff --git a/packages/jest-resolve/src/__tests__/resolve.test.ts b/packages/jest-resolve/src/__tests__/resolve.test.ts index f6b6ce26eff1..985036089313 100644 --- a/packages/jest-resolve/src/__tests__/resolve.test.ts +++ b/packages/jest-resolve/src/__tests__/resolve.test.ts @@ -9,8 +9,7 @@ import * as path from 'path'; import * as fs from 'graceful-fs'; import {sync as resolveSync} from 'resolve'; -import {ModuleMap} from 'jest-haste-map'; -import type {IModuleMap} from 'jest-haste-map'; +import type {IModuleMap, ModuleMap} from 'jest-haste-map'; import userResolver from '../__mocks__/userResolver'; import userResolverAsync from '../__mocks__/userResolverAsync'; import defaultResolver from '../defaultResolver'; diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index b8362a73cb6d..c4658aef891b 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -48,8 +48,7 @@ import { shouldInstrument, } from '@jest/transform'; import type {Config, Global} from '@jest/types'; -import type {IHasteMap, IModuleMap} from 'jest-haste-map'; -import HasteMap from 'jest-haste-map'; +import type {HasteMap, IHasteMap, IModuleMap} from 'jest-haste-map'; import {formatStackTrace, separateMessageFromStack} from 'jest-message-util'; import type {MockMetadata, ModuleMocker} from 'jest-mock'; import {escapePathForRegex} from 'jest-regex-util'; From f01f30edb4b131732e823a575b59725e669958f3 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 02:09:38 +0530 Subject: [PATCH 09/13] no-dups --- packages/jest-runtime/src/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index c4658aef891b..b8362a73cb6d 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -48,7 +48,8 @@ import { shouldInstrument, } from '@jest/transform'; import type {Config, Global} from '@jest/types'; -import type {HasteMap, IHasteMap, IModuleMap} from 'jest-haste-map'; +import type {IHasteMap, IModuleMap} from 'jest-haste-map'; +import HasteMap from 'jest-haste-map'; import {formatStackTrace, separateMessageFromStack} from 'jest-message-util'; import type {MockMetadata, ModuleMocker} from 'jest-mock'; import {escapePathForRegex} from 'jest-regex-util'; From c7fb4bcfd3470c2e04cf4dd4bd6021514cfb4b9e Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 10:02:34 +0530 Subject: [PATCH 10/13] Added ModuleMap --- packages/jest-resolve/src/__tests__/resolve.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/jest-resolve/src/__tests__/resolve.test.ts b/packages/jest-resolve/src/__tests__/resolve.test.ts index 985036089313..52facbcb771e 100644 --- a/packages/jest-resolve/src/__tests__/resolve.test.ts +++ b/packages/jest-resolve/src/__tests__/resolve.test.ts @@ -9,7 +9,8 @@ import * as path from 'path'; import * as fs from 'graceful-fs'; import {sync as resolveSync} from 'resolve'; -import type {IModuleMap, ModuleMap} from 'jest-haste-map'; +import type {IModuleMap} from 'jest-haste-map'; +import ModuleMap from 'jest-haste-map'; import userResolver from '../__mocks__/userResolver'; import userResolverAsync from '../__mocks__/userResolverAsync'; import defaultResolver from '../defaultResolver'; From 07ab794781aa991aef4f02fad5d2104d5f514292 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 10:20:19 +0530 Subject: [PATCH 11/13] Module map fix --- packages/jest-resolve/src/__tests__/resolve.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jest-resolve/src/__tests__/resolve.test.ts b/packages/jest-resolve/src/__tests__/resolve.test.ts index 52facbcb771e..f6b6ce26eff1 100644 --- a/packages/jest-resolve/src/__tests__/resolve.test.ts +++ b/packages/jest-resolve/src/__tests__/resolve.test.ts @@ -9,8 +9,8 @@ import * as path from 'path'; import * as fs from 'graceful-fs'; import {sync as resolveSync} from 'resolve'; +import {ModuleMap} from 'jest-haste-map'; import type {IModuleMap} from 'jest-haste-map'; -import ModuleMap from 'jest-haste-map'; import userResolver from '../__mocks__/userResolver'; import userResolverAsync from '../__mocks__/userResolverAsync'; import defaultResolver from '../defaultResolver'; From af7c30cf67f9ae4b62ac81a0cf8aefe41f792df4 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 11:27:46 +0530 Subject: [PATCH 12/13] Fix lint issues --- packages/jest-runtime/src/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index b8362a73cb6d..9c0e687701b9 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -48,8 +48,11 @@ import { shouldInstrument, } from '@jest/transform'; import type {Config, Global} from '@jest/types'; -import type {IHasteMap, IModuleMap} from 'jest-haste-map'; -import HasteMap from 'jest-haste-map'; +import type { + IHasteMap as HasteMap, + IHasteMap, + IModuleMap, +} from 'jest-haste-map'; import {formatStackTrace, separateMessageFromStack} from 'jest-message-util'; import type {MockMetadata, ModuleMocker} from 'jest-mock'; import {escapePathForRegex} from 'jest-regex-util'; From a8206488acc847350f921b639e1f83d9a93917b7 Mon Sep 17 00:00:00 2001 From: Biki-das Date: Sat, 10 Sep 2022 11:53:05 +0530 Subject: [PATCH 13/13] FIX.. --- packages/jest-runtime/src/index.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index 9c0e687701b9..b8362a73cb6d 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -48,11 +48,8 @@ import { shouldInstrument, } from '@jest/transform'; import type {Config, Global} from '@jest/types'; -import type { - IHasteMap as HasteMap, - IHasteMap, - IModuleMap, -} from 'jest-haste-map'; +import type {IHasteMap, IModuleMap} from 'jest-haste-map'; +import HasteMap from 'jest-haste-map'; import {formatStackTrace, separateMessageFromStack} from 'jest-message-util'; import type {MockMetadata, ModuleMocker} from 'jest-mock'; import {escapePathForRegex} from 'jest-regex-util';