UNPKG

jest-resolve

Version:
232 lines (230 loc) 8.33 kB
import { NapiResolveOptions } from "unrs-resolver"; import { IModuleMap } from "jest-haste-map"; //#region src/ModuleNotFoundError.d.ts /** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ declare class ModuleNotFoundError extends Error { code: string; hint?: string; requireStack?: Array<string>; siblingWithSimilarExtensionFound?: boolean; moduleName?: string; private _originalMessage?; constructor(message: string, moduleName?: string); buildMessage(rootDir: string): void; static duckType(error: ModuleNotFoundError): ModuleNotFoundError; } //#endregion //#region src/defaultResolver.d.ts interface ResolverOptions extends NapiResolveOptions { /** Directory to begin resolving from. */ basedir: string; /** List of export conditions. */ conditions?: Array<string>; /** Instance of default resolver. */ defaultResolver: SyncResolver; /** Instance of default async resolver. */ defaultAsyncResolver: AsyncResolver; /** * List of directory names to be looked up for modules recursively. * * @defaultValue * The default is `['node_modules']`. */ moduleDirectory?: Array<string>; /** * List of `require.paths` to use if nothing is found in `node_modules`. * * @defaultValue * The default is `undefined`. */ paths?: Array<string>; /** Current root directory. */ rootDir?: string; } type SyncResolver = (path: string, options: ResolverOptions) => string; type AsyncResolver = (path: string, options: ResolverOptions) => Promise<string>; //#endregion //#region src/shouldLoadAsEsm.d.ts declare function cachedShouldLoadAsEsm(path: string, extensionsToTreatAsEsm: Array<string>): boolean; //#endregion //#region src/types.d.ts /** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ type ResolverConfig = { defaultPlatform?: string | null; extensions: Array<string>; hasCoreModules: boolean; moduleDirectories: Array<string>; moduleNameMapper?: Array<ModuleNameMapperConfig> | null; modulePaths?: Array<string>; platforms?: Array<string>; resolver?: string | null; rootDir: string; }; type ModuleNameMapperConfig = { regex: RegExp; moduleName: string | Array<string>; }; type JSONValue = string | number | boolean | JSONObject | Array<JSONValue>; interface JSONObject { [key: string]: JSONValue; } type PackageJSON = JSONObject; //#endregion //#region src/resolver.d.ts type FindNodeModuleConfig = { basedir: string; conditions?: Array<string>; extensions?: Array<string>; moduleDirectory?: Array<string>; paths?: Array<string>; resolver?: string | null; rootDir?: string; throwIfNotFound?: boolean; }; type ResolveModuleConfig = { conditions?: Array<string>; skipNodeResolution?: boolean; paths?: Array<string>; }; declare class Resolver { private readonly _options; private readonly _moduleMap; private readonly _moduleIDCache; private readonly _moduleNameCache; private readonly _modulePathCache; private readonly _supportsNativePlatform; constructor(moduleMap: IModuleMap, options: ResolverConfig); static ModuleNotFoundError: typeof ModuleNotFoundError; static tryCastModuleNotFoundError(error: unknown): ModuleNotFoundError | null; static clearDefaultResolverCache(): void; static findNodeModule(path: string, options: FindNodeModuleConfig): string | null; static findNodeModuleAsync(path: string, options: FindNodeModuleConfig): Promise<string | null>; static unstable_shouldLoadAsEsm: typeof cachedShouldLoadAsEsm; resolveModuleFromDirIfExists(dirname: string, moduleName: string, options?: ResolveModuleConfig): string | null; resolveModuleFromDirIfExistsAsync(dirname: string, moduleName: string, options?: ResolveModuleConfig): Promise<string | null>; resolveModule(from: string, moduleName: string, options?: ResolveModuleConfig): string; resolveModuleAsync(from: string, moduleName: string, options?: ResolveModuleConfig): Promise<string>; /** * _prepareForResolution is shared between the sync and async module resolution * methods, to try to keep them as DRY as possible. */ private _prepareForResolution; /** * _getHasteModulePath attempts to return the path to a haste module. */ private _getHasteModulePath; private _throwModNotFoundError; private _getMapModuleName; private _isAliasModule; isCoreModule(moduleName: string): boolean; normalizeCoreModuleSpecifier(specifier: string): string; getModule(name: string): string | null; getModulePath(from: string, moduleName: string): string; getPackage(name: string): string | null; getMockModule(from: string, name: string, options?: Pick<ResolveModuleConfig, 'conditions'>): string | null; getMockModuleAsync(from: string, name: string, options: Pick<ResolveModuleConfig, 'conditions'>): Promise<string | null>; getModulePaths(from: string): Array<string>; getGlobalPaths(moduleName?: string): Array<string>; getModuleID(virtualMocks: Map<string, boolean>, from: string, moduleName: string | undefined, options: ResolveModuleConfig): string; getModuleIDAsync(virtualMocks: Map<string, boolean>, from: string, moduleName: string | undefined, options: ResolveModuleConfig): Promise<string>; private _getModuleType; private _getAbsolutePath; private _getAbsolutePathAsync; private _getMockPath; private _getMockPathAsync; private _getVirtualMockPath; private _getVirtualMockPathAsync; private _isModuleResolved; private _isModuleResolvedAsync; resolveStubModuleName(from: string, moduleName: string, options?: Pick<ResolveModuleConfig, 'conditions'>): string | null; resolveStubModuleNameAsync(from: string, moduleName: string, options?: Pick<ResolveModuleConfig, 'conditions'>): Promise<string | null>; } type ResolverSyncObject = { sync: SyncResolver; async?: AsyncResolver; }; type ResolverAsyncObject = { sync?: SyncResolver; async: AsyncResolver; }; type ResolverObject = ResolverSyncObject | ResolverAsyncObject; //#endregion //#region src/utils.d.ts /** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /** * Finds the test environment to use: * * 1. looks for jest-environment-<name> relative to project. * 1. looks for jest-environment-<name> relative to Jest. * 1. looks for <name> relative to project. * 1. looks for <name> relative to Jest. */ declare const resolveTestEnvironment: ({ rootDir, testEnvironment: filePath, requireResolveFunction }: { rootDir: string; testEnvironment: string; requireResolveFunction: (moduleName: string) => string; }) => string; /** * Finds the watch plugins to use: * * 1. looks for jest-watch-<name> relative to project. * 1. looks for jest-watch-<name> relative to Jest. * 1. looks for <name> relative to project. * 1. looks for <name> relative to Jest. */ declare const resolveWatchPlugin: (resolver: string | undefined | null, { filePath, rootDir, requireResolveFunction }: { filePath: string; rootDir: string; requireResolveFunction: (moduleName: string) => string; }) => string; /** * Finds the runner to use: * * 1. looks for jest-runner-<name> relative to project. * 1. looks for jest-runner-<name> relative to Jest. * 1. looks for <name> relative to project. * 1. looks for <name> relative to Jest. */ declare const resolveRunner: (resolver: string | undefined | null, { filePath, rootDir, requireResolveFunction }: { filePath: string; rootDir: string; requireResolveFunction: (moduleName: string) => string; }) => string; declare const resolveSequencer: (resolver: string | undefined | null, { filePath, rootDir, requireResolveFunction }: { filePath: string; rootDir: string; requireResolveFunction: (moduleName: string) => string; }) => string; //#endregion export { AsyncResolver, FindNodeModuleConfig, ResolverObject as JestResolver, PackageJSON, ResolveModuleConfig, ResolverOptions, SyncResolver, Resolver as default, resolveRunner, resolveSequencer, resolveTestEnvironment, resolveWatchPlugin };