UNPKG

@graphql-mesh/utils

Version:
56 lines (55 loc) 1.89 kB
import { path as pathModule } from '@graphql-mesh/cross-helpers'; function defaultImportFn(path) { return import(/* @vite-ignore */ path).then(module => { let i = 0; while (module?.default != null) { if (i > 10 || module === module.default) { break; } module = module.default; i++; } if (typeof module === 'object' && module != null) { const prototypeOfObject = Object.getPrototypeOf(module); if (prototypeOfObject == null || prototypeOfObject === Object.prototype) { const normalizedVal = {}; for (const key in module) { normalizedVal[key] = module[key]; } return normalizedVal; } } return module; }, e => { if (e.code === 'ERR_REQUIRE_ESM') { // eslint-disable-next-line no-new-func return new Function(`return import(${JSON.stringify(path)})`)(); } if (pathModule.isAbsolute(path) && !path.endsWith('.js') && !path.endsWith('.ts')) { return defaultImportFn(`${path}.ts`); } throw e; }); } function handleImport(module) { let i = 0; while (module?.default != null) { if (i > 10 || module === module.default) { break; } module = module.default; i++; } if (typeof module === 'object' && module != null) { const prototypeOfObject = Object.getPrototypeOf(module); if (prototypeOfObject == null || prototypeOfObject === Object.prototype) { const normalizedVal = {}; for (const key in module) { normalizedVal[key] = module[key]; } return normalizedVal; } } return module; } export { defaultImportFn, handleImport };