logo hsb.horse
← スニペット一覧に戻る

Snippets

動的インポートのキャッシュ実装

TypeScriptでdynamic importをキャッシュする軽量実装。同じパスへの複数回のインポートを1回のPromiseで処理する。

公開日: 更新日:

翻訳

dynamic importを使う際、同じモジュールを複数回インポートすると都度Promiseが生成される。 キャッシュすることで、同じパスへのインポートを1回のPromiseで処理できる。

type ModuleCache = Map<string, Promise<unknown>>;
const modCache: ModuleCache = new Map();
export async function dynamicImport<T = unknown>(path: string): Promise<T> {
const cache = modCache.get(path);
if (cache) return cache as Promise<T>;
const modPromise = import(path) as Promise<T>;
modCache.set(path, modPromise);
return modPromise;
}