Package Exports
- ngast
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ngast) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ngast
This library provides user friendly API for parsing Angular projects.
Getting started
$ npm i @angular/core @angular/compiler @angular/compiler-cli ngast --save
ngastis built on top of Ivy (ngtsc), make sure to compile your project withngcc(runng serve,ng buildornpx ngcc).
Workspace
First you need connect the WorkspaceSymbols to the tsconfig.json root :
import { join } from 'path';
import { WorkspaceSymbols } from 'ngast';
const config = join(process.cwd(), 'tsconfig.json');
const workspace = new WorkspaceSymbols(config);From there you can find all the decorated classes in your project :
const modules = workspace.getAllModules();
const components = workspace.getAllComponents();
const directives = workspace.getAllDirectives();
const injectables = workspace.getAllInjectable();
const pipes = workspace.getAllPipes();The first time one of the method above is called, ngast will run the analysis of the workspace.
The analysis is currently quite long: >10sec for a small project can go beyond 2min for a very large project.
Working without Ivy
Version 0.4.0 is built on top of the ViewEngine, you can take a look at the documentation here.
Example
Projects using ngast:
- ngrev - Tool for reverse engineering of Angular applications.
- codelyzer - Static code analysis for Angular projects.
- ngworld - Visualization of Angular projects.
- ng-app-counter - Counter for Angular applications.
- ng-pathfinder - Show a list of all routes in an angular application.
- ngx-translate-all - Tool for automate i18n Angular projects.
- ngx-translate-migrate - Tool for migrate from ngx-translate to Angular i18n.
License
MIT