Narcoleptic Pasta Manufacturer
    Wondering what’s next for npm?Check out our public roadmap! »

    @iceworks/doctor
    TypeScript icon, indicating that this package has built-in type declarations

    0.4.7 • Public • Published

    Iceworks Doctor

    Analyse and running codemods over react/rax projects, troubleshooting and automatically fixing errors.

    1. Code Scanner

    Installation

    $ npm i @iceworks/doctor --save-dev

    or

    $ npm install -g @iceworks/doctor

    Usage

    const { Doctor } = require('@iceworks/doctor');
    
    const doctor = new Doctor(options);
    doctor.scan('/yourProjectPath').then((result) => {
      console.log(result);
    });

    Usage(CLI)

    Use $ iceworks-doctor -h for help.

    Scan

    $ iceworks-doctor -s ./

    Options

    $ iceworks-doctor -s ./ --ignore types mock

    Options

    new Doctor(options?);

    • ignore?: string[], Ignore directories, example ['mock'] . .gitignore will work too.

    scan('/yourProjectPath', options?);

    • fix?: boolean, whether fix ESLint fixable problems.
    • framework?: string, target project framework, default is react.
    • languageType?: 'js'|'ts', target project languageType, default is js.
    • tempFileDir?: string, set temp reporters file directory, default is node_modules/@iceworks/doctor/tmp/.
    • disableESLint?: boolean, whether disable ESLint part reports.
    • disableMaintainability?: boolean, whether disable maintainability part reports.
    • disableRepeatability?: boolean, whether disable repeatability part reports.

    Result

    ESLint

    Use @iceworks/spec check your project.

    .eslintrc.js customConfig will merge into ESLint config.

    // .eslintrc.js
    const { getESLintConfig } = require('@iceworks/spec');
     
    // getESLintConfig(rule: 'rax'|'react', customConfig?);
    module.exports = getESLintConfig('react', {
      'no-unused-vars': 'off'
    });

    .eslintignore ignore config will merge into ESLint ignore.

    Maintainability

    Use typhonjs-escomplex calculate complexity reports.

    Repeatability

    Use jscpd calculate repeatability reports.

    2. Codemod

    This repository also contains a collection of codemod scripts that help update React(ICE) and Rax APIs.

    Installation

    Install jscodeshift and @iceworks/doctor.

    $ npm i -g jscodeshift @iceworks/doctor 

    Usage (CLI)

    iceworks-doctor -c <transform> <path?> [...options?]

    • transform - name of transform, see available transforms below.
    • path? - files or directory to transform.
    • options? - some rule's options.

    This will start an interactive wizard, and then run the specified transform.

    PS: You can also clone this repository then use jscodeshift's CLI API.

    Included Transforms

    plugin-rax-component-to-component

    Update plugin-rax-component to plugin-component. See: https://rax.js.org/docs/guide/com-migration

    iceworks-doctor -c plugin-rax-component-to-component ./

    Enjoy!

    Install

    npm i @iceworks/doctor

    DownloadsWeekly Downloads

    261

    Version

    0.4.7

    License

    none

    Unpacked Size

    51.2 kB

    Total Files

    45

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar