Fix CI test compatibility on Node 20

This commit is contained in:
Youzini-afk
2026-04-10 15:14:05 +08:00
parent c47f4f61d3
commit eaac52473e
12 changed files with 301 additions and 278 deletions

View File

@@ -1,5 +1,9 @@
import assert from "node:assert/strict";
import { createRequire, registerHooks } from "node:module";
import { createRequire } from "node:module";
import {
installResolveHooks,
toDataModuleUrl,
} from "./helpers/register-hooks-compat.mjs";
const extensionsShimSource = [
"export const extension_settings = globalThis.__llmStreamingExtensionSettings || {};",
@@ -22,39 +26,30 @@ const openAiShimSource = [
"}",
].join("\n");
registerHooks({
resolve(specifier, context, nextResolve) {
if (
specifier === "../../../extensions.js" ||
specifier === "../../../../extensions.js" ||
specifier === "../../../../../extensions.js"
) {
return {
shortCircuit: true,
url: `data:text/javascript,${encodeURIComponent(extensionsShimSource)}`,
};
}
if (
specifier === "../../../../script.js" ||
specifier === "../../../../../script.js"
) {
return {
shortCircuit: true,
url: `data:text/javascript,${encodeURIComponent(scriptShimSource)}`,
};
}
if (
specifier === "../../../openai.js" ||
specifier === "../../../../openai.js"
) {
return {
shortCircuit: true,
url: `data:text/javascript,${encodeURIComponent(openAiShimSource)}`,
};
}
return nextResolve(specifier, context);
installResolveHooks([
{
specifiers: [
"../../../extensions.js",
"../../../../extensions.js",
"../../../../../extensions.js",
],
url: toDataModuleUrl(extensionsShimSource),
},
});
{
specifiers: [
"../../../../script.js",
"../../../../../script.js",
],
url: toDataModuleUrl(scriptShimSource),
},
{
specifiers: [
"../../../openai.js",
"../../../../openai.js",
],
url: toDataModuleUrl(openAiShimSource),
},
]);
const require = createRequire(import.meta.url);
const originalRequire = globalThis.require;