2016-11-04 23:15:18 +01:00
|
|
|
{
|
|
|
|
"env": {
|
|
|
|
"node": true
|
|
|
|
},
|
|
|
|
"globals": {
|
|
|
|
"$": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"_": false,
|
|
|
|
"jQuery": false,
|
|
|
|
"Spinner": false,
|
|
|
|
"Handlebars": false,
|
|
|
|
"XDate": false,
|
|
|
|
"zxcvbn": false,
|
|
|
|
"LazyLoad": false,
|
|
|
|
"Dropbox": false,
|
|
|
|
"SockJS": false,
|
|
|
|
"marked": false,
|
2017-04-02 00:07:03 +02:00
|
|
|
"moment": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"i18n": false,
|
|
|
|
"bridge": false,
|
|
|
|
"page_params": false,
|
|
|
|
"status_classes": false,
|
|
|
|
"password_quality": false,
|
2016-12-28 14:46:42 +01:00
|
|
|
"attachments_ui": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"csrf_token": false,
|
|
|
|
"typeahead_helper": false,
|
|
|
|
"popovers": false,
|
|
|
|
"server_events": false,
|
|
|
|
"ui": false,
|
2017-03-18 21:11:12 +01:00
|
|
|
"ui_state": false,
|
2017-03-18 21:17:41 +01:00
|
|
|
"ui_report": false,
|
2017-03-18 21:35:35 +01:00
|
|
|
"ui_util": false,
|
2017-03-18 00:50:39 +01:00
|
|
|
"lightbox": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"stream_color": false,
|
|
|
|
"people": false,
|
|
|
|
"navigate": false,
|
2017-04-06 02:28:57 +02:00
|
|
|
"settings_account": false,
|
2017-04-06 15:34:42 +02:00
|
|
|
"settings_display": false,
|
2017-04-06 16:01:07 +02:00
|
|
|
"settings_notifications": false,
|
2017-04-06 16:56:52 +02:00
|
|
|
"settings_muting": false,
|
2017-04-06 17:47:36 +02:00
|
|
|
"settings_lab": false,
|
2017-04-06 22:47:27 +02:00
|
|
|
"settings_bots": false,
|
2017-04-07 01:30:13 +02:00
|
|
|
"settings_sections": false,
|
2017-04-08 17:24:07 +02:00
|
|
|
"settings_emoji": false,
|
2017-04-08 18:13:39 +02:00
|
|
|
"settings_org": false,
|
2017-04-08 20:08:35 +02:00
|
|
|
"settings_users": false,
|
2017-04-08 21:02:08 +02:00
|
|
|
"settings_streams": false,
|
2017-04-08 23:24:03 +02:00
|
|
|
"settings_filters": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"settings": false,
|
|
|
|
"resize": false,
|
|
|
|
"loading": false,
|
2016-10-12 20:57:59 +02:00
|
|
|
"typing": false,
|
2017-03-22 15:11:41 +01:00
|
|
|
"typing_events": false,
|
2017-03-21 17:45:10 +01:00
|
|
|
"typing_data": false,
|
2017-03-22 00:41:09 +01:00
|
|
|
"typing_status": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"compose": false,
|
2017-03-18 17:41:47 +01:00
|
|
|
"compose_actions": false,
|
2017-03-18 18:10:37 +01:00
|
|
|
"compose_state": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"compose_fade": false,
|
2017-03-13 22:02:31 +01:00
|
|
|
"modals": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"subs": false,
|
2017-03-19 16:00:35 +01:00
|
|
|
"stream_muting": false,
|
2017-03-19 16:03:07 +01:00
|
|
|
"stream_events": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"timerender": false,
|
2017-01-05 17:34:27 +01:00
|
|
|
"message_live_update": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"message_edit": false,
|
|
|
|
"reload": false,
|
|
|
|
"composebox_typeahead": false,
|
|
|
|
"search": false,
|
|
|
|
"topic_list": false,
|
|
|
|
"gear_menu": false,
|
|
|
|
"hashchange": false,
|
2017-03-18 18:29:20 +01:00
|
|
|
"hash_util": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"message_list": false,
|
|
|
|
"Filter": false,
|
|
|
|
"pointer": false,
|
|
|
|
"util": false,
|
|
|
|
"MessageListView": false,
|
|
|
|
"blueslip": false,
|
|
|
|
"rows": false,
|
|
|
|
"WinChan": false,
|
|
|
|
"muting_ui": false,
|
|
|
|
"Socket": false,
|
|
|
|
"channel": false,
|
2016-12-04 03:02:03 +01:00
|
|
|
"components": false,
|
2017-03-10 23:48:51 +01:00
|
|
|
"message_viewport": false,
|
2017-02-21 03:15:22 +01:00
|
|
|
"upload_widget": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"avatar": false,
|
2017-02-21 03:41:20 +01:00
|
|
|
"realm_icon": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"feature_flags": false,
|
|
|
|
"search_suggestion": false,
|
|
|
|
"referral": false,
|
|
|
|
"notifications": false,
|
|
|
|
"message_flags": false,
|
|
|
|
"bot_data": false,
|
2017-04-18 17:08:59 +02:00
|
|
|
"stream_sort": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"stream_list": false,
|
2017-03-05 17:28:40 +01:00
|
|
|
"stream_popover": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"narrow": false,
|
2017-03-18 16:59:32 +01:00
|
|
|
"narrow_state": false,
|
2017-04-17 16:51:27 +02:00
|
|
|
"admin_sections": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"admin": false,
|
|
|
|
"stream_data": false,
|
2017-04-04 18:14:27 +02:00
|
|
|
"list_util": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"muting": false,
|
|
|
|
"Dict": false,
|
|
|
|
"unread": false,
|
|
|
|
"alert_words_ui": false,
|
|
|
|
"message_store": false,
|
2017-03-19 22:43:38 +01:00
|
|
|
"message_util": false,
|
2017-03-19 20:23:48 +01:00
|
|
|
"message_events": false,
|
2017-03-19 18:19:48 +01:00
|
|
|
"message_fetch": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"favicon": false,
|
|
|
|
"condense": false,
|
2017-03-16 21:00:56 +01:00
|
|
|
"list_render": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"floating_recipient_bar": false,
|
|
|
|
"tab_bar": false,
|
|
|
|
"emoji": false,
|
2017-03-30 20:04:01 +02:00
|
|
|
"presence": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"activity": false,
|
|
|
|
"invite": false,
|
|
|
|
"colorspace": false,
|
2016-12-02 13:23:23 +01:00
|
|
|
"reactions": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"tutorial": false,
|
|
|
|
"templates": false,
|
|
|
|
"alert_words": false,
|
|
|
|
"fenced_code": false,
|
|
|
|
"echo": false,
|
|
|
|
"localstorage": false,
|
2016-12-28 02:14:31 +01:00
|
|
|
"localStorage": false,
|
2016-11-29 17:59:32 +01:00
|
|
|
"current_msg_list": true,
|
|
|
|
"home_msg_list": false,
|
|
|
|
"pm_list": false,
|
2016-12-20 02:30:08 +01:00
|
|
|
"unread_ui": false,
|
2017-03-18 01:41:56 +01:00
|
|
|
"unread_ops": false,
|
2017-01-21 16:49:27 +01:00
|
|
|
"user_events": false,
|
2017-01-26 00:41:53 +01:00
|
|
|
"Plotly": false,
|
2017-02-22 02:34:05 +01:00
|
|
|
"emoji_codes": false,
|
2017-03-20 16:56:39 +01:00
|
|
|
"drafts": false,
|
2017-01-17 20:51:30 +01:00
|
|
|
"katex": false,
|
2017-01-24 01:48:35 +01:00
|
|
|
"Clipboard": false,
|
|
|
|
"hotspots": false
|
2016-11-04 23:15:18 +01:00
|
|
|
},
|
|
|
|
"rules": {
|
2017-02-02 01:21:12 +01:00
|
|
|
"no-restricted-syntax": 0,
|
|
|
|
"no-nested-ternary": 0,
|
|
|
|
"spaced-comment": 0,
|
|
|
|
"space-infix-ops": 0,
|
|
|
|
"newline-per-chained-call": 0,
|
|
|
|
"no-whitespace-before-property": 0,
|
|
|
|
"padded-blocks": 0,
|
|
|
|
"space-in-parens": 0,
|
2016-12-05 19:02:19 +01:00
|
|
|
"eol-last": ["error", "always"],
|
|
|
|
"no-unneeded-ternary": ["error", { "defaultAssignment": false }],
|
|
|
|
"no-case-declarations": "error",
|
|
|
|
"eqeqeq": ["error", "allow-null"],
|
|
|
|
"no-duplicate-imports": "error",
|
|
|
|
"no-undef": "error",
|
|
|
|
"dot-notation": ["error", { "allowKeywords": true }],
|
|
|
|
"no-iterator": "error",
|
|
|
|
"no-dupe-class-members": "error",
|
Eslint: Add additioanl rules, some for GCI.
This commit adds rules for GCI, turns on rules that do not error
on our codebase, and changes frontend_tests/.eslintrc.json's no-sync
rule to off (as per AirBnB's style guide).
Rules for GCI:
no-restricted-syntax, no-nested-ternary, spaced-comment,
space-infix-ops, newline-per-chained-call, padded-blocks,
no-whitespace-before-property, space-in-parens
Rules that do not error:
no-useless-constructor, no-dupe-class-members, no-duplicate-imports,
no-iterator, no-undef, dot-notation, no-case-declarations, no-unneeded-ternary,
eol-last,
Finally, eqeqeq is changed from 2 to ['error', 'allow-null'], going
from jslint defaults to airbnb's recommendation (there were no errors)
2016-12-05 07:49:37 +01:00
|
|
|
"no-useless-constructor": "error",
|
2016-12-04 16:23:15 +01:00
|
|
|
"prefer-const": ["error", {
|
2016-12-05 19:02:19 +01:00
|
|
|
"destructuring": "any",
|
2016-12-04 16:23:15 +01:00
|
|
|
"ignoreReadBeforeAssign": true
|
|
|
|
}],
|
2016-12-05 19:02:19 +01:00
|
|
|
"no-const-assign": "error",
|
|
|
|
"no-new-object": 2,
|
|
|
|
"quote-props": ["error", "as-needed", {
|
|
|
|
"keywords": false,
|
|
|
|
"unnecessary": true,
|
|
|
|
"numbers": false
|
|
|
|
}],
|
|
|
|
"no-array-constructor": "error",
|
2016-12-05 07:53:36 +01:00
|
|
|
"array-callback-return": "error",
|
2016-12-05 19:02:19 +01:00
|
|
|
"template-curly-spacing": "error",
|
2016-12-06 19:57:46 +01:00
|
|
|
//The Zulip codebase complies partially with the "no-useless-escape" rule; only regex expressions haven't been updated yet.
|
|
|
|
//Updated regex expressions are currently being tested in casper files and will decide about a potential future enforcement of this rule.
|
2017-02-02 01:21:12 +01:00
|
|
|
"no-useless-escape": 0,
|
2016-12-05 19:02:19 +01:00
|
|
|
"func-style": ["off", "expression"],
|
|
|
|
"wrap-iife": ["error", "outside", { "functionPrototypeMethods": false }],
|
|
|
|
"no-new-func": "error",
|
|
|
|
"space-before-function-paren": ["error", { "anonymous": "always", "named": "never", "asyncArrow": "always" }],
|
2017-02-02 01:21:12 +01:00
|
|
|
"no-param-reassign": 0,
|
2016-12-05 19:02:19 +01:00
|
|
|
"arrow-spacing": ["error", { "before": true, "after": true }],
|
2016-11-04 23:15:18 +01:00
|
|
|
"no-alert": 2,
|
|
|
|
"no-array-constructor": 2,
|
|
|
|
"no-caller": 2,
|
|
|
|
"no-bitwise": 2,
|
|
|
|
"no-catch-shadow": 2,
|
2017-01-11 23:42:38 +01:00
|
|
|
"comma-dangle": ["error", {
|
|
|
|
"arrays": "always-multiline",
|
|
|
|
"objects": "always-multiline",
|
|
|
|
"imports": "always-multiline",
|
|
|
|
"exports": "always-multiline",
|
|
|
|
"functions": "never"
|
|
|
|
}],
|
2017-02-02 01:21:12 +01:00
|
|
|
"no-console": 0,
|
2016-11-04 23:15:18 +01:00
|
|
|
"no-control-regex": 2,
|
|
|
|
"no-debugger": 2,
|
|
|
|
"no-div-regex": 2,
|
|
|
|
"no-dupe-keys": 2,
|
2016-12-02 21:34:35 +01:00
|
|
|
"no-else-return": 2,
|
2016-12-05 02:35:14 +01:00
|
|
|
"no-empty": 2,
|
2016-11-29 17:59:32 +01:00
|
|
|
"no-empty-character-class": 2,
|
2016-11-04 23:15:18 +01:00
|
|
|
"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,
|
2016-11-30 19:05:04 +01:00
|
|
|
"no-plusplus": 2,
|
2016-11-04 23:15:18 +01:00
|
|
|
"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,
|
2017-02-02 01:21:12 +01:00
|
|
|
"no-underscore-dangle": 0,
|
2016-11-24 08:28:16 +01:00
|
|
|
"no-loop-func": 2,
|
2016-11-04 23:15:18 +01:00
|
|
|
"no-labels": 2,
|
2016-12-15 07:26:09 +01:00
|
|
|
"no-unused-vars": ["error", { "vars": "local", "args": "after-used",
|
2016-12-29 20:48:28 +01:00
|
|
|
"varsIgnorePattern": "print_elapsed_time|check_duplicate_ids"
|
2016-12-15 07:26:09 +01:00
|
|
|
}],
|
2016-11-04 23:15:18 +01:00
|
|
|
"no-script-url": 2,
|
|
|
|
"no-proto": 2,
|
|
|
|
"no-iterator": 2,
|
|
|
|
"no-mixed-requires": [0, false],
|
2016-11-29 17:59:32 +01:00
|
|
|
"no-extra-parens": ["error", "functions"],
|
2017-02-02 01:21:12 +01:00
|
|
|
"no-shadow": 0,
|
2016-11-04 23:15:18 +01:00
|
|
|
"no-use-before-define": 2,
|
|
|
|
"no-redeclare": 2,
|
|
|
|
"no-regex-spaces": 2,
|
2016-12-01 13:30:30 +01:00
|
|
|
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
|
2016-11-27 10:01:39 +01:00
|
|
|
"block-scoped-var": 2,
|
2017-02-02 01:21:12 +01:00
|
|
|
"camelcase": 0,
|
2016-11-04 23:15:18 +01:00
|
|
|
"complexity": [0, 4],
|
|
|
|
"curly": 2,
|
|
|
|
"dot-notation": 2,
|
2016-11-27 10:01:39 +01:00
|
|
|
"guard-for-in": 2,
|
2016-11-04 23:15:18 +01:00
|
|
|
"max-depth": [0, 4],
|
2016-12-02 15:16:33 +01:00
|
|
|
"max-len": ["error", 100, 2, {
|
|
|
|
"ignoreUrls": true,
|
|
|
|
"ignoreComments": false,
|
|
|
|
"ignoreRegExpLiterals": true,
|
|
|
|
"ignoreStrings": true,
|
|
|
|
"ignoreTemplateLiterals": true
|
|
|
|
}],
|
2016-11-04 23:15:18 +01:00
|
|
|
"max-params": [0, 3],
|
|
|
|
"max-statements": [0, 10],
|
2016-12-04 17:50:32 +01:00
|
|
|
"new-cap": ["error", { "newIsCap": true, "capIsNew": false }],
|
2016-11-04 23:15:18 +01:00
|
|
|
"new-parens": 2,
|
2016-12-02 17:09:31 +01:00
|
|
|
"one-var": ["error", "never"],
|
2017-02-02 01:21:12 +01:00
|
|
|
"quotes": [0, "single"],
|
2016-12-03 03:08:47 +01:00
|
|
|
"quote-props": ["error", "as-needed", { "keywords": false, "unnecessary": true, "numbers": false }],
|
2016-11-27 10:01:39 +01:00
|
|
|
"radix": 2,
|
2016-11-04 23:15:18 +01:00
|
|
|
"semi": 2,
|
2016-12-01 20:02:56 +01:00
|
|
|
"keyword-spacing": ["error", {
|
|
|
|
"before": true,
|
|
|
|
"after": true,
|
|
|
|
"overrides": {
|
|
|
|
"return": { "after": true },
|
|
|
|
"throw": { "after": true },
|
|
|
|
"case": { "after": true }
|
|
|
|
}
|
|
|
|
}],
|
2016-12-02 23:45:20 +01:00
|
|
|
"space-before-blocks": 2,
|
2017-02-02 01:21:12 +01:00
|
|
|
"strict": 0,
|
2016-11-04 23:15:18 +01:00
|
|
|
"unnecessary-strict": 0,
|
|
|
|
"use-isnan": 2,
|
2016-11-27 17:18:31 +01:00
|
|
|
"valid-typeof": ["error", { "requireStringLiterals": true }],
|
2016-11-04 23:15:18 +01:00
|
|
|
"wrap-iife": 2,
|
|
|
|
"wrap-regex": 0,
|
2016-12-05 03:39:24 +01:00
|
|
|
"yoda": 2
|
2016-11-04 23:15:18 +01:00
|
|
|
}
|
|
|
|
}
|