fix(channels): share plugin module jiti cache helper

This commit is contained in:
Vincent Koc
2026-04-14 17:35:34 +01:00
parent f8610da4c5
commit 7b05b4b68e

View File

@@ -1,36 +1,27 @@
import fs from "node:fs";
import { createRequire } from "node:module";
import path from "node:path";
import { createJiti } from "jiti";
import { openBoundaryFileSync } from "../../infra/boundary-file-read.js";
import {
buildPluginLoaderJitiOptions,
resolvePluginLoaderJitiConfig,
} from "../../plugins/sdk-alias.js";
getCachedPluginJitiLoader,
type PluginJitiLoaderCache,
} from "../../plugins/jiti-loader-cache.js";
import { normalizeLowercaseStringOrEmpty } from "../../shared/string-coerce.js";
const nodeRequire = createRequire(import.meta.url);
function createModuleLoader() {
const jitiLoaders = new Map<string, ReturnType<typeof createJiti>>();
const jitiLoaders: PluginJitiLoaderCache = new Map();
return (modulePath: string) => {
const { tryNative, aliasMap, cacheKey } = resolvePluginLoaderJitiConfig({
return getCachedPluginJitiLoader({
cache: jitiLoaders,
modulePath,
argv1: process.argv[1],
moduleUrl: import.meta.url,
importerUrl: import.meta.url,
argvEntry: process.argv[1],
preferBuiltDist: true,
jitiFilename: import.meta.url,
});
const cached = jitiLoaders.get(cacheKey);
if (cached) {
return cached;
}
const loader = createJiti(import.meta.url, {
...buildPluginLoaderJitiOptions(aliasMap),
tryNative,
});
jitiLoaders.set(cacheKey, loader);
return loader;
};
}