UNPKG

esm-requirer

Version:

* use import instead of require

49 lines 1.52 kB
import _ from 'lodash'; import { createSimport } from 'simport'; import { createRequire } from 'module'; import path from 'path'; const simport = createSimport(import.meta.url); const req = createRequire(import.meta.url); export async function requiresTrySimport(opts) { const { modulesPaths = [], flat = false } = opts; if (!modulesPaths?.length) { return []; } const requireResults = []; const errors = []; for (const modulePath of modulesPaths) { try { if (typeof modulePath !== 'string') { continue; } if (modulePath.endsWith('.json')) { requireResults.push(req(modulePath)); continue; } const module = await simport(modulePath); requireResults.push(module.default); } catch (error) { errors.push({ modulePath, error }); } } if (flat) { return _.flattenDeep(requireResults); } return requireResults; } export async function reTryCatch({ fn, title, defaultValue }) { try { return { result: await fn() }; } catch (e) { return { result: defaultValue, error: `'${title}':\nERR: ${e}` }; } } export async function getPackageJson(appPath) { const packageJson = (await requiresTrySimport({ modulesPaths: [path.join(appPath, 'package.json')] }))[0]; return packageJson; } //# sourceMappingURL=index.js.map