renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
51 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadConfigFromLegacyYarnrc = loadConfigFromLegacyYarnrc;
exports.loadConfigFromYarnrcYml = loadConfigFromYarnrcYml;
exports.resolveRegistryUrl = resolveRegistryUrl;
const tslib_1 = require("tslib");
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
const logger_1 = require("../../../../logger");
const regex_1 = require("../../../../util/regex");
const result_1 = require("../../../../util/result");
const schema_1 = require("../schema");
const registryRegEx = (0, regex_1.regEx)(/^"?(@(?<scope>[^:]+):)?registry"? "?(?<registryUrl>[^"]+)"?$/gm);
function loadConfigFromLegacyYarnrc(legacyYarnrc) {
const registryMatches = [...legacyYarnrc.matchAll(registryRegEx)]
.map((m) => m.groups)
.filter(is_1.default.truthy);
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_1.Result.parse(yarnrcYml, schema_1.YarnConfig)
.onError((err) => {
logger_1.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;
}
//# sourceMappingURL=yarnrc.js.map