diff --git a/packages/angular_devkit/core/src/workspace/json/reader_spec.ts b/packages/angular_devkit/core/src/workspace/json/reader_spec.ts index 8d21ad8e9828..b6ac75b95971 100644 --- a/packages/angular_devkit/core/src/workspace/json/reader_spec.ts +++ b/packages/angular_devkit/core/src/workspace/json/reader_spec.ts @@ -86,6 +86,13 @@ describe('readJsonWorkpace Parsing', () => { ); }); + it(`doesn't remove falsy values when using the spread operator`, async () => { + const host = createTestHost(representativeFile); + const workspace = await readJsonWorkspace('', host); + const prodConfig = workspace.projects.get('my-app')!.targets.get('build')!.configurations!.production!; + expect({ ...prodConfig }).toEqual(prodConfig); + }); + it('parses extensions only into extensions object', async () => { const host = createTestHost(representativeFile); diff --git a/packages/angular_devkit/core/src/workspace/json/utilities.ts b/packages/angular_devkit/core/src/workspace/json/utilities.ts index 24a737f57479..c101eda1ae14 100644 --- a/packages/angular_devkit/core/src/workspace/json/utilities.ts +++ b/packages/angular_devkit/core/src/workspace/json/utilities.ts @@ -148,7 +148,7 @@ function create( const propertyPath = path + '/' + escapeKey(p); const cacheEntry = cache.get(propertyPath); if (cacheEntry) { - if (cacheEntry.value) { + if (cacheEntry.value !== undefined) { return createPropertyDescriptor(cacheEntry.value); }