/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { JsonParseMode, experimental, parseJson } from '@angular-devkit/core'; import { SchematicsException, Tree } from '@angular-devkit/schematics'; export type WorkspaceSchema = experimental.workspace.WorkspaceSchema; export function getWorkspacePath(host: Tree): string { const possibleFiles = [ '/angular.json', '/.angular.json' ]; const path = possibleFiles.filter(path => host.exists(path))[0]; return path; } export function getWorkspace(host: Tree): WorkspaceSchema { const path = getWorkspacePath(host); const configBuffer = host.read(path); if (configBuffer === null) { throw new SchematicsException(`Could not find (${path})`); } const content = configBuffer.toString(); return parseJson(content, JsonParseMode.Loose) as {} as WorkspaceSchema; }