UNPKG

@suites/unit

Version:
42 lines (41 loc) 1.43 kB
/** * ESM version of PackageResolver with import.meta.resolve strategy. * Pure IoC composition with factory function. * @module */ import { PackageResolver as BasePackageResolver } from './package-resolver.base.js'; /** * ESM package resolution strategy using import.meta.resolve * Falls back to require.resolve for special cases like Vitest */ function createEsmResolverStrategy() { return (path) => { // In special cases like Vitest, we need to use the require function to resolve the path. // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - import.meta may not exist in all contexts if (typeof import.meta.resolve !== 'function' && typeof require === 'function') { try { require.resolve(path); return true; } catch (error) { return false; } } try { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - import.meta.resolve may not exist in all Node versions import.meta.resolve(path); return true; } catch { return false; } }; } /** * Creates a PackageResolver instance with ESM resolution strategy */ export function createPackageResolver(adapters) { return new BasePackageResolver(adapters, createEsmResolverStrategy()); }