@halsp/core
Version:
面向云的现代渐进式轻量 Node.js 框架
25 lines (22 loc) • 522 B
text/typescript
import type {} from "@halsp/cli";
import url from "url";
export async function safeImport<T = any>(name: string) {
try {
try {
return (await dynamicImport(name)) as T;
} catch {
try {
return _require(name) as T;
} catch {
return (await dynamicImport(url.pathToFileURL(name).toString())) as T;
}
}
} catch {
return null;
}
}
const dynamicImport = new Function(
"specifier",
`return import(specifier);
`,
) as <T = any>(specifier: string) => Promise<T>;