๐Ÿš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more โ†’
Socket
Book a DemoInstallSign in
Socket

ng-morph

Package Overview
Dependencies
Maintainers
0
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ng-morph

[![npm version](https://img.shields.io/npm/v/ng-morph.svg)](https://npmjs.com/package/ng-morph) [![downloads](https://img.shields.io/npm/dy/ng-morph?color=dark-green)](https://npmjs.com/package/ng-morph) [![telegram chat](https://img.shields.io/badge/supp

4.8.4
latest
Source
npm
Version published
Weekly downloads
60K
-1.22%
Maintainers
0
Weekly downloads
ย 
Created
Source

logo ng-morph

npm version downloads telegram chat

Code mutations were never easier than now.

npm i --save-dev ng-morph

You also need @angular-devkit/core and @angular-devkit/schematics to be installed.

What is it?

It is a large set of tools for both global code base updates in your project and speeding up your work on Angular schematics. It has ts-morph under the hood and allows you to manipulate with safe TypeScript AST.

Why is it better than default schematics?

๐Ÿฆ… You can quickly write migrations for your own project and run it as a simple script

๐Ÿ›  There are many tools made for working with Angular. You can easily find and manipulate TS and Ng entities.

โœ… You work with an abstract tree and it can be replaced, for example, with virtual tree for testing instead of real file system. So, you can test your schematics rapidly fast.

How to start

Install the package and visit our documentation

For example, this is how ng-morph setup looks for migrating your own project:

import {setActiveProject, createProject, getImports, NgMorphTree} from 'ng-morph';

/**
 * set all ng-morph functions to work with the all TS and JSON files
 * of the current project
 * */
setActiveProject(createProject(new NgMorphTree(), '/', ['**/*.ts', '**/*.json']));

/**
 * This simple migration gets all imports from the project TS files and
 * replaces 'old' substring with 'new'
 * */
const imports = getImports('some/path/**.ts', {
  moduleSpecifier: '@morph-old*',
});

editImports(imports, (importEntity) => ({
  moduleSpecifier: importEntity.moduleSpecifier.replace('old', 'new'),
}));

/**
 * All changes are made in a virtual project.
 * You can save them when it is time
 * */
saveActiveProject();

You can check it out on Stackblitz playground

Dive into More Examples ๐ŸŒŸ๐Ÿ”

For more examples visit this stackblitz collection

Core team

Igor Katsuba
Igor Katsuba
Roman Sedov
Roman Sedov

ng-morph is a part of Taiga UI libraries family which is backed and used by a large enterprise. This means you can rely on timely support and continuous development.

License

๐Ÿ†“ Feel free to use our library in your commercial and private applications

All ng-morph packages are covered by Apache 2.0

Read more about this license here

Keywords

typescript

FAQs

Package last updated on 30 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts