ngast
This library provides user friendly API for parsing Angular projects.
Getting started
$ npm i @angular/core @angular/compiler @angular/compiler-cli ngast --save
ngast
is built on top of Ivy (ngtsc
), make sure to compile your project withngcc
(runng serve
,ng build
ornpx 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