diff --git a/lib/modules/manager/npm/extract/yarnrc.spec.ts b/lib/modules/manager/npm/extract/yarnrc.spec.ts index 499741626072c582195f727559d4794a64b388d5..0b77d7ccf34cf9ebe314e536292901c315b2e30a 100644 --- a/lib/modules/manager/npm/extract/yarnrc.spec.ts +++ b/lib/modules/manager/npm/extract/yarnrc.spec.ts @@ -43,6 +43,16 @@ describe('modules/manager/npm/extract/yarnrc', () => { }); expect(registryUrl).toBeNull(); }); + + it('ignores missing scope registryServer', () => { + const registryUrl = resolveRegistryUrl('@scope/a-package', { + npmScopes: { + scope: {}, + }, + npmRegistryServer: 'https://private.example.com/npm', + }); + expect(registryUrl).toBeNull(); + }); }); describe('loadConfigFromYarnrcYml()', () => { @@ -91,6 +101,7 @@ describe('modules/manager/npm/extract/yarnrc', () => { `, null, ], + ['', null], ])('produces expected config (%s)', (yarnrcYml, expectedConfig) => { const config = loadConfigFromYarnrcYml(yarnrcYml); diff --git a/lib/modules/manager/npm/extract/yarnrc.ts b/lib/modules/manager/npm/extract/yarnrc.ts index 81f344851831a6b6933a439df2bd83eaed48e474..49e32e218436a4a59e317ee8dccf1704ea818347 100644 --- a/lib/modules/manager/npm/extract/yarnrc.ts +++ b/lib/modules/manager/npm/extract/yarnrc.ts @@ -17,11 +17,14 @@ export type YarnConfig = z.infer<typeof YarnrcYmlSchema>; export function loadConfigFromYarnrcYml(yarnrcYml: string): YarnConfig | null { try { - return YarnrcYmlSchema.parse( - load(yarnrcYml, { - json: true, - }) - ); + const obj = load(yarnrcYml, { + json: true, + }); + if (!obj) { + // emtpy yaml file + return null; + } + return YarnrcYmlSchema.parse(obj); } catch (err) { logger.warn({ yarnrcYml, err }, `Failed to load yarnrc file`); return null;