We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 1f24b79 commit 3ac2581Copy full SHA for 3ac2581
1 file changed
src/lib/import-esm-package.ts
@@ -2,9 +2,17 @@
2
* Dynamically imports an ESM package in a CommonJS NestJS project,
3
* avoiding TypeScript transpilation to `require()`, which ESM packages do not support.
4
*/
5
+
6
export const importEsmPackage = async <ReturnType>(
7
packageName: string,
-): Promise<ReturnType> =>
8
- new Function(`return import('${packageName}')`)().then(
9
- (loadedModule: unknown) => loadedModule['default'] ?? loadedModule,
10
- );
+): Promise<ReturnType> => {
+ try {
+ const modulePromise = eval(`import('${packageName}')`);
11
+ const module = await modulePromise;
12
13
+ return (module.default || module) as ReturnType;
14
+ } catch (error) {
15
+ console.error(`Error importing ESM package ${packageName}:`, error);
16
+ throw error;
17
+ }
18
+};
0 commit comments