@payloadcms/plugin-cloud-storage 1.0.15 → 1.0.17-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/.editorconfig +10 -10
  2. package/.eslintrc.js +14 -14
  3. package/.gitignore +248 -248
  4. package/.prettierignore +1 -1
  5. package/.prettierrc.js +8 -8
  6. package/.vscode/launch.json +40 -28
  7. package/.vscode/settings.json +9 -9
  8. package/LICENSE.md +22 -22
  9. package/README.md +196 -178
  10. package/azure.d.ts +1 -1
  11. package/azure.js +1 -1
  12. package/dev/.env +11 -15
  13. package/dev/.env.example +21 -21
  14. package/dev/nodemon.json +8 -8
  15. package/dev/package.json +34 -32
  16. package/dev/src/collections/Media.ts +56 -56
  17. package/dev/src/collections/Users.ts +23 -23
  18. package/dev/src/mocks/fsMock.js +1 -1
  19. package/dev/src/mocks/promisifyMock.js +1 -1
  20. package/dev/src/payload.config.ts +111 -111
  21. package/dev/src/server.ts +26 -26
  22. package/dev/tsconfig.json +20 -20
  23. package/dist/adapters/azure/fileStub.d.ts +2 -2
  24. package/dist/adapters/azure/fileStub.js +3 -3
  25. package/dist/adapters/azure/generateURL.d.ts +7 -7
  26. package/dist/adapters/azure/generateURL.js +15 -15
  27. package/dist/adapters/azure/handleDelete.d.ts +9 -9
  28. package/dist/adapters/azure/handleDelete.js +63 -63
  29. package/dist/adapters/azure/handleUpload.d.ts +10 -10
  30. package/dist/adapters/azure/handleUpload.js +80 -80
  31. package/dist/adapters/azure/index.d.ts +8 -8
  32. package/dist/adapters/azure/index.js +42 -42
  33. package/dist/adapters/azure/index.js.map +1 -1
  34. package/dist/adapters/azure/mock.d.ts +13 -13
  35. package/dist/adapters/azure/mock.js +12 -12
  36. package/dist/adapters/azure/staticHandler.d.ts +9 -9
  37. package/dist/adapters/azure/staticHandler.js +81 -81
  38. package/dist/adapters/azure/webpack.d.ts +2 -2
  39. package/dist/adapters/azure/webpack.js +24 -24
  40. package/dist/adapters/azure/webpack.js.map +1 -1
  41. package/dist/adapters/gcs/generateURL.d.ts +8 -8
  42. package/dist/adapters/gcs/generateURL.js +15 -15
  43. package/dist/adapters/gcs/handleDelete.d.ts +8 -8
  44. package/dist/adapters/gcs/handleDelete.js +62 -62
  45. package/dist/adapters/gcs/handleUpload.d.ts +12 -12
  46. package/dist/adapters/gcs/handleUpload.js +72 -72
  47. package/dist/adapters/gcs/index.d.ts +8 -8
  48. package/dist/adapters/gcs/index.js +35 -35
  49. package/dist/adapters/gcs/mock.d.ts +1 -1
  50. package/dist/adapters/gcs/mock.js +4 -4
  51. package/dist/adapters/gcs/staticHandler.d.ts +10 -10
  52. package/dist/adapters/gcs/staticHandler.js +76 -76
  53. package/dist/adapters/gcs/webpack.d.ts +2 -2
  54. package/dist/adapters/gcs/webpack.js +24 -24
  55. package/dist/adapters/gcs/webpack.js.map +1 -1
  56. package/dist/adapters/s3/fileStub.d.ts +2 -2
  57. package/dist/adapters/s3/fileStub.js +3 -3
  58. package/dist/adapters/s3/generateURL.d.ts +8 -8
  59. package/dist/adapters/s3/generateURL.js +15 -15
  60. package/dist/adapters/s3/handleDelete.d.ts +8 -8
  61. package/dist/adapters/s3/handleDelete.js +63 -63
  62. package/dist/adapters/s3/handleUpload.d.ts +12 -12
  63. package/dist/adapters/s3/handleUpload.js +93 -93
  64. package/dist/adapters/s3/index.d.ts +8 -8
  65. package/dist/adapters/s3/index.js +59 -59
  66. package/dist/adapters/s3/mock.d.ts +8 -8
  67. package/dist/adapters/s3/mock.js +9 -9
  68. package/dist/adapters/s3/staticHandler.d.ts +10 -10
  69. package/dist/adapters/s3/staticHandler.js +81 -80
  70. package/dist/adapters/s3/staticHandler.js.map +1 -1
  71. package/dist/adapters/s3/webpack.d.ts +2 -2
  72. package/dist/adapters/s3/webpack.js +24 -24
  73. package/dist/adapters/s3/webpack.js.map +1 -1
  74. package/dist/fields/getFields.d.ts +11 -11
  75. package/dist/fields/getFields.js +118 -118
  76. package/dist/hooks/afterDelete.d.ts +10 -10
  77. package/dist/hooks/afterDelete.js +91 -88
  78. package/dist/hooks/afterDelete.js.map +1 -1
  79. package/dist/hooks/afterRead.d.ts +12 -12
  80. package/dist/hooks/afterRead.js +79 -79
  81. package/dist/hooks/beforeChange.d.ts +10 -10
  82. package/dist/hooks/beforeChange.js +105 -77
  83. package/dist/hooks/beforeChange.js.map +1 -1
  84. package/dist/index.d.ts +1 -1
  85. package/dist/index.js +5 -5
  86. package/dist/plugin.d.ts +3 -3
  87. package/dist/plugin.js +130 -124
  88. package/dist/plugin.js.map +1 -1
  89. package/dist/types.d.ts +68 -62
  90. package/dist/types.js +2 -2
  91. package/dist/utilities/getFilePrefix.d.ts +5 -5
  92. package/dist/utilities/getFilePrefix.js +80 -80
  93. package/dist/utilities/getIncomingFiles.d.ts +7 -7
  94. package/dist/utilities/getIncomingFiles.js +37 -37
  95. package/dist/utilities/getRangeFromHeader.d.ts +6 -6
  96. package/dist/utilities/getRangeFromHeader.js +66 -66
  97. package/dist/webpack.d.ts +9 -9
  98. package/dist/webpack.js +39 -39
  99. package/docs/local-dev.md +47 -47
  100. package/eslint-config/index.js +15 -15
  101. package/eslint-config/rules/import.js +38 -38
  102. package/eslint-config/rules/prettier.js +7 -7
  103. package/eslint-config/rules/style.js +21 -21
  104. package/eslint-config/rules/typescript.js +628 -628
  105. package/gcs.d.ts +1 -1
  106. package/gcs.js +1 -1
  107. package/package.json +67 -67
  108. package/s3.d.ts +1 -1
  109. package/s3.js +1 -1
  110. package/src/adapters/azure/emulator/docker-compose.yml +16 -16
  111. package/src/adapters/azure/fileStub.js +1 -1
  112. package/src/adapters/azure/generateURL.ts +13 -13
  113. package/src/adapters/azure/handleDelete.ts +16 -16
  114. package/src/adapters/azure/handleUpload.ts +41 -41
  115. package/src/adapters/azure/index.ts +48 -47
  116. package/src/adapters/azure/mock.js +13 -13
  117. package/src/adapters/azure/staticHandler.ts +38 -38
  118. package/src/adapters/azure/webpack.ts +24 -20
  119. package/src/adapters/gcs/emulator/docker-compose.yml +15 -15
  120. package/src/adapters/gcs/generateURL.ts +16 -16
  121. package/src/adapters/gcs/handleDelete.ts +16 -16
  122. package/src/adapters/gcs/handleUpload.ts +34 -34
  123. package/src/adapters/gcs/index.ts +37 -37
  124. package/src/adapters/gcs/mock.js +3 -3
  125. package/src/adapters/gcs/staticHandler.ts +34 -34
  126. package/src/adapters/gcs/webpack.ts +21 -17
  127. package/src/adapters/s3/emulator/.localstack/cache/machine.json +1 -0
  128. package/src/adapters/s3/emulator/.localstack/cache/server.test.pem +127 -0
  129. package/src/adapters/s3/emulator/.localstack/cache/server.test.pem.crt +99 -0
  130. package/src/adapters/s3/emulator/.localstack/cache/server.test.pem.key +28 -0
  131. package/src/adapters/s3/emulator/.localstack/cache/service-catalog-2_1_1_dev-1_29_149.pickle +0 -0
  132. package/src/adapters/s3/emulator/docker-compose.yml +15 -15
  133. package/src/adapters/s3/generateURL.ts +14 -14
  134. package/src/adapters/s3/handleDelete.ts +17 -17
  135. package/src/adapters/s3/index.ts +38 -38
  136. package/src/adapters/s3/mock.js +9 -9
  137. package/src/adapters/s3/staticHandler.ts +41 -40
  138. package/src/adapters/s3/webpack.ts +4 -0
  139. package/src/fields/getFields.ts +155 -155
  140. package/src/hooks/afterDelete.ts +35 -35
  141. package/src/hooks/afterRead.ts +38 -38
  142. package/src/hooks/beforeChange.ts +59 -30
  143. package/src/index.ts +1 -1
  144. package/src/plugin.ts +101 -94
  145. package/src/types.ts +79 -73
  146. package/src/utilities/getFilePrefix.ts +26 -26
  147. package/src/utilities/getIncomingFiles.ts +44 -44
  148. package/src/utilities/getRangeFromHeader.ts +27 -27
  149. package/src/webpack.ts +46 -46
  150. package/tsconfig.json +23 -23
  151. package/yarn-error.log +8163 -0
  152. package/yarn.lock +8062 -8155
  153. package/.idea/.gitignore +0 -5
  154. package/.idea/httpRequests/2023-04-07T152957.206.png +0 -0
  155. package/.idea/httpRequests/2023-04-07T153025.403.html +0 -10
  156. package/.idea/httpRequests/2023-04-07T153146.200.png +0 -0
  157. package/.idea/httpRequests/http-client.cookies +0 -1
  158. package/.idea/httpRequests/http-requests-log.http +0 -74
  159. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  160. package/.idea/jsLinters/eslint.xml +0 -6
  161. package/.idea/modules.xml +0 -8
  162. package/.idea/plugin-cloud-storage.iml +0 -12
  163. package/.idea/vcs.xml +0 -6
  164. package/.idea/workspace.xml +0 -269
  165. package/dev/build/127.d2c2ffcfff69fabfdd1b.js +0 -1
  166. package/dev/build/16.17dbe03b1d0a96f3e564.js +0 -2
  167. package/dev/build/16.17dbe03b1d0a96f3e564.js.LICENSE.txt +0 -8
  168. package/dev/build/171.bbcbae3ea90468ad0cad.js +0 -2
  169. package/dev/build/171.bbcbae3ea90468ad0cad.js.LICENSE.txt +0 -8
  170. package/dev/build/18.e50c27edff6716f930d9.js +0 -1
  171. package/dev/build/205.33c7a29683ba98de93e0.js +0 -1
  172. package/dev/build/2211c49456cd07331ea9.woff +0 -0
  173. package/dev/build/234.79395f82c18207c13766.js +0 -1
  174. package/dev/build/266.9d4a240b3e0985bd7dd5.js +0 -1
  175. package/dev/build/296.4c5d646257b42c915834.js +0 -1
  176. package/dev/build/304.40dbe690de322c8f7c0d.js +0 -2
  177. package/dev/build/304.40dbe690de322c8f7c0d.js.LICENSE.txt +0 -37
  178. package/dev/build/349.446c12bffd3905085fdb.js +0 -1
  179. package/dev/build/354.5acd04b85b96a9839125.js +0 -1
  180. package/dev/build/40ad7515b8674bb854a1.woff2 +0 -0
  181. package/dev/build/422.086542466cdc9f6a2437.js +0 -2
  182. package/dev/build/422.086542466cdc9f6a2437.js.LICENSE.txt +0 -6
  183. package/dev/build/491.0bfe1bb0ecfe383179aa.js +0 -1
  184. package/dev/build/4d8845b830f4e8e2affb.png +0 -0
  185. package/dev/build/51922ceb71da289688d3.woff2 +0 -0
  186. package/dev/build/522443364fda49e9e0ed.woff2 +0 -0
  187. package/dev/build/531.1c6f53f3b44a3c45b444.js +0 -2
  188. package/dev/build/531.1c6f53f3b44a3c45b444.js.LICENSE.txt +0 -6
  189. package/dev/build/570.f2d9b99706765fbf0225.js +0 -1
  190. package/dev/build/599.570a04990d5806004f61.js +0 -1
  191. package/dev/build/5b718d9772de251a8c0a.woff2 +0 -0
  192. package/dev/build/778.41ae26bcd617861ad586.js +0 -1
  193. package/dev/build/783.0117995f2ff6036d6746.js +0 -1
  194. package/dev/build/787999a6af6a17efbc7c.woff +0 -0
  195. package/dev/build/78b8935fb481e11c92ce.woff +0 -0
  196. package/dev/build/860.7688681d3269f3f16e9a.js +0 -1
  197. package/dev/build/892.1a4ca5ac67d81038ceec.js +0 -1
  198. package/dev/build/896.d8cb1160388dc29d6364.js +0 -1
  199. package/dev/build/8b4ddd0d08500553efde.woff +0 -0
  200. package/dev/build/8f612153248094525d9d.woff +0 -0
  201. package/dev/build/995.cc11e738ff81a85821b4.js +0 -1
  202. package/dev/build/9c7dfd0036f7bd24b053.woff2 +0 -0
  203. package/dev/build/a1cfdc5b5250b7c4b481.woff2 +0 -0
  204. package/dev/build/d7aeda9e48ce098e7b48.woff +0 -0
  205. package/dev/build/e009f21405b4d7e89367.woff2 +0 -0
  206. package/dev/build/e7caa9e17af6ac87d182.woff +0 -0
  207. package/dev/build/ebcc1430049fddb274f8.svg +0 -15
  208. package/dev/build/efe8f6a3b46446cc9135.woff +0 -0
  209. package/dev/build/f53bb8d4b29adc903703.woff2 +0 -0
  210. package/dev/build/index.html +0 -1
  211. package/dev/build/main.a2003d502fbb9aaa3e8d.js +0 -2
  212. package/dev/build/main.a2003d502fbb9aaa3e8d.js.LICENSE.txt +0 -57
  213. package/dev/build/styles.css +0 -1
  214. package/dev/build/styles.fa29d16b0baf5b98a1cf.js +0 -1
