mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 07:04:45 +00:00
fix(ai): replace Function-based dynamic imports with module imports (fixes #1814)
This commit is contained in:
parent
0199abfd11
commit
668ebc0941
3 changed files with 13 additions and 8 deletions
|
|
@ -5,17 +5,20 @@ let _join: typeof import("node:path").join | null = null;
|
||||||
|
|
||||||
type DynamicImport = (specifier: string) => Promise<unknown>;
|
type DynamicImport = (specifier: string) => Promise<unknown>;
|
||||||
|
|
||||||
const dynamicImport = new Function("specifier", "return import(specifier);") as DynamicImport;
|
const dynamicImport: DynamicImport = (specifier) => import(specifier);
|
||||||
|
const NODE_FS_SPECIFIER = "node:" + "fs";
|
||||||
|
const NODE_OS_SPECIFIER = "node:" + "os";
|
||||||
|
const NODE_PATH_SPECIFIER = "node:" + "path";
|
||||||
|
|
||||||
// Eagerly load in Node.js/Bun environment only
|
// Eagerly load in Node.js/Bun environment only
|
||||||
if (typeof process !== "undefined" && (process.versions?.node || process.versions?.bun)) {
|
if (typeof process !== "undefined" && (process.versions?.node || process.versions?.bun)) {
|
||||||
dynamicImport("node:fs").then((m) => {
|
dynamicImport(NODE_FS_SPECIFIER).then((m) => {
|
||||||
_existsSync = (m as typeof import("node:fs")).existsSync;
|
_existsSync = (m as typeof import("node:fs")).existsSync;
|
||||||
});
|
});
|
||||||
dynamicImport("node:os").then((m) => {
|
dynamicImport(NODE_OS_SPECIFIER).then((m) => {
|
||||||
_homedir = (m as typeof import("node:os")).homedir;
|
_homedir = (m as typeof import("node:os")).homedir;
|
||||||
});
|
});
|
||||||
dynamicImport("node:path").then((m) => {
|
dynamicImport(NODE_PATH_SPECIFIER).then((m) => {
|
||||||
_join = (m as typeof import("node:path")).join;
|
_join = (m as typeof import("node:path")).join;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,11 @@ let _os: typeof NodeOs | null = null;
|
||||||
|
|
||||||
type DynamicImport = (specifier: string) => Promise<unknown>;
|
type DynamicImport = (specifier: string) => Promise<unknown>;
|
||||||
|
|
||||||
const dynamicImport = new Function("specifier", "return import(specifier);") as DynamicImport;
|
const dynamicImport: DynamicImport = (specifier) => import(specifier);
|
||||||
|
const NODE_OS_SPECIFIER = "node:" + "os";
|
||||||
|
|
||||||
if (typeof process !== "undefined" && (process.versions?.node || process.versions?.bun)) {
|
if (typeof process !== "undefined" && (process.versions?.node || process.versions?.bun)) {
|
||||||
dynamicImport("node:os").then((m) => {
|
dynamicImport(NODE_OS_SPECIFIER).then((m) => {
|
||||||
_os = m as typeof NodeOs;
|
_os = m as typeof NodeOs;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,8 @@ interface BedrockProviderModule {
|
||||||
|
|
||||||
type DynamicImport = (specifier: string) => Promise<unknown>;
|
type DynamicImport = (specifier: string) => Promise<unknown>;
|
||||||
|
|
||||||
const dynamicImport = new Function("specifier", "return import(specifier);") as DynamicImport;
|
const dynamicImport: DynamicImport = (specifier) => import(specifier);
|
||||||
|
const BEDROCK_PROVIDER_SPECIFIER = "./amazon-" + "bedrock.js";
|
||||||
|
|
||||||
let bedrockProviderModuleOverride: BedrockProviderModule | undefined;
|
let bedrockProviderModuleOverride: BedrockProviderModule | undefined;
|
||||||
|
|
||||||
|
|
@ -44,7 +45,7 @@ async function loadBedrockProviderModule(): Promise<BedrockProviderModule> {
|
||||||
if (bedrockProviderModuleOverride) {
|
if (bedrockProviderModuleOverride) {
|
||||||
return bedrockProviderModuleOverride;
|
return bedrockProviderModuleOverride;
|
||||||
}
|
}
|
||||||
const module = await dynamicImport("./amazon-bedrock.js");
|
const module = await dynamicImport(BEDROCK_PROVIDER_SPECIFIER);
|
||||||
return module as BedrockProviderModule;
|
return module as BedrockProviderModule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue