Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mgechev/ngast
Parser for Angular projects.
https://github.com/mgechev/ngast
angular ast codelyzer static-analysis typescript
Last synced: 13 days ago
JSON representation
Parser for Angular projects.
- Host: GitHub
- URL: https://github.com/mgechev/ngast
- Owner: mgechev
- Created: 2017-01-31T23:41:12.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T18:16:52.000Z (almost 2 years ago)
- Last Synced: 2024-10-23T00:21:46.616Z (21 days ago)
- Topics: angular, ast, codelyzer, static-analysis, typescript
- Language: TypeScript
- Homepage: https://mgechev.github.io/ngast/
- Size: 3.23 MB
- Stars: 170
- Watchers: 14
- Forks: 28
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/mgechev/ngast.svg?branch=master)](https://travis-ci.org/mgechev/ngast)
# 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 with `ngcc` (run `ng serve`, `ng build` or `npx ngcc`).
## Workspace
First you need connect the `WorkspaceSymbols` to the `tsconfig.json` root :
```typescript
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 :
```typescript
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](https://ng-ast.github.io/ngast/).# Example
Projects using ngast:
- [ngrev](https://github.com/mgechev/ngrev) - Tool for reverse engineering of Angular applications.
- [codelyzer](https://github.com/mgechev/codelyzer) - Static code analysis for Angular projects.
- [ngworld](https://github.com/mgechev/ngworld) - Visualization of Angular projects.
- [ng-app-counter](https://github.com/irustm/ng-app-counter) - Counter for Angular applications.
- [ng-pathfinder](https://github.com/vakrilov/ng-pathfinder) - Show a list of all routes in an angular application.
- [ngx-translate-all](https://github.com/irustm/ngx-translate-all) - Tool for automate i18n Angular projects.
- [ngx-translate-migrate](https://github.com/irustm/ngx-translate-migrate) - Tool for migrate from ngx-translate to Angular i18n.# License
MIT