UNPKG

@juit/check-updates

Version:

Small and fast utility to update package dependencies

39 lines (38 loc) 1.21 kB
// npmrc.ts import fs from "node:fs/promises"; import path from "node:path"; import { parse } from "ini"; function replaceEnvironmentVariable(token) { return token.replace(/^\$\{?([^}]*)\}?$/, (_match, ...vars) => { return process.env[vars[0]] || ""; }); } async function readIniFile(filename) { try { const data = await fs.readFile(filename, "utf8"); const npmrc = parse(data); for (const key in npmrc) { if (typeof npmrc[key] === "string") { npmrc[key] = replaceEnvironmentVariable(npmrc[key]); } } return npmrc; } catch (error) { if (error.code === "ENOENT") return {}; throw error; } } async function readNpmRc(packageJsonFile) { const local = readIniFile(path.resolve(packageJsonFile, "..", ".npmrc")); const user = readIniFile( process.env.NPM_CONFIG_USERCONFIG ? process.env.NPM_CONFIG_USERCONFIG : process.env.HOME ? path.resolve(process.env.HOME, ".npmrc") : "" ); const global = readIniFile( process.env.NPM_CONFIG_GLOBALCONFIG ? process.env.NPM_CONFIG_GLOBALCONFIG : "/etc/npmrc" ); return Object.assign({}, ...await Promise.all([global, user, local])); } export { readNpmRc }; //# sourceMappingURL=npmrc.mjs.map