mirror of
https://github.com/urbit/shrub.git
synced 2024-12-29 23:23:52 +03:00
205 lines
4.4 KiB
JavaScript
205 lines
4.4 KiB
JavaScript
const env = {
|
|
"browser": true,
|
|
"es6": true,
|
|
"node": true
|
|
};
|
|
|
|
const rules = {
|
|
"array-bracket-spacing": ["error", "never"],
|
|
"arrow-parens": [
|
|
"error",
|
|
"as-needed",
|
|
{
|
|
"requireForBlockBody": true
|
|
}
|
|
],
|
|
"arrow-spacing": "error",
|
|
"@typescript-eslint/ban-ts-comment": [2,
|
|
{
|
|
'ts-expect-error': 'allow-with-description',
|
|
'ts-ignore': 'allow-with-description',
|
|
'ts-nocheck': 'allow-with-description',
|
|
'ts-check': 'allow-with-description',
|
|
minimumDescriptionLength: 3,
|
|
}],
|
|
"@typescript-eslint/ban-types": "off",
|
|
"block-spacing": ["error", "always"],
|
|
"brace-style": ["error", "1tbs"],
|
|
"camelcase": [
|
|
"error",
|
|
{
|
|
"properties": "never"
|
|
}
|
|
],
|
|
"comma-dangle": ["error", "never"],
|
|
"eol-last": ["error", "always"],
|
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
"func-name-matching": "error",
|
|
"indent": [
|
|
"off",
|
|
2,
|
|
{
|
|
"ArrayExpression": "off",
|
|
"SwitchCase": 1,
|
|
"CallExpression": {
|
|
"arguments": "off"
|
|
},
|
|
"FunctionDeclaration": {
|
|
"parameters": "off"
|
|
},
|
|
"FunctionExpression": {
|
|
"parameters": "off"
|
|
},
|
|
"MemberExpression": "off",
|
|
"ObjectExpression": "off",
|
|
"ImportDeclaration": "off"
|
|
}
|
|
],
|
|
"handle-callback-err": "off",
|
|
"linebreak-style": ["error", "unix"],
|
|
"max-lines": [
|
|
"warn",
|
|
{
|
|
"max": 300,
|
|
"skipBlankLines": true,
|
|
"skipComments": true
|
|
}
|
|
],
|
|
"max-lines-per-function": [
|
|
"warn",
|
|
{
|
|
"skipBlankLines": true,
|
|
"skipComments": true
|
|
}
|
|
],
|
|
"max-statements-per-line": [
|
|
"error",
|
|
{
|
|
"max": 1
|
|
}
|
|
],
|
|
"new-cap": [
|
|
"error",
|
|
{
|
|
"newIsCap": true,
|
|
"capIsNew": false
|
|
}
|
|
],
|
|
"new-parens": "error",
|
|
"no-buffer-constructor": "error",
|
|
"no-console": "off",
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"@typescript-eslint/no-empty-function": "off",
|
|
"no-extra-semi": "off",
|
|
"no-fallthrough": "off",
|
|
"no-func-assign": "off",
|
|
"no-implicit-coercion": "error",
|
|
"no-multi-assign": "error",
|
|
"no-multiple-empty-lines": [
|
|
"error",
|
|
{
|
|
"max": 1
|
|
}
|
|
],
|
|
"no-nested-ternary": "warn",
|
|
"no-param-reassign": "off",
|
|
"no-return-assign": "error",
|
|
"no-return-await": "off",
|
|
"no-shadow-restricted-names": "error",
|
|
"no-tabs": "error",
|
|
"no-trailing-spaces": "error",
|
|
"no-unused-vars": "off",
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"error",
|
|
{
|
|
"vars": "all",
|
|
"args": "none",
|
|
"ignoreRestSiblings": false
|
|
}
|
|
],
|
|
"no-use-before-define": "off",
|
|
"@typescript-eslint/no-use-before-define": [
|
|
"error",
|
|
{
|
|
"functions": false,
|
|
"classes": false
|
|
}
|
|
],
|
|
"no-useless-escape": "off",
|
|
"no-var": "error",
|
|
"nonblock-statement-body-position": ["error", "below"],
|
|
"object-curly-spacing": ["error", "always"],
|
|
"padded-blocks": ["error", "never"],
|
|
"prefer-arrow-callback": "error",
|
|
"prefer-const": [
|
|
"error",
|
|
{
|
|
"destructuring": "all",
|
|
"ignoreReadBeforeAssign": true
|
|
}
|
|
],
|
|
"prefer-template": "off",
|
|
"quotes": ["error", "single"],
|
|
"react/display-name": "off",
|
|
"semi": ["error", "always"],
|
|
"spaced-comment": [
|
|
"error",
|
|
"always",
|
|
{
|
|
"exceptions": ["!"]
|
|
}
|
|
],
|
|
"space-before-blocks": "error",
|
|
"unicode-bom": ["error", "never"],
|
|
"valid-jsdoc": "error",
|
|
"wrap-iife": ["error", "inside"],
|
|
"react/jsx-closing-bracket-location": 1,
|
|
"react/jsx-tag-spacing": 1,
|
|
"react/jsx-max-props-per-line": ["error", { "maximum": 2, "when": "multiline" }],
|
|
"react/prop-types": 0
|
|
};
|
|
|
|
module.exports = {
|
|
"env": env,
|
|
"extends": [
|
|
"plugin:react/recommended",
|
|
"eslint:recommended",
|
|
],
|
|
"settings": {
|
|
"react": {
|
|
"version": "^16.5.2"
|
|
}
|
|
},
|
|
"parser": "babel-eslint",
|
|
"parserOptions": {
|
|
"ecmaVersion": 10,
|
|
"requireConfigFile": false,
|
|
"sourceType": "module"
|
|
},
|
|
"root": true,
|
|
"rules": rules,
|
|
"overrides": [
|
|
{
|
|
"files": ["**/*.ts", "**/*.tsx"],
|
|
"env": env,
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:@typescript-eslint/eslint-recommended",
|
|
"plugin:@typescript-eslint/recommended"
|
|
],
|
|
"parser": "@typescript-eslint/parser",
|
|
"parserOptions": {
|
|
"ecmaFeatures": { "jsx": true },
|
|
"ecmaVersion": 10,
|
|
"requireConfigFile": false,
|
|
"sourceType": "module"
|
|
},
|
|
"plugins": ["@typescript-eslint"],
|
|
"rules": {
|
|
...rules,
|
|
"valid-jsdoc": "off"
|
|
}
|
|
}
|
|
]
|
|
};
|