puppeteer/packages/ng-schematics/src/schematics/utils/json.ts
Nikolay Vitkov 3f2c0590f1
chore(ng-schematics): Add Angular Schematics (#9222)
**What kind of change does this PR introduce?**

It introduces schematic for Angular that integrate with its CLI.
First revision support Jasmine.

**Did you add tests for your changes?**

Added Unit tests for each scenario. 

**Summary**

The idea is to provide a an example for setting up Puppeteer and Angular
for testing user flows.

**Does this PR introduce a breaking change?**

No

**Other information**

For Feature PRs:

- Introduce CL for tests
- Hook up NPM package publishing
- Update README.md
2022-11-09 14:52:10 +01:00

39 lines
1.2 KiB
TypeScript

/**
* Copyright 2022 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {SchematicsException, Tree} from '@angular-devkit/schematics';
export function getJsonFileAsObject(
tree: Tree,
path: string
): Record<string, any> {
try {
const buffer = tree.read(path) as Buffer;
const content = buffer.toString();
return JSON.parse(content);
} catch {
throw new SchematicsException(`Unable to retrieve file at ${path}.`);
}
}
export function getObjectAsJson(object: Record<string, any>): string {
return JSON.stringify(object, null, 2);
}
export function getAngularConfig(tree: Tree): Record<string, any> {
return getJsonFileAsObject(tree, './angular.json');
}