@appworks/doctor

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

Usage no npm install needed!

<script type="module">
  import appworksDoctor from 'https://cdn.skypack.dev/@appworks/doctor';
</script>

README

AppWorks Doctor

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

1. Code Scanner

Installation

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

or

$ npm install -g @appworks/doctor

Usage

const { Doctor } = require('@appworks/doctor');

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

Usage(CLI)

Use $ appworks-doctor -h for help.

Scan

$ appworks-doctor -s ./

Options

$ appworks-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/@appworks/doctor/tmp/.
  • disableESLint?: boolean, whether disable ESLint part reports.
  • disableMaintainability?: boolean, whether disable maintainability part reports.
  • disableRepeatability?: boolean, whether disable repeatability part reports.
  • disableCodemod?: boolean, whether disable codemod part reports.

Result

ESLint

Use @applint/spec check your project.

.eslintrc.js customConfig will merge into ESLint config.

// .eslintrc.js
const { getESLintConfig } = require('@applint/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.

Codemod

Use @applint/applint check and update Rax and React deprecated usages.

Enjoy!