-
-
Notifications
You must be signed in to change notification settings - Fork 683
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: airbnb + prettier lint; and update tests (#542)
* chore: airbnb + prettier lint & fmt; * chore: del eslintcache * fix: convert IncomingForm to class * fix: convert File to class, fmt more * chore: lower devDeps, simplify test paths resolving * fix: method names, missing hashish module, one step closer * fix: organize multipart parser * chore: use self instead of this * chore: cleanup * fix ports and call done in _transform() method of multipart parser * make tests pass, add todo comments Signed-off-by: Charlike Mike Reagent <[email protected]>
- Loading branch information
1 parent
a5db8d9
commit f10d2a9
Showing
49 changed files
with
3,553 additions
and
1,498 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
CHANGELOG.md | ||
README.md | ||
*.d.ts | ||
recipes | ||
patches | ||
|
||
test-legacy | ||
*.js.snap | ||
*.tsbuildinfo | ||
.cache | ||
.*cache | ||
*.cache | ||
|
||
# TODO: lint | ||
example | ||
benchmark | ||
|
||
# Build environment | ||
dist | ||
|
||
# Package managers lockfiles | ||
package-lock.json | ||
shrinkwrap.json | ||
pnpm-lock.json | ||
|
||
# Logs | ||
logs | ||
*.log | ||
*~ | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# TypeScript v1 declaration files | ||
typings/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variables file | ||
.env | ||
|
||
# next.js build output | ||
.next |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,176 @@ | ||
'use strict'; | ||
|
||
const airbnbBase = require('eslint-config-airbnb-base'); | ||
|
||
// eslint-disable-next-line import/no-dynamic-require | ||
const bestPractices = require(airbnbBase.extends[0]); | ||
|
||
const ignoredProps = bestPractices.rules[ | ||
'no-param-reassign' | ||
][1].ignorePropertyModificationsFor.concat( | ||
'err', | ||
'x', | ||
'_', | ||
'opts', | ||
'options', | ||
'settings', | ||
'config', | ||
'cfg', | ||
); | ||
|
||
// Additional rules that are specific and overiding previous | ||
const additionalChanges = { | ||
strict: 'off', | ||
|
||
// Enforce using named functions when regular function is used, | ||
// otherwise use arrow functions | ||
'func-names': ['error', 'always'], | ||
// Always use parens (for consistency). | ||
// https://eslint.org/docs/rules/arrow-parens | ||
'arrow-parens': ['error', 'always', { requireForBlockBody: true }], | ||
'prefer-arrow-callback': [ | ||
'error', | ||
{ allowNamedFunctions: true, allowUnboundThis: true }, | ||
], | ||
// http://eslint.org/docs/rules/max-params | ||
'max-params': ['error', { max: 3 }], | ||
// http://eslint.org/docs/rules/max-statements | ||
'max-statements': ['error', { max: 20 }], | ||
// http://eslint.org/docs/rules/max-statements-per-line | ||
'max-statements-per-line': ['error', { max: 1 }], | ||
// http://eslint.org/docs/rules/max-nested-callbacks | ||
'max-nested-callbacks': ['error', { max: 4 }], | ||
// http://eslint.org/docs/rules/max-depth | ||
'max-depth': ['error', { max: 4 }], | ||
// enforces no braces where they can be omitted | ||
// https://eslint.org/docs/rules/arrow-body-style | ||
// Never enable for object literal. | ||
'arrow-body-style': [ | ||
'error', | ||
'as-needed', | ||
{ requireReturnForObjectLiteral: false }, | ||
], | ||
// Allow functions to be use before define because: | ||
// 1) they are hoisted, | ||
// 2) because ensure read flow is from top to bottom | ||
// 3) logically order of the code. | ||
// 4) the only addition is 'typedefs' option, see overrides for TS files | ||
'no-use-before-define': [ | ||
'error', | ||
{ | ||
functions: false, | ||
classes: true, | ||
variables: true, | ||
}, | ||
], | ||
// Same as AirBnB, but adds `opts`, `options`, `x` and `err` to exclusions! | ||
// disallow reassignment of function parameters | ||
// disallow parameter object manipulation except for specific exclusions | ||
// rule: https://eslint.org/docs/rules/no-param-reassign.html | ||
'no-param-reassign': [ | ||
'error', | ||
{ | ||
props: true, | ||
ignorePropertyModificationsFor: ignoredProps, | ||
}, | ||
], | ||
|
||
// disallow declaration of variables that are not used in the code | ||
'no-unused-vars': [ | ||
'error', | ||
{ | ||
ignoreRestSiblings: true, // airbnb's default | ||
vars: 'all', // airbnb's default | ||
varsIgnorePattern: '^(?:$$|xx|_|__|[iI]gnor(?:e|ing|ed))', | ||
args: 'after-used', // airbnb's default | ||
argsIgnorePattern: '^(?:$$|xx|_|__|[iI]gnor(?:e|ing|ed))', | ||
|
||
// catch blocks are handled by Unicorns | ||
caughtErrors: 'none', | ||
// caughtErrorsIgnorePattern: '^(?:$$|xx|_|__|[iI]gnor(?:e|ing|ed))', | ||
}, | ||
], | ||
}; | ||
|
||
const importRules = { | ||
'import/namespace': ['error', { allowComputed: true }], | ||
'import/no-absolute-path': 'error', | ||
'import/no-webpack-loader-syntax': 'error', | ||
'import/no-self-import': 'error', | ||
|
||
// Enable this sometime in the future when Node.js has ES2015 module support | ||
// 'import/no-cycle': 'error', | ||
|
||
// Disabled as it doesn't work with TypeScript | ||
// 'import/newline-after-import': 'error', | ||
|
||
'import/no-amd': 'error', | ||
'import/no-duplicates': 'error', | ||
|
||
// Enable this sometime in the future when Node.js has ES2015 module support | ||
// 'import/unambiguous': 'error', | ||
|
||
// Enable this sometime in the future when Node.js has ES2015 module support | ||
// 'import/no-commonjs': 'error', | ||
|
||
// Looks useful, but too unstable at the moment | ||
// 'import/no-deprecated': 'error', | ||
|
||
'import/no-extraneous-dependencies': 'off', | ||
'import/no-mutable-exports': 'error', | ||
'import/no-named-as-default-member': 'error', | ||
'import/no-named-as-default': 'error', | ||
|
||
// Disabled because it's buggy and it also doesn't work with TypeScript | ||
// 'import/no-unresolved': [ | ||
// 'error', | ||
// { | ||
// commonjs: true | ||
// } | ||
// ], | ||
|
||
'import/order': 'error', | ||
'import/no-unassigned-import': [ | ||
'error', | ||
{ allow: ['@babel/polyfill', '@babel/register'] }, | ||
], | ||
|
||
'import/prefer-default-export': 'off', | ||
|
||
// Ensure more web-compat | ||
// ! note that it doesn't work in CommonJS | ||
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/extensions.md | ||
'import/extensions': 'off', | ||
|
||
// ? Always use named exports. Enable? | ||
// 'import/no-default-export': 'error', | ||
|
||
// ? enable? | ||
'import/exports-last': 'off', | ||
|
||
// todo: Enable in future. | ||
// Ensures everything is tested (all exports should be used). | ||
// For cases when you don't want or can't test, add eslint-ignore comment! | ||
// see: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unused-modules.md | ||
'import/no-unused-modules': 'off', | ||
|
||
'import/no-useless-path-segments': ['error', { noUselessIndex: false }], | ||
}; | ||
|
||
module.exports = { | ||
env: { | ||
es6: true, | ||
es2020: true, | ||
jest: true, | ||
node: true, | ||
commonjs: true, | ||
}, | ||
extends: ['eslint:recommended', 'airbnb-base', 'plugin:prettier/recommended'], | ||
plugins: ['prettier'], | ||
rules: { | ||
'prettier/prettier': 'error', | ||
|
||
...additionalChanges, | ||
...importRules, | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
CHANGELOG.md | ||
LICENSE | ||
LICENSE.md | ||
LICENSE*.md | ||
dist | ||
# fixture | ||
# fixtures | ||
# __fixture__ | ||
# __fixtures__ | ||
.gitkeep | ||
*.map | ||
*.lock | ||
.npmrc | ||
.yarnrc | ||
*.js.snap | ||
coverage | ||
*.ico | ||
*.png | ||
*.svg | ||
*.jpeg | ||
*.jpg | ||
|
||
.* | ||
!.*rc.js | ||
!.verb*.md | ||
patches | ||
**/static/**/*.css | ||
|
||
*.tsbuildinfo | ||
.cache | ||
.*cache | ||
*.cache | ||
|
||
# Package managers lockfiles | ||
package-lock.json | ||
shrinkwrap.json | ||
pnpm-lock.json | ||
|
||
# Logs | ||
logs | ||
*.log | ||
*~ | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# TypeScript v1 declaration files | ||
typings/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variables file | ||
.env | ||
|
||
# next.js build output | ||
.next |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
'use strict'; | ||
|
||
module.exports = require( '@tunnckocore/prettier-config'); |
Oops, something went wrong.