diff --git a/src/lib/import-esm-package.ts b/src/lib/import-esm-package.ts index 57dad05a9..02af8dc9d 100644 --- a/src/lib/import-esm-package.ts +++ b/src/lib/import-esm-package.ts @@ -2,9 +2,17 @@ * Dynamically imports an ESM package in a CommonJS NestJS project, * avoiding TypeScript transpilation to `require()`, which ESM packages do not support. */ + export const importEsmPackage = async ( packageName: string, -): Promise => - new Function(`return import('${packageName}')`)().then( - (loadedModule: unknown) => loadedModule['default'] ?? loadedModule, - ); +): Promise => { + try { + const modulePromise = eval(`import('${packageName}')`); + const module = await modulePromise; + + return (module.default || module) as ReturnType; + } catch (error) { + console.error(`Error importing ESM package ${packageName}:`, error); + throw error; + } +};