zulip/.eslintrc.json

247 lines
7.7 KiB
JSON

{
"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,
"attachments_ui": 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_live_update": 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,
"components": 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,
"reactions": 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,
"user_events": false,
"Plotly": false,
"emoji_codes": false
},
"rules": {
"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,
"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",
"no-useless-constructor": "error",
"prefer-const": ["error", {
"destructuring": "any",
"ignoreReadBeforeAssign": true
}],
"no-const-assign": "error",
"no-new-object": 2,
"quote-props": ["error", "as-needed", {
"keywords": false,
"unnecessary": true,
"numbers": false
}],
"no-array-constructor": "error",
"array-callback-return": "error",
"template-curly-spacing": "error",
//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.
"no-useless-escape": 0,
"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" }],
"no-param-reassign": 0,
"arrow-spacing": ["error", { "before": true, "after": true }],
"no-alert": 2,
"no-array-constructor": 2,
"no-caller": 2,
"no-bitwise": 2,
"no-catch-shadow": 2,
"comma-dangle": ["error", {
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "never"
}],
"no-console": 0,
"no-control-regex": 2,
"no-debugger": 2,
"no-div-regex": 2,
"no-dupe-keys": 2,
"no-else-return": 2,
"no-empty": 2,
"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": 2,
"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": 0,
"no-loop-func": 2,
"no-labels": 2,
"no-unused-vars": ["error", { "vars": "local", "args": "after-used",
"varsIgnorePattern": "print_elapsed_time|check_duplicate_ids"
}],
"no-script-url": 2,
"no-proto": 2,
"no-iterator": 2,
"no-mixed-requires": [0, false],
"no-extra-parens": ["error", "functions"],
"no-shadow": 0,
"no-use-before-define": 2,
"no-redeclare": 2,
"no-regex-spaces": 2,
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
"block-scoped-var": 2,
"camelcase": 0,
"complexity": [0, 4],
"curly": 2,
"dot-notation": 2,
"guard-for-in": 2,
"max-depth": [0, 4],
"max-len": ["error", 100, 2, {
"ignoreUrls": true,
"ignoreComments": false,
"ignoreRegExpLiterals": true,
"ignoreStrings": true,
"ignoreTemplateLiterals": true
}],
"max-params": [0, 3],
"max-statements": [0, 10],
"new-cap": ["error", { "newIsCap": true, "capIsNew": false }],
"new-parens": 2,
"one-var": ["error", "never"],
"quotes": [0, "single"],
"quote-props": ["error", "as-needed", { "keywords": false, "unnecessary": true, "numbers": false }],
"radix": 2,
"semi": 2,
"keyword-spacing": ["error", {
"before": true,
"after": true,
"overrides": {
"return": { "after": true },
"throw": { "after": true },
"case": { "after": true }
}
}],
"space-before-blocks": 2,
"strict": 0,
"unnecessary-strict": 0,
"use-isnan": 2,
"valid-typeof": ["error", { "requireStringLiterals": true }],
"wrap-iife": 2,
"wrap-regex": 0,
"yoda": 2
}
}