From d7ebacd17934d75228aedb0ac4fbdb6624eb3feb Mon Sep 17 00:00:00 2001 From: Martin Jesper Low Madsen Date: Sun, 5 Jul 2020 22:21:34 +0200 Subject: [PATCH] fix(plugin-version): Correctly check void releases for all falsy values (#1536) js-yaml implements the YAML spec and it has no undefined type: - https://github.com/nodeca/js-yaml/issues/356#issuecomment-311614322 I.e.: ``` > require('js-yaml').safeLoad('') undefined > require('js-yaml').safeLoad('releases:\n') { releases: null } ``` --- .yarn/versions/7bfd08a0.yml | 2 ++ packages/plugin-version/sources/versionUtils.ts | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 .yarn/versions/7bfd08a0.yml diff --git a/.yarn/versions/7bfd08a0.yml b/.yarn/versions/7bfd08a0.yml new file mode 100644 index 000000000000..a10256495695 --- /dev/null +++ b/.yarn/versions/7bfd08a0.yml @@ -0,0 +1,2 @@ +releases: + "@yarnpkg/plugin-version": prerelease diff --git a/packages/plugin-version/sources/versionUtils.ts b/packages/plugin-version/sources/versionUtils.ts index 9901ac781c93..b2d377d28816 100644 --- a/packages/plugin-version/sources/versionUtils.ts +++ b/packages/plugin-version/sources/versionUtils.ts @@ -174,10 +174,11 @@ export async function updateVersionFiles(project: Project) { const versionContent = await xfs.readFilePromise(versionPath, `utf8`); const versionData = parseSyml(versionContent); - if (typeof versionData.releases === `undefined`) + const releases = versionData?.releases; + if (!releases) continue; - for (const locatorStr of Object.keys(versionData.releases || {})) { + for (const locatorStr of Object.keys(releases)) { const locator = structUtils.parseLocator(locatorStr); const workspace = project.tryWorkspaceByLocator(locator);