UNPKG

wxt

Version:

⚡ Next-gen Web Extension Framework

58 lines (57 loc) 1.55 kB
import { npm } from "./npm.mjs"; import { bun } from "./bun.mjs"; import { yarn } from "./yarn.mjs"; import { pnpm } from "./pnpm.mjs"; import { deno } from "./deno.mjs"; import { addDependency, addDevDependency, detectPackageManager, ensureDependencyInstalled, installDependencies, removeDependency } from "nypm"; //#region src/core/package-managers/index.ts async function createWxtPackageManager(root) { const pm = await detectPackageManager(root, { includeParentDirs: true }); const requirePm = (cb) => { if (pm == null) throw Error("Could not detect package manager"); return cb(pm); }; return { get name() { return requirePm((pm) => pm.name); }, get command() { return requirePm((pm) => pm.command); }, get version() { return requirePm((pm) => pm.version); }, get majorVersion() { return requirePm((pm) => pm.majorVersion); }, get lockFile() { return requirePm((pm) => pm.lockFile); }, get files() { return requirePm((pm) => pm.files); }, addDependency, addDevDependency, ensureDependencyInstalled, installDependencies, removeDependency, get overridesKey() { return requirePm((pm) => packageManagers[pm.name].overridesKey); }, downloadDependency(...args) { return requirePm((pm) => packageManagers[pm.name].downloadDependency(...args)); }, listDependencies(...args) { return requirePm((pm) => packageManagers[pm.name].listDependencies(...args)); } }; } const packageManagers = { npm, pnpm, bun, yarn, deno }; //#endregion export { createWxtPackageManager };