From dd72a16c183f64c2190977df30c6c653642efa7d Mon Sep 17 00:00:00 2001 From: Thomas Dy Date: Fri, 12 Aug 2022 18:49:46 +0900 Subject: [PATCH 1/4] Add filesystem caching --- src/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index 6ca26a9..090dc00 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,7 @@ import { fileURLToPath } from 'node:url' import debug from 'debug' import { FileSystem, + CachedInputFileSystem, ResolveOptions, Resolver, ResolverFactory, @@ -113,6 +114,7 @@ const fileSystem = fs as FileSystem const JS_EXT_PATTERN = /\.(?:[cm]js|jsx?)$/ const RELATIVE_PATH_PATTERN = /^\.{1,2}(?:\/.*)?$/ +let previousOptions: TsResolverOptions | null | undefined let cachedOptions: InternalResolverOptions | undefined let mappersCachedOptions: InternalResolverOptions @@ -135,14 +137,15 @@ export function resolve( found: boolean path?: string | null } { - if (!cachedOptions || cachedOptions !== options) { + if (!cachedOptions || previousOptions !== options) { + previousOptions = options cachedOptions = { ...options, conditionNames: options?.conditionNames ?? defaultConditionNames, extensions: options?.extensions ?? defaultExtensions, extensionAlias: options?.extensionAlias ?? defaultExtensionAlias, mainFields: options?.mainFields ?? defaultMainFields, - fileSystem, + fileSystem: new CachedInputFileSystem(fileSystem, 500), useSyncFileSystemCalls: true, } } From ccf6126d261417a911059a15c7c11abf7f193448 Mon Sep 17 00:00:00 2001 From: JounQin Date: Fri, 12 Aug 2022 18:29:11 +0800 Subject: [PATCH 2/4] Create nasty-points-speak.md --- .changeset/nasty-points-speak.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/nasty-points-speak.md diff --git a/.changeset/nasty-points-speak.md b/.changeset/nasty-points-speak.md new file mode 100644 index 0000000..dbd14cc --- /dev/null +++ b/.changeset/nasty-points-speak.md @@ -0,0 +1,5 @@ +--- +"eslint-import-resolver-typescript": patch +--- + +perf: add filesystem caching support From d804706961a3cd6b980d237eefdb7fadbcc9731d Mon Sep 17 00:00:00 2001 From: JounQin Date: Fri, 12 Aug 2022 18:53:41 +0800 Subject: [PATCH 3/4] Update index.ts --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 090dc00..489e551 100644 --- a/src/index.ts +++ b/src/index.ts @@ -145,7 +145,7 @@ export function resolve( extensions: options?.extensions ?? defaultExtensions, extensionAlias: options?.extensionAlias ?? defaultExtensionAlias, mainFields: options?.mainFields ?? defaultMainFields, - fileSystem: new CachedInputFileSystem(fileSystem, 500), + fileSystem: new CachedInputFileSystem(fileSystem, 5000), useSyncFileSystemCalls: true, } } From c1b7d4dc66cfee54ddb566a9d743ed3f28b33b6c Mon Sep 17 00:00:00 2001 From: JounQin Date: Fri, 12 Aug 2022 18:56:49 +0800 Subject: [PATCH 4/4] Update index.ts --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 489e551..3a80169 100644 --- a/src/index.ts +++ b/src/index.ts @@ -145,7 +145,7 @@ export function resolve( extensions: options?.extensions ?? defaultExtensions, extensionAlias: options?.extensionAlias ?? defaultExtensionAlias, mainFields: options?.mainFields ?? defaultMainFields, - fileSystem: new CachedInputFileSystem(fileSystem, 5000), + fileSystem: new CachedInputFileSystem(fileSystem, 5 * 1000), useSyncFileSystemCalls: true, } }