UNPKG

@hairy/lnv

Version:
56 lines (53 loc) 1.77 kB
import {createRequire as __createRequire} from 'module';var require=__createRequire(import.meta.url); // src/internal/resolve.ts import fs from "node:fs"; import path from "node:path"; import consola from "consola"; import { resolvePath, resolvePathSync } from "mlly"; import { resolveGlobal } from "resolve-global"; async function resolveImport(module, ensure = false) { try { return await resolvePath(module, { url: import.meta.url }); } catch (error) { consola.log(error); } try { return resolveGlobal(module); } catch { } if (ensure) throw new Error(`Failed to resolve package ${module}`); else consola.warn(`Failed to resolve package ${module}`); } function resolveImportSync(module, ensure = false) { try { return resolvePathSync(module, { url: import.meta.url }); } catch (error) { consola.log(error); } try { return resolveGlobal(module); } catch { } if (ensure) throw new Error(`Failed to resolve package ${module}`); else consola.warn(`Failed to resolve package ${module}`); } async function resolveImportBin(module, bin, ensure = false) { const root = path.dirname(await resolveImport(`${module}/package.json`, ensure)); const json = JSON.parse(fs.readFileSync(path.join(root, "package.json"), "utf-8")); return path.join(root, bin ? json.bin[bin] : Object.values(json.bin)[0]); } function resolveImportBinSync(module, bin, ensure = false) { const root = path.dirname(resolveImportSync(`${module}/package.json`, ensure)); const json = JSON.parse(fs.readFileSync(path.join(root, "package.json"), "utf-8")); return path.join(root, bin ? json.bin[bin] : Object.values(json.bin)[0]); } export { resolveImport, resolveImportSync, resolveImportBin, resolveImportBinSync };