Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

apptools-lab/codemod

Open more actions menu

Repository files navigation

@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; // transform key, see `Included Transforms`
  title: string; // transform description title
  title_en: string; 
  message: string; // transform description message
  message_en: string; 
  severity: 0 | 1 | 2; // 0: advice 1: warning 2: error
  mode: "run" | "check"; // mode, see API
  docs: string; // docs url
  output: string; // jscodeshift CLI output
  npm_deprecate?: string; // same as https://docs.npmjs.com/cli/v7/commands/npm-deprecate/ 
}

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

About

🐒 AppWorks codemod scripts

Topics

Resources

Stars

Watchers

Forks

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.