@rnm/pm
Version:
Unified Package Manager for Node.js
19 lines • 4.63 kB
JavaScript
import { styleText } from "node:util";
import { run } from "../base.js";
import { getPackageJson } from "../common.js";
import { executorMap } from "../constants.js";
import { detect } from "../utils/detector.js";
export async function executeShim(pm, args, execute) {
// Corepack has transparent configs: https://github.com/nodejs/corepack/blob/main/config.json.
// That means we can use npx/pnpx in any project, which is confused. So we disallow it.
const result = await detect();
if (result && result.name !== pm) {
throw new Error(`Current project should use ${result.name} as package manager.`);
}
const runningCommand = execute ? executorMap[pm] : pm;
const recommendedCommand = execute ? "px" : "pm";
// eslint-disable-next-line no-console -- If we don't add console here, we need to add it to all the callers, which is tedious.
console.warn(styleText("dim", `⚠️ You are using '${runningCommand}', which is a shim created by '@rnm/pm' (v${(await getPackageJson()).version}). We recommend that you always use the '${recommendedCommand}' command directly, rather than '${runningCommand}'.`));
return await run({ name: pm, ...(result?.version && { version: result.version }) }, args, execute);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1zaGltLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoaW1zL2V4ZWN1dGUtc2hpbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFvQixNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsRUFBZSxFQUNmLElBQWMsRUFDZCxPQUFpQjtJQUVqQiw4RkFBOEY7SUFDOUYsdUZBQXVGO0lBQ3ZGLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxFQUFFLENBQUM7SUFDOUIsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUNiLDhCQUE4QixNQUFNLENBQUMsSUFBSSxzQkFBc0IsQ0FDaEUsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRCwrSEFBK0g7SUFDL0gsT0FBTyxDQUFDLElBQUksQ0FDVixTQUFTLENBQ1AsS0FBSyxFQUNMLHFCQUFxQixjQUFjLDZDQUE2QyxDQUFDLE1BQU0sY0FBYyxFQUFFLENBQUMsQ0FBQyxPQUFPLDRDQUE0QyxrQkFBa0Isb0NBQW9DLGNBQWMsSUFBSSxDQUNyTyxDQUNGLENBQUM7SUFDRixPQUFPLE1BQU0sR0FBRyxDQUNkLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUNqRSxJQUFJLEVBQ0osT0FBTyxDQUNSLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3R5bGVUZXh0IH0gZnJvbSBcIm5vZGU6dXRpbFwiO1xuaW1wb3J0IHsgcnVuIH0gZnJvbSBcIi4uL2Jhc2UudHNcIjtcbmltcG9ydCB7IGdldFBhY2thZ2VKc29uIH0gZnJvbSBcIi4uL2NvbW1vbi50c1wiO1xuaW1wb3J0IHsgZXhlY3V0b3JNYXAsIHR5cGUgU3VwcG9ydGVkUG0gfSBmcm9tIFwiLi4vY29uc3RhbnRzLnRzXCI7XG5pbXBvcnQgeyBkZXRlY3QgfSBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0b3IudHNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVTaGltKFxuICBwbTogU3VwcG9ydGVkUG0sXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBleGVjdXRlPzogYm9vbGVhbixcbikge1xuICAvLyBDb3JlcGFjayBoYXMgdHJhbnNwYXJlbnQgY29uZmlnczogaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9jb3JlcGFjay9ibG9iL21haW4vY29uZmlnLmpzb24uXG4gIC8vIFRoYXQgbWVhbnMgd2UgY2FuIHVzZSBucHgvcG5weCBpbiBhbnkgcHJvamVjdCwgd2hpY2ggaXMgY29uZnVzZWQuIFNvIHdlIGRpc2FsbG93IGl0LlxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZXRlY3QoKTtcbiAgaWYgKHJlc3VsdCAmJiByZXN1bHQubmFtZSAhPT0gcG0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ3VycmVudCBwcm9qZWN0IHNob3VsZCB1c2UgJHtyZXN1bHQubmFtZX0gYXMgcGFja2FnZSBtYW5hZ2VyLmAsXG4gICAgKTtcbiAgfVxuICBjb25zdCBydW5uaW5nQ29tbWFuZCA9IGV4ZWN1dGUgPyBleGVjdXRvck1hcFtwbV0gOiBwbTtcbiAgY29uc3QgcmVjb21tZW5kZWRDb21tYW5kID0gZXhlY3V0ZSA/IFwicHhcIiA6IFwicG1cIjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGUgLS0gSWYgd2UgZG9uJ3QgYWRkIGNvbnNvbGUgaGVyZSwgd2UgbmVlZCB0byBhZGQgaXQgdG8gYWxsIHRoZSBjYWxsZXJzLCB3aGljaCBpcyB0ZWRpb3VzLlxuICBjb25zb2xlLndhcm4oXG4gICAgc3R5bGVUZXh0KFxuICAgICAgXCJkaW1cIixcbiAgICAgIGDimqDvuI8gWW91IGFyZSB1c2luZyAnJHtydW5uaW5nQ29tbWFuZH0nLCB3aGljaCBpcyBhIHNoaW0gY3JlYXRlZCBieSAnQHJubS9wbScgKHYkeyhhd2FpdCBnZXRQYWNrYWdlSnNvbigpKS52ZXJzaW9ufSkuIFdlIHJlY29tbWVuZCB0aGF0IHlvdSBhbHdheXMgdXNlIHRoZSAnJHtyZWNvbW1lbmRlZENvbW1hbmR9JyBjb21tYW5kIGRpcmVjdGx5LCByYXRoZXIgdGhhbiAnJHtydW5uaW5nQ29tbWFuZH0nLmAsXG4gICAgKSxcbiAgKTtcbiAgcmV0dXJuIGF3YWl0IHJ1bihcbiAgICB7IG5hbWU6IHBtLCAuLi4ocmVzdWx0Py52ZXJzaW9uICYmIHsgdmVyc2lvbjogcmVzdWx0LnZlcnNpb24gfSkgfSxcbiAgICBhcmdzLFxuICAgIGV4ZWN1dGUsXG4gICk7XG59XG4iXX0=