JSPM

@appworks/codemod

0.2.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • 0
    • Score
      100M100P100Q59384F

    AppWorks codemod scripts

    Package Exports

    • @appworks/codemod

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@appworks/codemod) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    @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