@appworks/codemod
AppWorks codemod scripts for rax, ice and react project.
Install
$ npm i @appworks/codemod -g
Usage
1. CLI
$ appworks-codemod <transform> <path> [...options?]
transform
- name of transform, see available transforms below.path
- files or directory to transform.options?
- option for jscodeshift.
Example:
$ appworks-codemod plugin-rax-component-to-component ./
2. API
Check()
You can retrieve the recommended codemod of the current project through the check
method.
Options:
- directory: string, the target directory path
- files: string[], the target directory files path array
Return:
- results: IResult[] (see interface), the target project recommended codemod info array.
Example:
import glob from "glob";
import { check } from "@appworks/codemod";
const dir = "/xxx/xx";
glob(
"**/*",
{ cwd: dir, ignore: ["**/node_modules/**"], nodir: true, realpath: true },
function (er, files) {
check(dir, files).then((results) => {
console.log(results);
});
}
);
Run()
You can use the run
method to execute specific codemod.
Options:
- directory: string, the target directory path
- files: string[], the target directory files path array
- transform: string, the name of transform, see available transforms below.
Return:
- result: IResult (see interface), run codemod result.
Example:
import glob from "glob";
import { check } from "@appworks/codemod";
const dir = "/xxx/xx";
glob(
"**/*",
{ cwd: dir, ignore: ["**/node_modules/**"], nodir: true, realpath: true },
function (er, files) {
run(dir, files, "plugin-rax-component-to-component").then((result) => {
console.log(result);
});
}
);
Interface
IResult:
interface IResult {
transform: string;
title: string;
title_en: string;
message: string;
message_en: string;
severity: 0 | 1 | 2;
mode: "run" | "check";
docs: string;
output: string;
npm_deprecate?: string;
}
Included Transforms
1. plugin-rax-component-to-component
Update plugin-rax-component
to plugin-component
. docs
2. lint-config-to-spec
Follow Alibaba FED lint rules, and use @iceworks/spec
best practices. docs