npm.io
0.4.8 • Published 5 years agoCLI

@iceworks/doctor

Licence
—
Version
0.4.8
Deps
15
Size
50 kB
Vulns
0
Weekly
0

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!

Keywords