mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-30 22:34:10 -05:00
move eslint config to yaml
This commit is contained in:
parent
e2e2c39148
commit
b65cf7afe3
5 changed files with 277 additions and 267 deletions
264
.eslint.js
264
.eslint.js
|
@ -1,264 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
env: {
|
|
||||||
node: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 0 - disable
|
|
||||||
* Rules that more harmful than useful, or just buggy.
|
|
||||||
*
|
|
||||||
* 1 - warning
|
|
||||||
* Rules that we didn't encounter yet. You can safely ignore them,
|
|
||||||
* but I'd like to know any interesting use-cases they forbid.
|
|
||||||
*
|
|
||||||
* 2 - error
|
|
||||||
* Rules that have proven to be useful, please follow them.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rules: {
|
|
||||||
// didn't understand what it does, but it fails a good code
|
|
||||||
'block-scoped-var': 0,
|
|
||||||
|
|
||||||
// fails where newlines are used to format pretty big "if":
|
|
||||||
// if (
|
|
||||||
// name.charAt(0) === "." ||
|
|
||||||
// name.match(/[\/@\s\+%:]/) ||
|
|
||||||
// name !== encodeURIComponent(name) ||
|
|
||||||
// name.toLowerCase() === "node_modules"
|
|
||||||
// ) {
|
|
||||||
'brace-style': 0,
|
|
||||||
|
|
||||||
// snake_case is more readable, what's up with you guys?
|
|
||||||
'camelcase': 0,
|
|
||||||
|
|
||||||
// if some functions are complex, they are for a good reason,
|
|
||||||
// ain't worth it
|
|
||||||
'complexity': [0, 10],
|
|
||||||
|
|
||||||
// never saw it, but self is preferred
|
|
||||||
'consistent-this': [1, 'self'],
|
|
||||||
|
|
||||||
// fails good code
|
|
||||||
'curly': 0,
|
|
||||||
|
|
||||||
// fails good code, where this notation is used for consistency:
|
|
||||||
// something['foo-bar'] = 123
|
|
||||||
// something['blahblah'] = 234
|
|
||||||
'dot-notation': 0,
|
|
||||||
|
|
||||||
// pointless in many cases (like indexOf() == -1), harmful in a few
|
|
||||||
// cases (when you do want to ignore types), fails good code
|
|
||||||
'eqeqeq': 0,
|
|
||||||
|
|
||||||
// if someone is changing prototype and makes properties enumerable,
|
|
||||||
// it's their own fault
|
|
||||||
'guard-for-in': 0,
|
|
||||||
|
|
||||||
// if some functions are complex, they are for a good reason,
|
|
||||||
// ain't worth it
|
|
||||||
'max-depth': [0, 4],
|
|
||||||
|
|
||||||
// should it really throw for every long URL?
|
|
||||||
'max-len': [0, 80, 4],
|
|
||||||
|
|
||||||
// that's obvious by just looking at the code, you don't need lint for that
|
|
||||||
'max-params': [0, 3],
|
|
||||||
|
|
||||||
// if some functions are complex, they are for a good reason,
|
|
||||||
// ain't worth it
|
|
||||||
'max-statements': [0, 10],
|
|
||||||
|
|
||||||
// that one makes sense
|
|
||||||
'new-cap': 2,
|
|
||||||
|
|
||||||
'new-parens': 1,
|
|
||||||
'no-alert': 1,
|
|
||||||
|
|
||||||
// I'm writing javascript, not some weird reduced version of it
|
|
||||||
'no-bitwise': 0,
|
|
||||||
|
|
||||||
'no-caller': 1,
|
|
||||||
|
|
||||||
// not working around IE bugs, sorry
|
|
||||||
'no-catch-shadow': 0,
|
|
||||||
|
|
||||||
// see above, IE is useful for downloading other browsers only
|
|
||||||
'no-comma-dangle': 0,
|
|
||||||
|
|
||||||
'no-cond-assign': 1,
|
|
||||||
|
|
||||||
// good for removing debugging code
|
|
||||||
'no-console': 2,
|
|
||||||
|
|
||||||
'no-control-regex': 1,
|
|
||||||
|
|
||||||
// good for removing debugging code
|
|
||||||
'no-debugger': 2,
|
|
||||||
|
|
||||||
'no-delete-var': 1,
|
|
||||||
'no-div-regex': 1,
|
|
||||||
'no-dupe-keys': 1,
|
|
||||||
|
|
||||||
// why would anyone need to check against that?
|
|
||||||
'no-else-return': 0,
|
|
||||||
|
|
||||||
// sometimes empty statement contains useful comment
|
|
||||||
'no-empty': 0,
|
|
||||||
|
|
||||||
'no-empty-class': 1,
|
|
||||||
'no-empty-label': 1,
|
|
||||||
|
|
||||||
// stupid rule
|
|
||||||
// "x == null" is "x === null || x === undefined"
|
|
||||||
'no-eq-null': 0,
|
|
||||||
|
|
||||||
'no-eval': 1,
|
|
||||||
'no-ex-assign': 1,
|
|
||||||
'no-extend-native': 1,
|
|
||||||
|
|
||||||
// fails good code, when parens are used for grouping:
|
|
||||||
// (req && req.headers['via']) ? req.headers['via'] + ', ' : ''
|
|
||||||
// not everyone remembers priority tables, you know
|
|
||||||
'no-extra-parens': 0,
|
|
||||||
|
|
||||||
// fails defensive semicolons:
|
|
||||||
// ;['foo', 'bar'].forEach(function(x) {})
|
|
||||||
'no-extra-semi': 0,
|
|
||||||
|
|
||||||
'no-fallthrough': 1,
|
|
||||||
'no-floating-decimal': 1,
|
|
||||||
'no-func-assign': 1,
|
|
||||||
'no-global-strict': 1,
|
|
||||||
'no-implied-eval': 1,
|
|
||||||
'no-invalid-regexp': 1,
|
|
||||||
'no-iterator': 1,
|
|
||||||
'no-label-var': 1,
|
|
||||||
'no-loop-func': 1,
|
|
||||||
|
|
||||||
// fails good code:
|
|
||||||
// var fs = require('fs'),
|
|
||||||
// , open = fs.open
|
|
||||||
'no-mixed-requires': [0, false],
|
|
||||||
|
|
||||||
'no-multi-str': 1,
|
|
||||||
'no-native-reassign': 1,
|
|
||||||
'no-negated-in-lhs': 1,
|
|
||||||
|
|
||||||
// XXX: not released yet
|
|
||||||
//'no-nested-ternary': 1,
|
|
||||||
|
|
||||||
'no-new': 1,
|
|
||||||
|
|
||||||
// new Array(12) is used to pre-allocate arrays
|
|
||||||
'no-new-array': 0,
|
|
||||||
|
|
||||||
'no-new-func': 1,
|
|
||||||
'no-new-object': 1,
|
|
||||||
'no-new-wrappers': 1,
|
|
||||||
'no-obj-calls': 1,
|
|
||||||
|
|
||||||
// fails good code:
|
|
||||||
// fs.open('/file', 0666, function(){})
|
|
||||||
'no-octal': 0,
|
|
||||||
|
|
||||||
// fails good code:
|
|
||||||
// console.log('\033[31m' + str + '\033[39m')
|
|
||||||
// also fails \0 which is not octal escape
|
|
||||||
'no-octal-escape': 0,
|
|
||||||
|
|
||||||
// I'm writing javascript, not some weird reduced version of it
|
|
||||||
'no-plusplus': 0,
|
|
||||||
|
|
||||||
'no-proto': 1,
|
|
||||||
|
|
||||||
// fails good code:
|
|
||||||
// if (a) {
|
|
||||||
// var x = 'foo'
|
|
||||||
// } else {
|
|
||||||
// var x = bar
|
|
||||||
// }
|
|
||||||
'no-redeclare': 0,
|
|
||||||
|
|
||||||
'no-return-assign': 1,
|
|
||||||
'no-script-url': 1,
|
|
||||||
'no-self-compare': 1,
|
|
||||||
|
|
||||||
// sometimes useful, often isn't
|
|
||||||
// probably worth enforcing
|
|
||||||
'no-shadow': 2,
|
|
||||||
|
|
||||||
'no-shadow-restricted-names': 1,
|
|
||||||
'no-spaced-func': 1,
|
|
||||||
|
|
||||||
// can't agree more, but it's a task for code review, not for lint
|
|
||||||
'no-sync': 0,
|
|
||||||
|
|
||||||
// I'm writing javascript, not some weird reduced version of it
|
|
||||||
'no-ternary': 0,
|
|
||||||
|
|
||||||
// the single most important rule in the entire ruleset
|
|
||||||
'no-undef': 2,
|
|
||||||
|
|
||||||
'no-undef-init': 1,
|
|
||||||
|
|
||||||
// it is failing our own underscores
|
|
||||||
'no-underscore-dangle': 0,
|
|
||||||
|
|
||||||
// fails function hoisting
|
|
||||||
'no-unreachable': 0,
|
|
||||||
|
|
||||||
// fails npm-style code, it's good once you get used to it:
|
|
||||||
// if (typeof(options) === 'function') callback = options, options = {}
|
|
||||||
'no-unused-expressions': 0,
|
|
||||||
|
|
||||||
// fails (function(_err) {}) where named argument is used to show what
|
|
||||||
// nth function argument means
|
|
||||||
'no-unused-vars': 0,
|
|
||||||
|
|
||||||
// fails function hoisting
|
|
||||||
'no-use-before-define': 0,
|
|
||||||
|
|
||||||
'no-with': 1,
|
|
||||||
|
|
||||||
// fails foobar( (function(){}).bind(this) )
|
|
||||||
// parens are added for readability
|
|
||||||
'no-wrap-func': 0,
|
|
||||||
|
|
||||||
// fails good code:
|
|
||||||
// var x
|
|
||||||
// if (something) {
|
|
||||||
// var y
|
|
||||||
'one-var': 0,
|
|
||||||
|
|
||||||
// the most stupid rule I ever saw
|
|
||||||
'quote-props': 0,
|
|
||||||
|
|
||||||
// fails situation when different quotes are used to avoid escaping
|
|
||||||
'quotes': [0, 'single'],
|
|
||||||
|
|
||||||
'radix': 1,
|
|
||||||
'regex-spaces': 1,
|
|
||||||
|
|
||||||
// http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
|
|
||||||
'semi': 0,
|
|
||||||
|
|
||||||
// fails good code where spaces are used for grouping:
|
|
||||||
// (x+y * y+z)
|
|
||||||
'space-infix-ops': 0,
|
|
||||||
|
|
||||||
'space-return-throw-case': 1,
|
|
||||||
|
|
||||||
// typeof(something) should have braces to look like a function
|
|
||||||
// a matter of taste I suppose
|
|
||||||
'space-unary-word-ops': 0,
|
|
||||||
|
|
||||||
// strict mode is just harmful,
|
|
||||||
// can I have a check to enforce not using it?
|
|
||||||
'strict': 0,
|
|
||||||
|
|
||||||
'unnecessary-strict': 1,
|
|
||||||
'use-isnan': 1,
|
|
||||||
'wrap-iife': 1,
|
|
||||||
'wrap-regex': 1,
|
|
||||||
},
|
|
||||||
}
|
|
263
.eslint.yaml
Normal file
263
.eslint.yaml
Normal file
|
@ -0,0 +1,263 @@
|
||||||
|
env:
|
||||||
|
node: true
|
||||||
|
|
||||||
|
#
|
||||||
|
# 0 - disable
|
||||||
|
# Rules that more harmful than useful, or just buggy.
|
||||||
|
#
|
||||||
|
# 1 - warning
|
||||||
|
# Rules that we didn't encounter yet. You can safely ignore them,
|
||||||
|
# but I'd like to know any interesting use-cases they forbid.
|
||||||
|
#
|
||||||
|
# 2 - error
|
||||||
|
# Rules that have proven to be useful, please follow them.
|
||||||
|
#
|
||||||
|
|
||||||
|
rules:
|
||||||
|
# didn't understand what it does, but it fails a good code
|
||||||
|
block-scoped-var: 0
|
||||||
|
|
||||||
|
# fails where newlines are used to format pretty big "if":
|
||||||
|
# if (
|
||||||
|
# name.charAt(0) === "." ||
|
||||||
|
# name.match(/[\/@\s\+%:]/) ||
|
||||||
|
# name !== encodeURIComponent(name) ||
|
||||||
|
# name.toLowerCase() === "node_modules"
|
||||||
|
# ) {
|
||||||
|
brace-style: 0
|
||||||
|
|
||||||
|
# snake_case is more readable, what's up with you guys?
|
||||||
|
camelcase: 0
|
||||||
|
|
||||||
|
# if some functions are complex, they are for a good reason,
|
||||||
|
# ain't worth it
|
||||||
|
complexity: [0, 10]
|
||||||
|
|
||||||
|
# never saw it, but self is preferred
|
||||||
|
consistent-this: [1, 'self']
|
||||||
|
|
||||||
|
# fails good code
|
||||||
|
curly: 0
|
||||||
|
|
||||||
|
# fails good code, where this notation is used for consistency:
|
||||||
|
# something['foo-bar'] = 123
|
||||||
|
# something['blahblah'] = 234
|
||||||
|
dot-notation: 0
|
||||||
|
|
||||||
|
# pointless in many cases (like indexOf() == -1), harmful in a few
|
||||||
|
# cases (when you do want to ignore types), fails good code
|
||||||
|
eqeqeq: 0
|
||||||
|
|
||||||
|
# if someone is changing prototype and makes properties enumerable,
|
||||||
|
# it's their own fault
|
||||||
|
guard-for-in: 0
|
||||||
|
|
||||||
|
# if some functions are complex, they are for a good reason,
|
||||||
|
# ain't worth it
|
||||||
|
max-depth: [0, 4]
|
||||||
|
|
||||||
|
# should it really throw for every long URL?
|
||||||
|
max-len: [0, 80, 4]
|
||||||
|
|
||||||
|
# that's obvious by just looking at the code, you don't need lint for that
|
||||||
|
max-params: [0, 3]
|
||||||
|
|
||||||
|
# if some functions are complex, they are for a good reason,
|
||||||
|
# ain't worth it
|
||||||
|
max-statements: [0, 10]
|
||||||
|
|
||||||
|
# that one makes sense
|
||||||
|
new-cap: 2
|
||||||
|
|
||||||
|
new-parens: 1
|
||||||
|
no-alert: 1
|
||||||
|
|
||||||
|
# I'm writing javascript, not some weird reduced version of it
|
||||||
|
no-bitwise: 0
|
||||||
|
|
||||||
|
no-caller: 1
|
||||||
|
|
||||||
|
# not working around IE bugs, sorry
|
||||||
|
no-catch-shadow: 0
|
||||||
|
|
||||||
|
# see above, IE is useful for downloading other browsers only
|
||||||
|
no-comma-dangle: 0
|
||||||
|
|
||||||
|
no-cond-assign: 1
|
||||||
|
|
||||||
|
# good for removing debugging code
|
||||||
|
no-console: 2
|
||||||
|
|
||||||
|
no-control-regex: 1
|
||||||
|
|
||||||
|
# good for removing debugging code
|
||||||
|
no-debugger: 2
|
||||||
|
|
||||||
|
no-delete-var: 1
|
||||||
|
no-div-regex: 1
|
||||||
|
no-dupe-keys: 1
|
||||||
|
|
||||||
|
# why would anyone need to check against that?
|
||||||
|
no-else-return: 0
|
||||||
|
|
||||||
|
# sometimes empty statement contains useful comment
|
||||||
|
no-empty: 0
|
||||||
|
|
||||||
|
no-empty-class: 1
|
||||||
|
no-empty-label: 1
|
||||||
|
|
||||||
|
# stupid rule
|
||||||
|
# "x == null" is "x === null || x === undefined"
|
||||||
|
no-eq-null: 0
|
||||||
|
|
||||||
|
no-eval: 1
|
||||||
|
no-ex-assign: 1
|
||||||
|
no-extend-native: 1
|
||||||
|
|
||||||
|
# fails good code, when parens are used for grouping:
|
||||||
|
# (req && req.headers['via']) ? req.headers['via'] + ', ' : ''
|
||||||
|
# not everyone remembers priority tables, you know
|
||||||
|
no-extra-parens: 0
|
||||||
|
|
||||||
|
# fails defensive semicolons:
|
||||||
|
# ;['foo', 'bar'].forEach(function(x) {})
|
||||||
|
no-extra-semi: 0
|
||||||
|
|
||||||
|
no-fallthrough: 1
|
||||||
|
no-floating-decimal: 1
|
||||||
|
no-func-assign: 1
|
||||||
|
no-global-strict: 1
|
||||||
|
no-implied-eval: 1
|
||||||
|
no-invalid-regexp: 1
|
||||||
|
no-iterator: 1
|
||||||
|
no-label-var: 1
|
||||||
|
no-loop-func: 1
|
||||||
|
|
||||||
|
# fails good code:
|
||||||
|
# var fs = require('fs'),
|
||||||
|
# , open = fs.open
|
||||||
|
no-mixed-requires: [0, false]
|
||||||
|
|
||||||
|
no-multi-str: 1
|
||||||
|
no-native-reassign: 1
|
||||||
|
no-negated-in-lhs: 1
|
||||||
|
|
||||||
|
no-nested-ternary: 1
|
||||||
|
|
||||||
|
no-new: 1
|
||||||
|
|
||||||
|
# new Array(12) is used to pre-allocate arrays
|
||||||
|
no-new-array: 0
|
||||||
|
|
||||||
|
no-new-func: 1
|
||||||
|
no-new-object: 1
|
||||||
|
no-new-wrappers: 1
|
||||||
|
no-obj-calls: 1
|
||||||
|
|
||||||
|
# fails good code:
|
||||||
|
# fs.open('/file', 0666, function(){})
|
||||||
|
no-octal: 0
|
||||||
|
|
||||||
|
# fails good code:
|
||||||
|
# console.log('\033[31m' + str + '\033[39m')
|
||||||
|
# also fails \0 which is not octal escape
|
||||||
|
no-octal-escape: 0
|
||||||
|
|
||||||
|
# I'm writing javascript, not some weird reduced version of it
|
||||||
|
no-plusplus: 0
|
||||||
|
|
||||||
|
no-proto: 1
|
||||||
|
|
||||||
|
# fails good code:
|
||||||
|
# if (a) {
|
||||||
|
# var x = 'foo'
|
||||||
|
# } else {
|
||||||
|
# var x = bar
|
||||||
|
# }
|
||||||
|
no-redeclare: 0
|
||||||
|
|
||||||
|
no-return-assign: 1
|
||||||
|
no-script-url: 1
|
||||||
|
no-self-compare: 1
|
||||||
|
|
||||||
|
# sometimes useful, often isn't
|
||||||
|
# probably worth enforcing
|
||||||
|
no-shadow: 2
|
||||||
|
|
||||||
|
no-shadow-restricted-names: 1
|
||||||
|
no-spaced-func: 1
|
||||||
|
|
||||||
|
# can't agree more, but it's a task for code review, not for lint
|
||||||
|
no-sync: 0
|
||||||
|
|
||||||
|
# I'm writing javascript, not some weird reduced version of it
|
||||||
|
no-ternary: 0
|
||||||
|
|
||||||
|
# the single most important rule in the entire ruleset
|
||||||
|
no-undef: 2
|
||||||
|
|
||||||
|
no-undef-init: 1
|
||||||
|
|
||||||
|
# it is failing our own underscores
|
||||||
|
no-underscore-dangle: 0
|
||||||
|
|
||||||
|
# fails function hoisting
|
||||||
|
no-unreachable: 0
|
||||||
|
|
||||||
|
# fails npm-style code, it's good once you get used to it:
|
||||||
|
# if (typeof(options) === 'function') callback = options, options = {}
|
||||||
|
no-unused-expressions: 0
|
||||||
|
|
||||||
|
# fails (function(_err) {}) where named argument is used to show what
|
||||||
|
# nth function argument means
|
||||||
|
no-unused-vars: 0
|
||||||
|
|
||||||
|
# fails function hoisting
|
||||||
|
no-use-before-define: 0
|
||||||
|
|
||||||
|
no-with: 1
|
||||||
|
|
||||||
|
# fails foobar( (function(){}).bind(this) )
|
||||||
|
# parens are added for readability
|
||||||
|
no-wrap-func: 0
|
||||||
|
|
||||||
|
# fails good code:
|
||||||
|
# var x
|
||||||
|
# if (something) {
|
||||||
|
# var y
|
||||||
|
one-var: 0
|
||||||
|
|
||||||
|
# the most stupid rule I ever saw
|
||||||
|
quote-props: 0
|
||||||
|
|
||||||
|
# fails situation when different quotes are used to avoid escaping
|
||||||
|
quotes: [0, 'single']
|
||||||
|
|
||||||
|
radix: 1
|
||||||
|
|
||||||
|
# http:#blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
|
||||||
|
semi: 0
|
||||||
|
|
||||||
|
# fails good code where spaces are used for grouping:
|
||||||
|
# (x+y * y+z)
|
||||||
|
space-infix-ops: 0
|
||||||
|
|
||||||
|
space-return-throw-case: 1
|
||||||
|
|
||||||
|
# typeof(something) should have braces to look like a function
|
||||||
|
# a matter of taste I suppose
|
||||||
|
space-unary-word-ops: 0
|
||||||
|
|
||||||
|
# strict mode is just harmful,
|
||||||
|
# can I have a check to enforce not using it?
|
||||||
|
strict: 0
|
||||||
|
|
||||||
|
use-isnan: 1
|
||||||
|
wrap-iife: 1
|
||||||
|
wrap-regex: 1
|
||||||
|
|
||||||
|
no-path-concat: 0
|
||||||
|
|
||||||
|
# how can you set a return code without process.exit?
|
||||||
|
no-process-exit: 0
|
||||||
|
|
11
.npmignore
Normal file
11
.npmignore
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
node_modules
|
||||||
|
package.json
|
||||||
|
npm-debug.log
|
||||||
|
sinopia-*.tgz
|
||||||
|
|
||||||
|
###
|
||||||
|
bin/storage*
|
||||||
|
bin/*.yaml
|
||||||
|
test-storage*
|
||||||
|
|
||||||
|
/.eslint*
|
|
@ -68,7 +68,7 @@ module.exports.basic_auth = function basic_auth(callback) {
|
||||||
, credentials = new Buffer(parts[1], 'base64').toString()
|
, credentials = new Buffer(parts[1], 'base64').toString()
|
||||||
, index = credentials.indexOf(':')
|
, index = credentials.indexOf(':')
|
||||||
|
|
||||||
if ('Basic' != scheme || index < 0) return next({
|
if (scheme !== 'Basic' || index < 0) return next({
|
||||||
status: 400,
|
status: 400,
|
||||||
msg: 'bad authorization header',
|
msg: 'bad authorization header',
|
||||||
})
|
})
|
||||||
|
|
|
@ -35,7 +35,7 @@ devDependencies:
|
||||||
mocha: '>= 1.17.0'
|
mocha: '>= 1.17.0'
|
||||||
|
|
||||||
# linting tools
|
# linting tools
|
||||||
eslint: '~ 0.2.0'
|
eslint: 'eslint/eslint'
|
||||||
#eslint-stylish: '*'
|
#eslint-stylish: '*'
|
||||||
|
|
||||||
# for debugging memory leaks, it'll be require()'d if
|
# for debugging memory leaks, it'll be require()'d if
|
||||||
|
@ -53,7 +53,7 @@ keywords:
|
||||||
|
|
||||||
scripts:
|
scripts:
|
||||||
test: mocha ./test/functional ./test/unit
|
test: mocha ./test/functional ./test/unit
|
||||||
lint: eslint -c ./.eslint.js ./lib
|
lint: eslint -c ./.eslint.yaml ./lib
|
||||||
|
|
||||||
# we depend on streams2 stuff
|
# we depend on streams2 stuff
|
||||||
# it can be replaced with isaacs/readable-stream, ask if you need to use 0.8
|
# it can be replaced with isaacs/readable-stream, ask if you need to use 0.8
|
||||||
|
|
Loading…
Reference in a new issue