UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

36 lines (35 loc) 1.59 kB
import { regEx } from "../../../../util/regex.js"; import { logger } from "../../../../logger/index.js"; import { Result } from "../../../../util/result.js"; import { YarnConfig } from "../schema.js"; import { isTruthy } from "@sindresorhus/is"; //#region lib/modules/manager/npm/extract/yarnrc.ts const registryRegEx = regEx(/^"?(@(?<scope>[^:]+):)?registry"? "?(?<registryUrl>[^"]+)"?$/gm); function loadConfigFromLegacyYarnrc(legacyYarnrc) { const registryMatches = [...legacyYarnrc.matchAll(registryRegEx)].map((m) => m.groups).filter(isTruthy); const yarnrcConfig = {}; for (const registryMatch of registryMatches) if (registryMatch.scope) { yarnrcConfig.npmScopes ??= {}; yarnrcConfig.npmScopes[registryMatch.scope] ??= {}; yarnrcConfig.npmScopes[registryMatch.scope].npmRegistryServer = registryMatch.registryUrl; } else yarnrcConfig.npmRegistryServer = registryMatch.registryUrl; return yarnrcConfig; } function loadConfigFromYarnrcYml(yarnrcYml) { return Result.parse(yarnrcYml, YarnConfig).onError((err) => { logger.warn({ yarnrcYml, err }, `Failed to load yarnrc file`); }).unwrapOrNull(); } function resolveRegistryUrl(packageName, yarnrcConfig) { if (yarnrcConfig.npmScopes) { for (const scope in yarnrcConfig.npmScopes) if (packageName.startsWith(`@${scope}/`)) return yarnrcConfig.npmScopes[scope].npmRegistryServer ?? null; } if (yarnrcConfig.npmRegistryServer) return yarnrcConfig.npmRegistryServer; return null; } //#endregion export { loadConfigFromLegacyYarnrc, loadConfigFromYarnrcYml, resolveRegistryUrl }; //# sourceMappingURL=yarnrc.js.map