Skip to content

Commit bdfcd6c

Browse files
authored
eslint rules for firebase projects (#1831)
* add eslint rules * ignore unused params with a leading _ * update curly and arrow-body-style rules
1 parent 6668b59 commit bdfcd6c

File tree

6 files changed

+455
-11
lines changed

6 files changed

+455
-11
lines changed

config/.eslintrc.json

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"es6": true,
5+
"node": true
6+
},
7+
"parser": "@typescript-eslint/parser",
8+
"plugins": [
9+
"@typescript-eslint",
10+
"@typescript-eslint/tslint"
11+
],
12+
"parserOptions": {
13+
"ecmaVersion": 2015,
14+
"sourceType": "module"
15+
},
16+
"overrides": [
17+
{
18+
"files": [
19+
"*test.ts",
20+
"**/test/**/*.ts"
21+
],
22+
"rules": {
23+
"no-unused-expressions": "off"
24+
}
25+
}
26+
],
27+
"rules": {
28+
"curly": [
29+
"error",
30+
"all"
31+
],
32+
"guard-for-in": "error",
33+
"no-extra-label": "error",
34+
"no-unused-labels": "error",
35+
"new-parens": "error",
36+
"no-new-wrappers": "error",
37+
"no-debugger": "error",
38+
"no-duplicate-case": "error",
39+
"no-throw-literal": "error",
40+
"no-return-await": "error",
41+
"no-unsafe-finally": "error",
42+
"no-unused-expressions": [
43+
"error",
44+
{
45+
"allowShortCircuit": true
46+
}
47+
],
48+
"no-var": "error",
49+
"object-shorthand": "error",
50+
"prefer-arrow-callback": [
51+
"error",
52+
{
53+
"allowNamedFunctions": true
54+
}
55+
],
56+
"prefer-const": [
57+
"error",
58+
{
59+
"destructuring": "all"
60+
}
61+
],
62+
"radix": "error",
63+
"default-case": "error",
64+
"eqeqeq": [
65+
"error",
66+
"always",
67+
{
68+
"null": "ignore"
69+
}
70+
],
71+
"no-caller": "error",
72+
"no-cond-assign": ["error", "always"],
73+
"use-isnan": "error",
74+
"camelcase": "error",
75+
"id-blacklist": [
76+
"error",
77+
"any",
78+
"number",
79+
"string",
80+
"boolean"
81+
],
82+
"@typescript-eslint/array-type": [
83+
"error",
84+
"array-simple"
85+
],
86+
"@typescript-eslint/ban-types": [
87+
"error",
88+
{
89+
"types": {
90+
"Object": "Use object instead.",
91+
"String": "Use 'string' instead.",
92+
"Number": "Use 'number' instead.",
93+
"Boolean": "Use 'boolean' instead."
94+
}
95+
}
96+
],
97+
"@typescript-eslint/class-name-casing": "error",
98+
"@typescript-eslint/interface-name-prefix": [
99+
"error",
100+
"never"
101+
],
102+
"@typescript-eslint/prefer-interface": "error",
103+
"@typescript-eslint/explicit-member-accessibility": [
104+
"error",
105+
{
106+
"accessibility": "no-public",
107+
"overrides": {
108+
"parameterProperties": "explicit"
109+
}
110+
}
111+
],
112+
"@typescript-eslint/no-angle-bracket-type-assertion": "error",
113+
"@typescript-eslint/no-explicit-any": "error",
114+
"@typescript-eslint/no-namespace": [
115+
"error",
116+
{
117+
"allowDeclarations": true
118+
}
119+
],
120+
"@typescript-eslint/no-triple-slash-reference": "error",
121+
"@typescript-eslint/no-require-imports": "error",
122+
"@typescript-eslint/no-useless-constructor": "error",
123+
"@typescript-eslint/semi": "error",
124+
"@typescript-eslint/explicit-function-return-type": [
125+
"error",
126+
{
127+
"allowExpressions": true
128+
}
129+
],
130+
"@typescript-eslint/no-unused-vars": [
131+
"error",
132+
{
133+
"varsIgnorePattern": "^_",
134+
"argsIgnorePattern": "^_"
135+
}
136+
],
137+
"@typescript-eslint/tslint/config": [
138+
"error",
139+
{
140+
"rules": {
141+
"ban": [true,
142+
{"name": ["it", "skip"]},
143+
{"name": ["it", "only"]},
144+
{"name": ["describe", "skip"]},
145+
{"name": ["describe", "only"]},
146+
{"name": ["xit"]},
147+
{"name": ["xdescribe"]},
148+
{"name": "parseInt", "message": "tsstyle#type-coercion"},
149+
{"name": "parseFloat", "message": "tsstyle#type-coercion"},
150+
{"name": "Array", "message": "tsstyle#array-constructor"}
151+
],
152+
"jsdoc-format": true,
153+
"no-floating-promises": true,
154+
"arrow-return-shorthand": true
155+
}
156+
}
157+
]
158+
}
159+
}

packages/app/.eslintrc.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"extends": "../../config/.eslintrc.json",
3+
"parserOptions": {
4+
"project": "tsconfig.json"
5+
}
6+
}

packages/app/package.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
"dist"
1515
],
1616
"scripts": {
17+
"lint": "eslint -c .eslintrc.json '**/*.ts' --ignore-path '../../.gitignore'",
18+
"lint:fix": "eslint --fix -c .eslintrc.json '**/*.ts'",
1719
"build": "rollup -c",
1820
"dev": "rollup -c -w",
1921
"test": "run-p test:browser test:node",
@@ -58,7 +60,11 @@
5860
"ts-loader": "5.4.5",
5961
"ts-node": "8.1.0",
6062
"typescript": "3.4.5",
61-
"webpack": "4.30.0"
63+
"webpack": "4.30.0",
64+
"eslint": "5.16.0",
65+
"@typescript-eslint/parser": "1.9.0",
66+
"@typescript-eslint/eslint-plugin": "1.9.0",
67+
"@typescript-eslint/eslint-plugin-tslint": "1.9.0"
6268
},
6369
"repository": {
6470
"directory": "packages/app",

packages/firestore/.eslintrc.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"extends": "../../config/.eslintrc.json",
3+
"parserOptions": {
4+
"project": "tsconfig.json"
5+
}
6+
}

packages/firestore/package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"dev": "rollup -c -w",
1010
"lint": "tslint -p tsconfig.json -c tslint.json 'src/**/*.ts' 'test/**/*.ts'",
1111
"lint:fix": "tslint --fix -p tsconfig.json -c tslint.json 'src/**/*.ts' 'test/**/*.ts'",
12+
"lint:eslint": "eslint -c .eslintrc.json '**/*.ts' --ignore-path '../../.gitignore'",
1213
"prettier": "prettier --write 'src/**/*.js' 'test/**/*.js' 'src/**/*.ts' 'test/**/*.ts'",
1314
"test": "run-s lint test:all",
1415
"test:all": "run-p test:browser test:node",
@@ -76,7 +77,11 @@
7677
"tslint": "5.16.0",
7778
"typescript": "3.4.5",
7879
"webpack": "4.30.0",
79-
"yargs": "13.2.2"
80+
"yargs": "13.2.2",
81+
"eslint": "5.16.0",
82+
"@typescript-eslint/parser": "1.9.0",
83+
"@typescript-eslint/eslint-plugin": "1.9.0",
84+
"@typescript-eslint/eslint-plugin-tslint": "1.9.0"
8085
},
8186
"repository": {
8287
"directory": "packages/firestore",

0 commit comments

Comments
 (0)