mirror of https://github.com/zulip/zulip.git
Run eslint in tools/lint-all with npm run --silent lint
This commit adds a basic eslintrc that emulates jslint defaults. Rules that conflict with our existing code have been switched to warnings instead of errors. Globals have been added to the eslintrc. The bundled js file (generated by webpack) and blueslip.js are ignored with .eslintignore. To display warnings, run npm run lint-loud. This runs eslint without the --quiet option on static/js and frontend_tests. npm run --silent lint is run by tools/lint-all (in addition to jslint). The --silent option is used to suppress the default output from npm run. Fixes #535.
This commit is contained in:
parent
2d81813145
commit
497c7702cc
|
@ -0,0 +1,4 @@
|
|||
static/js/bundle.js
|
||||
static/js/blueslip.js
|
||||
puppet/zulip_ops/files/statsd/local.js
|
||||
tools/jslint/check-all.js
|
|
@ -0,0 +1,177 @@
|
|||
{
|
||||
"env": {
|
||||
"node": true
|
||||
},
|
||||
"globals": {
|
||||
"$": false,
|
||||
"_": false,
|
||||
"jQuery": false,
|
||||
"Spinner": false,
|
||||
"Handlebars": false,
|
||||
"XDate": false,
|
||||
"zxcvbn": false,
|
||||
"LazyLoad": false,
|
||||
"Dropbox": false,
|
||||
"SockJS": false,
|
||||
"marked": false,
|
||||
"i18n": false,
|
||||
"bridge": false,
|
||||
"page_params": false,
|
||||
"status_classes": false,
|
||||
"password_quality": false,
|
||||
"csrf_token": false,
|
||||
"typeahead_helper": false,
|
||||
"popovers": false,
|
||||
"server_events": false,
|
||||
"ui": false,
|
||||
"stream_color": false,
|
||||
"people": false,
|
||||
"navigate": false,
|
||||
"settings": false,
|
||||
"resize": false,
|
||||
"loading": false,
|
||||
"compose": false,
|
||||
"compose_fade": false,
|
||||
"subs": false,
|
||||
"timerender": false,
|
||||
"message_edit": false,
|
||||
"reload": false,
|
||||
"composebox_typeahead": false,
|
||||
"search": false,
|
||||
"topic_list": false,
|
||||
"gear_menu": false,
|
||||
"hashchange": false,
|
||||
"message_list": false,
|
||||
"Filter": false,
|
||||
"pointer": false,
|
||||
"util": false,
|
||||
"MessageListView": false,
|
||||
"blueslip": false,
|
||||
"rows": false,
|
||||
"WinChan": false,
|
||||
"muting_ui": false,
|
||||
"Socket": false,
|
||||
"channel": false,
|
||||
"viewport": false,
|
||||
"avatar": false,
|
||||
"feature_flags": false,
|
||||
"search_suggestion": false,
|
||||
"referral": false,
|
||||
"notifications": false,
|
||||
"message_flags": false,
|
||||
"bot_data": false,
|
||||
"stream_list": false,
|
||||
"narrow": false,
|
||||
"admin": false,
|
||||
"stream_data": false,
|
||||
"muting": false,
|
||||
"Dict": false,
|
||||
"unread": false,
|
||||
"alert_words_ui": false,
|
||||
"message_store": false,
|
||||
"favicon": false,
|
||||
"condense": false,
|
||||
"floating_recipient_bar": false,
|
||||
"tab_bar": false,
|
||||
"emoji": false,
|
||||
"activity": false,
|
||||
"invite": false,
|
||||
"colorspace": false,
|
||||
"tutorial": false,
|
||||
"templates": false,
|
||||
"alert_words": false,
|
||||
"fenced_code": false,
|
||||
"echo": false,
|
||||
"localstorage": false,
|
||||
"current_msg_list": true,
|
||||
"home_msg_list": false,
|
||||
"pm_list": false,
|
||||
"unread_ui": false
|
||||
},
|
||||
"rules": {
|
||||
"no-alert": 2,
|
||||
"no-array-constructor": 2,
|
||||
"no-caller": 2,
|
||||
"no-bitwise": 2,
|
||||
"no-catch-shadow": 2,
|
||||
"comma-dangle": 0,
|
||||
"no-console": 1,
|
||||
"no-control-regex": 2,
|
||||
"no-debugger": 2,
|
||||
"no-div-regex": 2,
|
||||
"no-dupe-keys": 2,
|
||||
"no-else-return": 1,
|
||||
"no-empty": 1,
|
||||
"no-empty-character-class": 2,
|
||||
"no-eq-null": 2,
|
||||
"no-eval": 2,
|
||||
"no-ex-assign": 2,
|
||||
"no-extra-semi": 2,
|
||||
"no-func-assign": 2,
|
||||
"no-floating-decimal": 2,
|
||||
"no-implied-eval": 2,
|
||||
"no-with": 2,
|
||||
"no-fallthrough": 2,
|
||||
"no-unreachable": 2,
|
||||
"no-undef": 2,
|
||||
"no-undef-init": 2,
|
||||
"no-unused-expressions": 2,
|
||||
"no-octal": 2,
|
||||
"no-octal-escape": 2,
|
||||
"no-obj-calls": 2,
|
||||
"no-multi-str": 2,
|
||||
"no-new-wrappers": 2,
|
||||
"no-new": 2,
|
||||
"no-new-func": 2,
|
||||
"no-native-reassign": 2,
|
||||
"no-plusplus": 1,
|
||||
"no-delete-var": 2,
|
||||
"no-return-assign": 2,
|
||||
"no-new-object": 2,
|
||||
"no-label-var": 2,
|
||||
"no-ternary": 0,
|
||||
"no-self-compare": 2,
|
||||
"no-sync": 2,
|
||||
"no-underscore-dangle": 1,
|
||||
"no-loop-func": 1,
|
||||
"no-labels": 2,
|
||||
"no-unused-vars": 1,
|
||||
"no-script-url": 2,
|
||||
"no-proto": 2,
|
||||
"no-iterator": 2,
|
||||
"no-mixed-requires": [0, false],
|
||||
"no-extra-parens": ["error", "functions"],
|
||||
"no-shadow": 1,
|
||||
"no-use-before-define": 2,
|
||||
"no-redeclare": 2,
|
||||
"no-regex-spaces": 2,
|
||||
"brace-style": [1, "1tbs"],
|
||||
"block-scoped-var": 0,
|
||||
"camelcase": 1,
|
||||
"complexity": [0, 4],
|
||||
"curly": 2,
|
||||
"dot-notation": 2,
|
||||
"eqeqeq": 2,
|
||||
"guard-for-in": 0,
|
||||
"max-depth": [0, 4],
|
||||
"max-len": [0, 80, 4],
|
||||
"max-params": [0, 3],
|
||||
"max-statements": [0, 10],
|
||||
"new-cap": 1,
|
||||
"new-parens": 2,
|
||||
"one-var": 1,
|
||||
"quotes": [1, "single"],
|
||||
"quote-props": 0,
|
||||
"radix": 0,
|
||||
"semi": 2,
|
||||
"keyword-spacing": 1,
|
||||
"space-before-blocks": 1,
|
||||
"strict": 1,
|
||||
"unnecessary-strict": 0,
|
||||
"use-isnan": 2,
|
||||
"valid-typeof": 0,
|
||||
"wrap-iife": 2,
|
||||
"wrap-regex": 0,
|
||||
"yoda": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"env": {
|
||||
"shared-node-browser": true
|
||||
},
|
||||
"globals": {
|
||||
"assert": false,
|
||||
"add_dependencies": false,
|
||||
"casper": false,
|
||||
"document": false,
|
||||
"set_global": false,
|
||||
"window": false
|
||||
},
|
||||
"rules": {
|
||||
"no-sync": 1
|
||||
}
|
||||
}
|
16
package.json
16
package.json
|
@ -16,17 +16,21 @@
|
|||
"webpack": "1.12.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"casperjs": "1.1.3",
|
||||
"cssstyle": "0.2.29",
|
||||
"eslint": "^3.9.1",
|
||||
"htmlparser2": "3.8.3",
|
||||
"istanbul": "0.4.0",
|
||||
"jsdom": "9.4.1",
|
||||
"xmlhttprequest": "1.5.0",
|
||||
"nwmatcher": "1.3.6",
|
||||
"htmlparser2": "3.8.3",
|
||||
"cssstyle": "0.2.29",
|
||||
"webpack-dev-server": "1.12.1",
|
||||
"phantomjs-prebuilt": "2.1.7",
|
||||
"casperjs": "1.1.3"
|
||||
"webpack-dev-server": "1.12.1",
|
||||
"xmlhttprequest": "1.5.0"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint --quiet",
|
||||
"lint-loud": "eslint static/js frontend_tests"
|
||||
},
|
||||
"scripts": {},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zulip/zulip.git"
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"env": {
|
||||
"browser": true
|
||||
}
|
||||
}
|
|
@ -492,6 +492,13 @@ def run():
|
|||
+ by_lang['js'])
|
||||
return result
|
||||
|
||||
@lint
|
||||
def eslint():
|
||||
# type: () -> int
|
||||
result = subprocess.call(['npm', 'run', '--silent', 'lint']
|
||||
+ by_lang['js'])
|
||||
return result
|
||||
|
||||
@lint
|
||||
def puppet():
|
||||
# type: () -> int
|
||||
|
|
Loading…
Reference in New Issue