diff --git a/.eslintrc.decaffeinate.js b/.eslintrc.decaffeinate.js new file mode 100644 index 0000000000..70bcf3a937 --- /dev/null +++ b/.eslintrc.decaffeinate.js @@ -0,0 +1,13 @@ +const _ = require('lodash') +const baseConfig = require('./.eslintrc.json') + +module.exports = _.defaultsDeep({}, baseConfig, { + rules: { + // auto-fix removing some common unnecessary returns + '@cypress/dev/no-return-before': 'error', + // make sure we use arrow callback + 'prefer-arrow-callback': 'error', + // since our jscodemod scripts will format one-line-body functions as single line + 'arrow-body-style': ['error', 'always'], + }, +}) diff --git a/.eslintrc b/.eslintrc.json similarity index 100% rename from .eslintrc rename to .eslintrc.json diff --git a/.gitignore b/.gitignore index 83a7f76c92..6c6a928f37 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,6 @@ scripts/support package-lock.json yarn.lock binary-url.json + +# Allows us to dynamically create eslint rules that override the default for Decaffeinate scripts +.eslintrc.js diff --git a/.vscode/tasks.json b/.vscode/tasks.json index e0be7458b6..8692aff0d4 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -6,7 +6,13 @@ { "label": "decaffeinate-bulk file", "type": "shell", - "command": "npm run decaffeinate-bulk -- --file ${file} convert", + "command": "npm run decaffeinate-bulk -- convert --file ${file}", + "problemMatcher": [] + }, + { + "label": "decaffeinate-bulk multiple files", + "type": "shell", + "command": "npm run decaffeinate-bulk -- convert --file ${file} ${file}", "problemMatcher": [] }, { @@ -14,16 +20,6 @@ "type": "shell", "command": "npm run decaffeinate-bulk -- --dir ${fileDirname} convert", "problemMatcher": [] - }, - { - "label": "decaffeinate", - "type": "shell", - "command": "npm run decaffeinate -- ${file}" - }, - { - "label": "jscodeshift", - "type": "shell", - "command": "npm run jscodeshift -- ${file}" } ] } diff --git a/package.json b/package.json index 283b3503eb..8cdfe7ebf5 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,9 @@ "cypress:run": "node ./cli/bin/cypress run --dev", "cypress:run:debug": "node ./scripts/debug.js cypress:run", "cypress:verify": "node ./cli/bin/cypress verify --dev", - "decaffeinate": "decaffeinate --use-cs2 --loose", + "predecaffeinate-bulk": "shx cp .eslintrc.decaffeinate.js .eslintrc.js", "decaffeinate-bulk": "bulk-decaffeinate", + "postdecaffeinate-bulk": "shx rm .eslintrc.js", "dev": "node ./scripts/start.js", "dev-debug": "node ./scripts/debug.js dev", "docker": "./scripts/run-docker-local.sh",