@@ -1,628 +1,628 @@
1
- module.exports = {
2
- plugins: ['@typescript-eslint'],
3
- overrides: [
4
- {
5
- files: ['**/**.ts', '**/**.d.ts'],
6
- rules: {
7
- 'no-undef': 'off',
8
- camelcase: 'off',
9
- '@typescript-eslint/adjacent-overload-signatures': 'error',
10
- /**
11
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/array-type.md
12
- */
13
- '@typescript-eslint/array-type': ['error', { default: 'array-simple' }],
14
- /**
15
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/await-thenable.md
16
- */
17
- '@typescript-eslint/await-thenable': 'off',
18
- /**
19
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-assertions.md
20
- */
21
- '@typescript-eslint/consistent-type-assertions': [
22
- 'error',
23
- { assertionStyle: 'as', objectLiteralTypeAssertions: 'allow-as-parameter' },
24
- ],
25
- /**
26
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-definitions.md
27
- */
28
- '@typescript-eslint/consistent-type-definitions': ['error', 'interface'],
29
- /**
30
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-imports.md
31
- */
32
- '@typescript-eslint/consistent-type-imports': 'warn',
33
- /**
34
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-function-return-type.md
35
- */
36
- '@typescript-eslint/explicit-function-return-type': [
37
- 'error',
38
- {
39
- // TODO: come back and check if we need those
40
- allowExpressions: true,
41
- allowTypedFunctionExpressions: true,
42
- allowHigherOrderFunctions: true,
43
- allowConciseArrowFunctionExpressionsStartingWithVoid: false,
44
- },
45
- ],
46
- /**
47
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md
48
- */
49
- '@typescript-eslint/explicit-member-accessibility': [
50
- 'error',
51
- { accessibility: 'no-public' },
52
- ],
53
- /**
54
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/member-delimiter-style.md
55
- */
56
- '@typescript-eslint/member-delimiter-style': [
57
- 'error',
58
- {
59
- multiline: {
60
- delimiter: 'none',
61
- requireLast: true,
62
- },
63
- singleline: {
64
- delimiter: 'semi',
65
- requireLast: false,
66
- },
67
- },
68
- ],
69
- /**
70
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/method-signature-style.md
71
- */
72
- '@typescript-eslint/method-signature-style': 'off',
73
- /**
74
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/naming-convention.md
75
- */
76
- '@typescript-eslint/naming-convention': [
77
- 'off',
78
- {
79
- selector: 'default',
80
- format: ['camelCase'],
81
- leadingUnderscore: 'forbid',
82
- trailingUnderscore: 'forbid',
83
- },
84
- {
85
- selector: 'variable',
86
- format: ['camelCase', 'UPPER_CASE'],
87
- leadingUnderscore: 'forbid',
88
- trailingUnderscore: 'forbid',
89
- },
90
- // Enforce that type parameters (generics) are prefixed with T or U
91
- {
92
- selector: 'typeParameter',
93
- format: ['PascalCase'],
94
- prefix: ['T', 'U'],
95
- },
96
- // enforce boolean variables to start with proper prefix.
97
- {
98
- selector: 'variable',
99
- types: ['boolean'],
100
- format: ['PascalCase'],
101
- prefix: ['is', 'should', 'has', 'can', 'did', 'will'],
102
- },
103
- // Enforce that interface names do not begin with an I
104
- {
105
- selector: 'interface',
106
- format: ['PascalCase'],
107
- custom: {
108
- regex: '^I[A-Z]',
109
- match: false,
110
- },
111
- },
112
- {
113
- selector: [
114
- 'function',
115
- 'parameter',
116
- 'property',
117
- 'parameterProperty',
118
- 'method',
119
- 'accessor',
120
- ],
121
- format: ['camelCase'],
122
- leadingUnderscore: 'forbid',
123
- trailingUnderscore: 'forbid',
124
- },
125
- {
126
- selector: ['class', 'interface', 'typeAlias', 'enum', 'typeParameter'],
127
- format: ['PascalCase'],
128
- leadingUnderscore: 'forbid',
129
- trailingUnderscore: 'forbid',
130
- },
131
- ],
132
- /**
133
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-base-to-string.md
134
- */
135
- '@typescript-eslint/no-base-to-string': 'off',
136
- /**
137
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md
138
- */
139
- '@typescript-eslint/no-confusing-non-null-assertion': 'error',
140
- /**
141
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-dynamic-delete.md
142
- */
143
- '@typescript-eslint/no-dynamic-delete': 'error',
144
- /**
145
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-empty-interface.md
146
- */
147
- '@typescript-eslint/no-empty-interface': 'off',
148
- /**
149
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-explicit-any.md
150
- */
151
- '@typescript-eslint/no-explicit-any': [
152
- 'warn',
153
- {
154
- ignoreRestArgs: true,
155
- // enable later
156
- fixToUnknown: false,
157
- },
158
- ],
159
- /**
160
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-non-null-assertion.md
161
- */
162
- '@typescript-eslint/no-extra-non-null-assertion': 'error',
163
- /**
164
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extraneous-class.md
165
- */
166
- '@typescript-eslint/no-extraneous-class': [
167
- 'error',
168
- {
169
- allowConstructorOnly: false,
170
- allowEmpty: false,
171
- allowStaticOnly: false,
172
- allowWithDecorator: false,
173
- },
174
- ],
175
- /**
176
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-floating-promises.md
177
- */
178
- '@typescript-eslint/no-floating-promises': 'off',
179
- /**
180
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-for-in-array.md
181
- */
182
- '@typescript-eslint/no-for-in-array': 'off',
183
- /**
184
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-implicit-any-catch.md
185
- */
186
- '@typescript-eslint/no-implicit-any-catch': [
187
- 'error',
188
- {
189
- allowExplicitAny: false,
190
- },
191
- ],
192
- /**
193
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-implied-eval.md
194
- */
195
- '@typescript-eslint/no-implied-eval': 'off',
196
- /**
197
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-inferrable-types.md
198
- */
199
- '@typescript-eslint/no-inferrable-types': [
200
- 'error',
201
- {
202
- ignoreParameters: false,
203
- ignoreProperties: false,
204
- },
205
- ],
206
- /**
207
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-invalid-void-type.md
208
- */
209
- '@typescript-eslint/no-invalid-void-type': [
210
- 'off',
211
- {
212
- allowInGenericTypeArguments: true,
213
- },
214
- ],
215
- /**
216
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-misused-new.md
217
- */
218
- '@typescript-eslint/no-misused-new': 'error',
219
- /**
220
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-misused-promises.md
221
- */
222
- '@typescript-eslint/no-misused-promises': 'off',
223
- /**
224
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md
225
- */
226
- '@typescript-eslint/no-namespace': 'off',
227
- /**
228
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md
229
- */
230
- '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
231
- /**
232
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-non-null-assertion.md
233
- */
234
- '@typescript-eslint/no-non-null-assertion': 'warn',
235
- /**
236
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-parameter-properties.md
237
- */
238
- '@typescript-eslint/no-parameter-properties': 'error',
239
- /**
240
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-require-imports.md
241
- */
242
- '@typescript-eslint/no-require-imports': 'error',
243
- /**
244
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-this-alias.md
245
- */
246
- '@typescript-eslint/no-this-alias': 'error',
247
- /**
248
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-throw-literal.md
249
- */
250
- '@typescript-eslint/no-throw-literal': 'off',
251
- /**
252
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-type-alias.md
253
- */
254
- '@typescript-eslint/no-type-alias': [
255
- 'off',
256
- {
257
- allowAliases: 'always',
258
- allowCallbacks: 'always',
259
- allowConditionalTypes: 'always',
260
- allowConstructors: 'never',
261
- allowLiterals: 'in-unions-and-intersections',
262
- allowMappedTypes: 'always',
263
- allowTupleTypes: 'always',
264
- },
265
- ],
266
- /**
267
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md
268
- */
269
- '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'off',
270
- /**
271
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-condition.md
272
- */
273
- '@typescript-eslint/no-unnecessary-condition': 'off',
274
- /**
275
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-qualifier.md
276
- */
277
- '@typescript-eslint/no-unnecessary-qualifier': 'off',
278
- /**
279
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-type-arguments.md
280
- */
281
- '@typescript-eslint/no-unnecessary-type-arguments': 'off',
282
- /**
283
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md
284
- */
285
- '@typescript-eslint/no-unnecessary-type-assertion': 'off',
286
- /**
287
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-assignment.md
288
- */
289
- '@typescript-eslint/no-unsafe-assignment': 'off',
290
- /**
291
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-call.md
292
- */
293
- '@typescript-eslint/no-unsafe-call': 'off',
294
- /**
295
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-member-access.md
296
- */
297
- '@typescript-eslint/no-unsafe-member-access': 'off',
298
- /**
299
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-return.md
300
- */
301
- '@typescript-eslint/no-unsafe-return': 'off',
302
- /**
303
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-var-requires.md
304
- */
305
- '@typescript-eslint/no-var-requires': 'error',
306
- /**
307
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-as-const.md
308
- */
309
- '@typescript-eslint/prefer-as-const': 'error',
310
- /**
311
- * We don't care about enums having implicit values.
312
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-enum-initializers.md
313
- */
314
- '@typescript-eslint/prefer-enum-initializers': 'off',
315
- /**
316
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-for-of.md
317
- */
318
- '@typescript-eslint/prefer-for-of': 'error',
319
- /**
320
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-includes.md
321
- */
322
- '@typescript-eslint/prefer-includes': 'off',
323
- /**
324
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.md
325
- */
326
- '@typescript-eslint/prefer-literal-enum-member': 'error',
327
- /**
328
- * using ES2015 syntax so this rule can be safetly turned off
329
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-namespace-keyword.md
330
- */
331
- '@typescript-eslint/prefer-namespace-keyword': 'off',
332
- /**
333
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md
334
- */
335
- '@typescript-eslint/prefer-nullish-coalescing': 'off',
336
- /**
337
- * only set to warn because there are some cases this behavior doesnt work because
338
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-optional-chain.md
339
- */
340
- '@typescript-eslint/prefer-optional-chain': 'warn',
341
- /**
342
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-readonly.md
343
- */
344
- '@typescript-eslint/prefer-readonly': 'off',
345
- /**
346
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md
347
- */
348
- '@typescript-eslint/prefer-readonly-parameter-types': 'off',
349
- /**
350
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md
351
- */
352
- '@typescript-eslint/prefer-reduce-type-parameter': 'off',
353
- /**
354
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-regexp-exec.md
355
- */
356
- '@typescript-eslint/prefer-regexp-exec': 'off',
357
- /**
358
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-string-starts-ends-with.md
359
- */
360
- '@typescript-eslint/prefer-string-starts-ends-with': 'off',
361
- /**
362
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.md
363
- */
364
- '@typescript-eslint/prefer-ts-expect-error': 'warn',
365
- /**
366
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/promise-function-async.md
367
- */
368
- '@typescript-eslint/promise-function-async': 'off',
369
- /**
370
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/require-array-sort-compare.md
371
- */
372
- '@typescript-eslint/require-array-sort-compare': 'off',
373
- /**
374
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/restrict-plus-operands.md
375
- */
376
- '@typescript-eslint/restrict-plus-operands': 'off',
377
- /**
378
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/restrict-template-expressions.md
379
- */
380
- '@typescript-eslint/restrict-template-expressions': 'off',
381
- /**
382
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/strict-boolean-expressions.md
383
- */
384
- '@typescript-eslint/strict-boolean-expressions': 'off',
385
- /**
386
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/switch-exhaustiveness-check.md
387
- */
388
- '@typescript-eslint/switch-exhaustiveness-check': 'off',
389
- /**
390
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/triple-slash-reference.md
391
- */
392
- '@typescript-eslint/triple-slash-reference': 'error',
393
- /**
394
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/type-annotation-spacing.md
395
- */
396
- '@typescript-eslint/type-annotation-spacing': [
397
- 'error',
398
- {
399
- before: false,
400
- after: true,
401
- overrides: {
402
- arrow: {
403
- before: true,
404
- after: true,
405
- },
406
- },
407
- },
408
- ],
409
- /**
410
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/typedef.md
411
- */
412
- '@typescript-eslint/typedef': [
413
- 'error',
414
- {
415
- arrayDestructuring: false,
416
- arrowParameter: false,
417
- memberVariableDeclaration: false,
418
- objectDestructuring: false,
419
- parameter: false,
420
- propertyDeclaration: true,
421
- variableDeclaration: false,
422
- variableDeclarationIgnoreFunction: false,
423
- },
424
- ],
425
- /**
426
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/unbound-method.md
427
- */
428
- '@typescript-eslint/unbound-method': 'off',
429
- /**
430
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/unified-signatures.md
431
- */
432
- '@typescript-eslint/unified-signatures': 'off',
433
-
434
- // @typescript-eslint Extension Rules
435
- // ==================================================================================
436
- /**
437
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/brace-style.md
438
- */
439
- 'brace-style': 'off',
440
- '@typescript-eslint/brace-style': 'error',
441
- /**
442
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-spacing.md
443
- */
444
- 'comma-spacing': 'off',
445
- '@typescript-eslint/comma-spacing': 'error',
446
- /**
447
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/default-param-last.md
448
- */
449
- 'default-param-last': 'off',
450
- '@typescript-eslint/default-param-last': 'error',
451
- /**
452
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/dot-notation.md
453
- */
454
- 'dot-notation': 'error',
455
- '@typescript-eslint/dot-notation': 'off',
456
- /**
457
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/func-call-spacing.md
458
- */
459
- 'func-call-spacing': 'off',
460
- '@typescript-eslint/func-call-spacing': 'error',
461
- /**
462
- * use prettier instead
463
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/indent.md
464
- */
465
- indent: 'off',
466
- '@typescript-eslint/indent': 'off',
467
- /**
468
- * Allow a mix between the two
469
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/init-declarations.md
470
- */
471
- '@typescript-eslint/init-declarations': 'off',
472
- /**
473
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/keyword-spacing.md
474
- */
475
- 'keyword-spacing': 'off',
476
- '@typescript-eslint/keyword-spacing': 'error',
477
- /**
478
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/lines-between-class-members.md
479
- */
480
- 'lines-between-class-members': 'off',
481
- '@typescript-eslint/lines-between-class-members': [
482
- 'error',
483
- 'always',
484
- {
485
- // base eslint config
486
- exceptAfterSingleLine: true,
487
- // typescript specific
488
- exceptAfterOverload: true,
489
- },
490
- ],
491
- /**
492
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-array-constructor.md
493
- */
494
- 'no-array-constructor': 'off',
495
- '@typescript-eslint/no-array-constructor': 'error',
496
- /**
497
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-dupe-class-members.md
498
- */
499
- 'no-dupe-class-members': 'off',
500
- '@typescript-eslint/no-dupe-class-members': 'error',
501
- /**
502
- * Use prettier
503
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-parens.md
504
- */
505
- 'no-extra-parens': 'off',
506
- '@typescript-eslint/no-extra-parens': 'off',
507
- /**
508
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-semi.md
509
- */
510
- 'no-extra-semi': 'off',
511
- '@typescript-eslint/no-extra-semi': 'error',
512
- /**
513
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-invalid-this.md
514
- */
515
- 'no-invalid-this': 'off',
516
- '@typescript-eslint/no-invalid-this': 'error',
517
- /**
518
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-loss-of-precision.md
519
- */
520
- 'no-loss-of-precision': 'off',
521
- '@typescript-eslint/no-loss-of-precision': 'error',
522
- /**
523
- * https://eslint.org/docs/rules/no-magic-numbers
524
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-magic-numbers.md
525
- */
526
- 'no-magic-numbers': 'off',
527
- '@typescript-eslint/no-magic-numbers': [
528
- 'off',
529
- {
530
- // base eslint configs
531
- ignoreArrayIndexes: true,
532
- ignoreDefaultValues: true,
533
- enforceConst: true,
534
- // typescript specific configs
535
- ignoreEnums: true,
536
- ignoreNumericLiteralTypes: true,
537
- ignoreReadonlyClassProperties: true,
538
- },
539
- ],
540
- /**
541
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-redeclare.md
542
- */
543
- 'no-redeclare': 'off',
544
- '@typescript-eslint/no-redeclare': [
545
- 'error',
546
- {
547
- // prevents variables from being created with global variable naming
548
- builtinGlobals: true,
549
- },
550
- ],
551
- /**
552
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-shadow.md
553
- */
554
- 'no-shadow': 'off',
555
- '@typescript-eslint/no-shadow': [
556
- 'error',
557
- {
558
- // No variables + types with same naming
559
- ignoreTypeValueShadow: false,
560
- },
561
- ],
562
- /**
563
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unused-expressions.md
564
- */
565
- 'no-unused-expressions': 'off',
566
- '@typescript-eslint/no-unused-expressions': 'error',
567
- /**
568
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unused-vars.md
569
- */
570
- 'no-unused-vars': 'off',
571
- '@typescript-eslint/no-unused-vars': [
572
- 'error',
573
- {
574
- ignoreRestSiblings: true,
575
- },
576
- ],
577
- /**
578
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md
579
- */
580
- 'no-use-before-define': 'off',
581
- '@typescript-eslint/no-use-before-define': 'off',
582
- /**
583
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-useless-constructor.md
584
- */
585
- 'no-useless-constructor': 'off',
586
- '@typescript-eslint/no-useless-constructor': 'error',
587
- /**
588
- * https://eslint.org/docs/rules/quotes
589
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/quotes.md
590
- */
591
- quotes: 'off',
592
- '@typescript-eslint/quotes': [
593
- 'error',
594
- 'single',
595
- {
596
- avoidEscape: true,
597
- allowTemplateLiterals: true,
598
- },
599
- ],
600
- /**
601
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/require-await.md
602
- */
603
- '@typescript-eslint/require-await': 'off',
604
- /**
605
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/return-await.md
606
- */
607
- '@typescript-eslint/return-await': 'off',
608
- /**
609
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/semi.md
610
- */
611
- semi: 'off',
612
- '@typescript-eslint/semi': ['error', 'never'],
613
- /**
614
- * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-before-function-paren.md
615
- */
616
- 'space-before-function-paren': 'off',
617
- '@typescript-eslint/space-before-function-paren': [
618
- 'error',
619
- {
620
- anonymous: 'never',
621
- named: 'never',
622
- asyncArrow: 'always',
623
- },
624
- ],
625
- },
626
- },
627
- ],
628
- }
1
+ module.exports = {
2
+ plugins: ['@typescript-eslint'],
3
+ overrides: [
4
+ {
5
+ files: ['**/**.ts', '**/**.d.ts'],
6
+ rules: {
7
+ 'no-undef': 'off',
8
+ camelcase: 'off',
9
+ '@typescript-eslint/adjacent-overload-signatures': 'error',
10
+ /**
11
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/array-type.md
12
+ */
13
+ '@typescript-eslint/array-type': ['error', { default: 'array-simple' }],
14
+ /**
15
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/await-thenable.md
16
+ */
17
+ '@typescript-eslint/await-thenable': 'off',
18
+ /**
19
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-assertions.md
20
+ */
21
+ '@typescript-eslint/consistent-type-assertions': [
22
+ 'error',
23
+ { assertionStyle: 'as', objectLiteralTypeAssertions: 'allow-as-parameter' },
24
+ ],
25
+ /**
26
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-definitions.md
27
+ */
28
+ '@typescript-eslint/consistent-type-definitions': ['error', 'interface'],
29
+ /**
30
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-imports.md
31
+ */
32
+ '@typescript-eslint/consistent-type-imports': 'warn',
33
+ /**
34
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-function-return-type.md
35
+ */
36
+ '@typescript-eslint/explicit-function-return-type': [
37
+ 'error',
38
+ {
39
+ // TODO: come back and check if we need those
40
+ allowExpressions: true,
41
+ allowTypedFunctionExpressions: true,
42
+ allowHigherOrderFunctions: true,
43
+ allowConciseArrowFunctionExpressionsStartingWithVoid: false,
44
+ },
45
+ ],
46
+ /**
47
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md
48
+ */
49
+ '@typescript-eslint/explicit-member-accessibility': [
50
+ 'error',
51
+ { accessibility: 'no-public' },
52
+ ],
53
+ /**
54
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/member-delimiter-style.md
55
+ */
56
+ '@typescript-eslint/member-delimiter-style': [
57
+ 'error',
58
+ {
59
+ multiline: {
60
+ delimiter: 'none',
61
+ requireLast: true,
62
+ },
63
+ singleline: {
64
+ delimiter: 'semi',
65
+ requireLast: false,
66
+ },
67
+ },
68
+ ],
69
+ /**
70
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/method-signature-style.md
71
+ */
72
+ '@typescript-eslint/method-signature-style': 'off',
73
+ /**
74
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/naming-convention.md
75
+ */
76
+ '@typescript-eslint/naming-convention': [
77
+ 'off',
78
+ {
79
+ selector: 'default',
80
+ format: ['camelCase'],
81
+ leadingUnderscore: 'forbid',
82
+ trailingUnderscore: 'forbid',
83
+ },
84
+ {
85
+ selector: 'variable',
86
+ format: ['camelCase', 'UPPER_CASE'],
87
+ leadingUnderscore: 'forbid',
88
+ trailingUnderscore: 'forbid',
89
+ },
90
+ // Enforce that type parameters (generics) are prefixed with T or U
91
+ {
92
+ selector: 'typeParameter',
93
+ format: ['PascalCase'],
94
+ prefix: ['T', 'U'],
95
+ },
96
+ // enforce boolean variables to start with proper prefix.
97
+ {
98
+ selector: 'variable',
99
+ types: ['boolean'],
100
+ format: ['PascalCase'],
101
+ prefix: ['is', 'should', 'has', 'can', 'did', 'will'],
102
+ },
103
+ // Enforce that interface names do not begin with an I
104
+ {
105
+ selector: 'interface',
106
+ format: ['PascalCase'],
107
+ custom: {
108
+ regex: '^I[A-Z]',
109
+ match: false,
110
+ },
111
+ },
112
+ {
113
+ selector: [
114
+ 'function',
115
+ 'parameter',
116
+ 'property',
117
+ 'parameterProperty',
118
+ 'method',
119
+ 'accessor',
120
+ ],
121
+ format: ['camelCase'],
122
+ leadingUnderscore: 'forbid',
123
+ trailingUnderscore: 'forbid',
124
+ },
125
+ {
126
+ selector: ['class', 'interface', 'typeAlias', 'enum', 'typeParameter'],
127
+ format: ['PascalCase'],
128
+ leadingUnderscore: 'forbid',
129
+ trailingUnderscore: 'forbid',
130
+ },
131
+ ],
132
+ /**
133
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-base-to-string.md
134
+ */
135
+ '@typescript-eslint/no-base-to-string': 'off',
136
+ /**
137
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md
138
+ */
139
+ '@typescript-eslint/no-confusing-non-null-assertion': 'error',
140
+ /**
141
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-dynamic-delete.md
142
+ */
143
+ '@typescript-eslint/no-dynamic-delete': 'error',
144
+ /**
145
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-empty-interface.md
146
+ */
147
+ '@typescript-eslint/no-empty-interface': 'off',
148
+ /**
149
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-explicit-any.md
150
+ */
151
+ '@typescript-eslint/no-explicit-any': [
152
+ 'warn',
153
+ {
154
+ ignoreRestArgs: true,
155
+ // enable later
156
+ fixToUnknown: false,
157
+ },
158
+ ],
159
+ /**
160
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-non-null-assertion.md
161
+ */
162
+ '@typescript-eslint/no-extra-non-null-assertion': 'error',
163
+ /**
164
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extraneous-class.md
165
+ */
166
+ '@typescript-eslint/no-extraneous-class': [
167
+ 'error',
168
+ {
169
+ allowConstructorOnly: false,
170
+ allowEmpty: false,
171
+ allowStaticOnly: false,
172
+ allowWithDecorator: false,
173
+ },
174
+ ],
175
+ /**
176
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-floating-promises.md
177
+ */
178
+ '@typescript-eslint/no-floating-promises': 'off',
179
+ /**
180
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-for-in-array.md
181
+ */
182
+ '@typescript-eslint/no-for-in-array': 'off',
183
+ /**
184
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-implicit-any-catch.md
185
+ */
186
+ '@typescript-eslint/no-implicit-any-catch': [
187
+ 'error',
188
+ {
189
+ allowExplicitAny: false,
190
+ },
191
+ ],
192
+ /**
193
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-implied-eval.md
194
+ */
195
+ '@typescript-eslint/no-implied-eval': 'off',
196
+ /**
197
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-inferrable-types.md
198
+ */
199
+ '@typescript-eslint/no-inferrable-types': [
200
+ 'error',
201
+ {
202
+ ignoreParameters: false,
203
+ ignoreProperties: false,
204
+ },
205
+ ],
206
+ /**
207
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-invalid-void-type.md
208
+ */
209
+ '@typescript-eslint/no-invalid-void-type': [
210
+ 'off',
211
+ {
212
+ allowInGenericTypeArguments: true,
213
+ },
214
+ ],
215
+ /**
216
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-misused-new.md
217
+ */
218
+ '@typescript-eslint/no-misused-new': 'error',
219
+ /**
220
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-misused-promises.md
221
+ */
222
+ '@typescript-eslint/no-misused-promises': 'off',
223
+ /**
224
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md
225
+ */
226
+ '@typescript-eslint/no-namespace': 'off',
227
+ /**
228
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md
229
+ */
230
+ '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',
231
+ /**
232
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-non-null-assertion.md
233
+ */
234
+ '@typescript-eslint/no-non-null-assertion': 'warn',
235
+ /**
236
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-parameter-properties.md
237
+ */
238
+ '@typescript-eslint/no-parameter-properties': 'error',
239
+ /**
240
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-require-imports.md
241
+ */
242
+ '@typescript-eslint/no-require-imports': 'error',
243
+ /**
244
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-this-alias.md
245
+ */
246
+ '@typescript-eslint/no-this-alias': 'error',
247
+ /**
248
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-throw-literal.md
249
+ */
250
+ '@typescript-eslint/no-throw-literal': 'off',
251
+ /**
252
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-type-alias.md
253
+ */
254
+ '@typescript-eslint/no-type-alias': [
255
+ 'off',
256
+ {
257
+ allowAliases: 'always',
258
+ allowCallbacks: 'always',
259
+ allowConditionalTypes: 'always',
260
+ allowConstructors: 'never',
261
+ allowLiterals: 'in-unions-and-intersections',
262
+ allowMappedTypes: 'always',
263
+ allowTupleTypes: 'always',
264
+ },
265
+ ],
266
+ /**
267
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md
268
+ */
269
+ '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'off',
270
+ /**
271
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-condition.md
272
+ */
273
+ '@typescript-eslint/no-unnecessary-condition': 'off',
274
+ /**
275
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-qualifier.md
276
+ */
277
+ '@typescript-eslint/no-unnecessary-qualifier': 'off',
278
+ /**
279
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-type-arguments.md
280
+ */
281
+ '@typescript-eslint/no-unnecessary-type-arguments': 'off',
282
+ /**
283
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md
284
+ */
285
+ '@typescript-eslint/no-unnecessary-type-assertion': 'off',
286
+ /**
287
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-assignment.md
288
+ */
289
+ '@typescript-eslint/no-unsafe-assignment': 'off',
290
+ /**
291
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-call.md
292
+ */
293
+ '@typescript-eslint/no-unsafe-call': 'off',
294
+ /**
295
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-member-access.md
296
+ */
297
+ '@typescript-eslint/no-unsafe-member-access': 'off',
298
+ /**
299
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unsafe-return.md
300
+ */
301
+ '@typescript-eslint/no-unsafe-return': 'off',
302
+ /**
303
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-var-requires.md
304
+ */
305
+ '@typescript-eslint/no-var-requires': 'error',
306
+ /**
307
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-as-const.md
308
+ */
309
+ '@typescript-eslint/prefer-as-const': 'error',
310
+ /**
311
+ * We don't care about enums having implicit values.
312
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-enum-initializers.md
313
+ */
314
+ '@typescript-eslint/prefer-enum-initializers': 'off',
315
+ /**
316
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-for-of.md
317
+ */
318
+ '@typescript-eslint/prefer-for-of': 'error',
319
+ /**
320
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-includes.md
321
+ */
322
+ '@typescript-eslint/prefer-includes': 'off',
323
+ /**
324
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-literal-enum-member.md
325
+ */
326
+ '@typescript-eslint/prefer-literal-enum-member': 'error',
327
+ /**
328
+ * using ES2015 syntax so this rule can be safetly turned off
329
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-namespace-keyword.md
330
+ */
331
+ '@typescript-eslint/prefer-namespace-keyword': 'off',
332
+ /**
333
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md
334
+ */
335
+ '@typescript-eslint/prefer-nullish-coalescing': 'off',
336
+ /**
337
+ * only set to warn because there are some cases this behavior doesnt work because
338
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-optional-chain.md
339
+ */
340
+ '@typescript-eslint/prefer-optional-chain': 'warn',
341
+ /**
342
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-readonly.md
343
+ */
344
+ '@typescript-eslint/prefer-readonly': 'off',
345
+ /**
346
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md
347
+ */
348
+ '@typescript-eslint/prefer-readonly-parameter-types': 'off',
349
+ /**
350
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md
351
+ */
352
+ '@typescript-eslint/prefer-reduce-type-parameter': 'off',
353
+ /**
354
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-regexp-exec.md
355
+ */
356
+ '@typescript-eslint/prefer-regexp-exec': 'off',
357
+ /**
358
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-string-starts-ends-with.md
359
+ */
360
+ '@typescript-eslint/prefer-string-starts-ends-with': 'off',
361
+ /**
362
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.md
363
+ */
364
+ '@typescript-eslint/prefer-ts-expect-error': 'warn',
365
+ /**
366
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/promise-function-async.md
367
+ */
368
+ '@typescript-eslint/promise-function-async': 'off',
369
+ /**
370
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/require-array-sort-compare.md
371
+ */
372
+ '@typescript-eslint/require-array-sort-compare': 'off',
373
+ /**
374
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/restrict-plus-operands.md
375
+ */
376
+ '@typescript-eslint/restrict-plus-operands': 'off',
377
+ /**
378
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/restrict-template-expressions.md
379
+ */
380
+ '@typescript-eslint/restrict-template-expressions': 'off',
381
+ /**
382
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/strict-boolean-expressions.md
383
+ */
384
+ '@typescript-eslint/strict-boolean-expressions': 'off',
385
+ /**
386
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/switch-exhaustiveness-check.md
387
+ */
388
+ '@typescript-eslint/switch-exhaustiveness-check': 'off',
389
+ /**
390
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/triple-slash-reference.md
391
+ */
392
+ '@typescript-eslint/triple-slash-reference': 'error',
393
+ /**
394
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/type-annotation-spacing.md
395
+ */
396
+ '@typescript-eslint/type-annotation-spacing': [
397
+ 'error',
398
+ {
399
+ before: false,
400
+ after: true,
401
+ overrides: {
402
+ arrow: {
403
+ before: true,
404
+ after: true,
405
+ },
406
+ },
407
+ },
408
+ ],
409
+ /**
410
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/typedef.md
411
+ */
412
+ '@typescript-eslint/typedef': [
413
+ 'error',
414
+ {
415
+ arrayDestructuring: false,
416
+ arrowParameter: false,
417
+ memberVariableDeclaration: false,
418
+ objectDestructuring: false,
419
+ parameter: false,
420
+ propertyDeclaration: true,
421
+ variableDeclaration: false,
422
+ variableDeclarationIgnoreFunction: false,
423
+ },
424
+ ],
425
+ /**
426
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/unbound-method.md
427
+ */
428
+ '@typescript-eslint/unbound-method': 'off',
429
+ /**
430
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/unified-signatures.md
431
+ */
432
+ '@typescript-eslint/unified-signatures': 'off',
433
+
434
+ // @typescript-eslint Extension Rules
435
+ // ==================================================================================
436
+ /**
437
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/brace-style.md
438
+ */
439
+ 'brace-style': 'off',
440
+ '@typescript-eslint/brace-style': 'error',
441
+ /**
442
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-spacing.md
443
+ */
444
+ 'comma-spacing': 'off',
445
+ '@typescript-eslint/comma-spacing': 'error',
446
+ /**
447
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/default-param-last.md
448
+ */
449
+ 'default-param-last': 'off',
450
+ '@typescript-eslint/default-param-last': 'error',
451
+ /**
452
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/dot-notation.md
453
+ */
454
+ 'dot-notation': 'error',
455
+ '@typescript-eslint/dot-notation': 'off',
456
+ /**
457
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/func-call-spacing.md
458
+ */
459
+ 'func-call-spacing': 'off',
460
+ '@typescript-eslint/func-call-spacing': 'error',
461
+ /**
462
+ * use prettier instead
463
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/indent.md
464
+ */
465
+ indent: 'off',
466
+ '@typescript-eslint/indent': 'off',
467
+ /**
468
+ * Allow a mix between the two
469
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/init-declarations.md
470
+ */
471
+ '@typescript-eslint/init-declarations': 'off',
472
+ /**
473
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/keyword-spacing.md
474
+ */
475
+ 'keyword-spacing': 'off',
476
+ '@typescript-eslint/keyword-spacing': 'error',
477
+ /**
478
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/lines-between-class-members.md
479
+ */
480
+ 'lines-between-class-members': 'off',
481
+ '@typescript-eslint/lines-between-class-members': [
482
+ 'error',
483
+ 'always',
484
+ {
485
+ // base eslint config
486
+ exceptAfterSingleLine: true,
487
+ // typescript specific
488
+ exceptAfterOverload: true,
489
+ },
490
+ ],
491
+ /**
492
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-array-constructor.md
493
+ */
494
+ 'no-array-constructor': 'off',
495
+ '@typescript-eslint/no-array-constructor': 'error',
496
+ /**
497
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-dupe-class-members.md
498
+ */
499
+ 'no-dupe-class-members': 'off',
500
+ '@typescript-eslint/no-dupe-class-members': 'error',
501
+ /**
502
+ * Use prettier
503
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-parens.md
504
+ */
505
+ 'no-extra-parens': 'off',
506
+ '@typescript-eslint/no-extra-parens': 'off',
507
+ /**
508
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-semi.md
509
+ */
510
+ 'no-extra-semi': 'off',
511
+ '@typescript-eslint/no-extra-semi': 'error',
512
+ /**
513
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-invalid-this.md
514
+ */
515
+ 'no-invalid-this': 'off',
516
+ '@typescript-eslint/no-invalid-this': 'error',
517
+ /**
518
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-loss-of-precision.md
519
+ */
520
+ 'no-loss-of-precision': 'off',
521
+ '@typescript-eslint/no-loss-of-precision': 'error',
522
+ /**
523
+ * https://eslint.org/docs/rules/no-magic-numbers
524
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-magic-numbers.md
525
+ */
526
+ 'no-magic-numbers': 'off',
527
+ '@typescript-eslint/no-magic-numbers': [
528
+ 'off',
529
+ {
530
+ // base eslint configs
531
+ ignoreArrayIndexes: true,
532
+ ignoreDefaultValues: true,
533
+ enforceConst: true,
534
+ // typescript specific configs
535
+ ignoreEnums: true,
536
+ ignoreNumericLiteralTypes: true,
537
+ ignoreReadonlyClassProperties: true,
538
+ },
539
+ ],
540
+ /**
541
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-redeclare.md
542
+ */
543
+ 'no-redeclare': 'off',
544
+ '@typescript-eslint/no-redeclare': [
545
+ 'error',
546
+ {
547
+ // prevents variables from being created with global variable naming
548
+ builtinGlobals: true,
549
+ },
550
+ ],
551
+ /**
552
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-shadow.md
553
+ */
554
+ 'no-shadow': 'off',
555
+ '@typescript-eslint/no-shadow': [
556
+ 'error',
557
+ {
558
+ // No variables + types with same naming
559
+ ignoreTypeValueShadow: false,
560
+ },
561
+ ],
562
+ /**
563
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unused-expressions.md
564
+ */
565
+ 'no-unused-expressions': 'off',
566
+ '@typescript-eslint/no-unused-expressions': 'error',
567
+ /**
568
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unused-vars.md
569
+ */
570
+ 'no-unused-vars': 'off',
571
+ '@typescript-eslint/no-unused-vars': [
572
+ 'error',
573
+ {
574
+ ignoreRestSiblings: true,
575
+ },
576
+ ],
577
+ /**
578
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md
579
+ */
580
+ 'no-use-before-define': 'off',
581
+ '@typescript-eslint/no-use-before-define': 'off',
582
+ /**
583
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-useless-constructor.md
584
+ */
585
+ 'no-useless-constructor': 'off',
586
+ '@typescript-eslint/no-useless-constructor': 'error',
587
+ /**
588
+ * https://eslint.org/docs/rules/quotes
589
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/quotes.md
590
+ */
591
+ quotes: 'off',
592
+ '@typescript-eslint/quotes': [
593
+ 'error',
594
+ 'single',
595
+ {
596
+ avoidEscape: true,
597
+ allowTemplateLiterals: true,
598
+ },
599
+ ],
600
+ /**
601
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/require-await.md
602
+ */
603
+ '@typescript-eslint/require-await': 'off',
604
+ /**
605
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/return-await.md
606
+ */
607
+ '@typescript-eslint/return-await': 'off',
608
+ /**
609
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/semi.md
610
+ */
611
+ semi: 'off',
612
+ '@typescript-eslint/semi': ['error', 'never'],
613
+ /**
614
+ * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-before-function-paren.md
615
+ */
616
+ 'space-before-function-paren': 'off',
617
+ '@typescript-eslint/space-before-function-paren': [
618
+ 'error',
619
+ {
620
+ anonymous: 'never',
621
+ named: 'never',
622
+ asyncArrow: 'always',
623
+ },
624
+ ],
625
+ },
626
+ },
627
+ ],
628
+ }