From af8c26e5a1f1eedcd928b1d351a91df82d532b1c Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Wed, 5 Aug 2020 08:35:52 +0200 Subject: [PATCH] Use JSON.parse to parse package.json file in v2 migration --- packages/apollo-angular/CHANGELOG.md | 4 ++++ packages/apollo-angular/schematics/migrations/v2.ts | 2 +- packages/apollo-angular/schematics/utils/file.ts | 5 ++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/apollo-angular/CHANGELOG.md b/packages/apollo-angular/CHANGELOG.md index b79f6ada8..21fa15e4b 100644 --- a/packages/apollo-angular/CHANGELOG.md +++ b/packages/apollo-angular/CHANGELOG.md @@ -2,6 +2,10 @@ ### vNext +### v2.0.3 + +- Use JSON.parse to parse `package.json` file in v2 migration + ### v2.0.2 - Fix duplicated imports in v2 migration diff --git a/packages/apollo-angular/schematics/migrations/v2.ts b/packages/apollo-angular/schematics/migrations/v2.ts index 2a623d8f3..251ac3ad4 100644 --- a/packages/apollo-angular/schematics/migrations/v2.ts +++ b/packages/apollo-angular/schematics/migrations/v2.ts @@ -17,7 +17,7 @@ export default function (): Rule { function migrateDependencies() { return (tree: Tree, context: SchematicContext) => { const packageJsonPath = 'package.json'; - const packageJson = getJsonFile(tree, packageJsonPath); + const packageJson = getJsonFile(tree, packageJsonPath, true); packageJson.dependencies = packageJson.dependencies || {}; diff --git a/packages/apollo-angular/schematics/utils/file.ts b/packages/apollo-angular/schematics/utils/file.ts index 7a4624a51..f5e0a4c5b 100644 --- a/packages/apollo-angular/schematics/utils/file.ts +++ b/packages/apollo-angular/schematics/utils/file.ts @@ -10,7 +10,7 @@ export function parseJSON(content: string): T { * @param host {Tree} The source tree. * @param path {String} The path to the file to read. Relative to the root of the tree. */ -export function getJsonFile(host: Tree, path: string) { +export function getJsonFile(host: Tree, path: string, strict = false) { const buffer = host.read(path); if (buffer === null) { throw new SchematicsException(`Couldn't read ${path}!`); @@ -18,6 +18,9 @@ export function getJsonFile(host: Tree, path: string) { const content = buffer.toString('utf-8'); try { + if (strict) { + return JSON.parse(content); + } // remove comments :) return parseJSON(content); } catch (e) {