@ronas-it/nx-generators 0.15.2 → 0.16.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 (45) hide show
  1. package/package.json +1 -1
  2. package/src/generators/code-checks/files/.eslint.ronasit.cjs.template +301 -300
  3. package/src/generators/code-checks/files/eslint.config.cjs.template +39 -37
  4. package/src/generators/expo-app/generator.js +1 -1
  5. package/src/generators/expo-app/generator.js.map +1 -1
  6. package/src/generators/next-app/generator.js +6 -0
  7. package/src/generators/next-app/generator.js.map +1 -1
  8. package/src/shared/dependencies.d.ts +6 -0
  9. package/src/shared/dependencies.js +6 -0
  10. package/src/shared/dependencies.js.map +1 -1
  11. package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/refresh-token-response.ts.template +1 -1
  12. package/src/shared/generators/auth/common-files/shared/data-access/auth/src/lib/store/listener.ts.template +165 -0
  13. package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/lib/store/slice.ts.template +12 -1
  14. package/src/shared/generators/auth/generator.js +19 -2
  15. package/src/shared/generators/auth/generator.js.map +1 -1
  16. package/src/shared/generators/auth/next-app-files/app/[locale]/providers.tsx.template +26 -0
  17. package/src/shared/generators/auth/next-app-files/middleware.ts.template +33 -0
  18. package/src/shared/generators/auth/next-libs-files/shared/data-access/cookie/src/config.ts.template +6 -0
  19. package/src/shared/generators/auth/next-libs-files/shared/data-access/cookie/src/index.ts.template +2 -0
  20. package/src/shared/generators/auth/next-libs-files/shared/data-access/cookie/src/service.ts.template +28 -0
  21. package/src/shared/generators/auth/schema.d.ts +3 -0
  22. package/src/shared/generators/auth/lib-files/shared/data-access/auth/src/lib/store/listener.ts.template +0 -74
  23. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/index.ts.template +0 -0
  24. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/api.ts.template +0 -0
  25. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/index.ts.template +0 -0
  26. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/forgot-password-request.ts.template +0 -0
  27. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/index.ts.template +0 -0
  28. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/login-request.ts.template +0 -0
  29. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/login-response.ts.template +0 -0
  30. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/register-request.ts.template +0 -0
  31. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/auth/models/restore-password-request.ts.template +0 -0
  32. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/index.ts.template +0 -0
  33. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/api.ts.template +0 -0
  34. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/config.ts.template +0 -0
  35. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/index.ts.template +0 -0
  36. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/models/get-profile-request.ts.template +0 -0
  37. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/models/index.ts.template +0 -0
  38. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/types/index.ts.template +0 -0
  39. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/profile/types/relation.ts.template +0 -0
  40. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/user/index.ts.template +0 -0
  41. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/user/models/index.ts.template +0 -0
  42. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/api/src/lib/user/models/user.ts.template +0 -0
  43. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/index.ts.template +0 -0
  44. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/lib/index.ts.template +0 -0
  45. /package/src/shared/generators/auth/{lib-files → common-files}/shared/data-access/auth/src/lib/store/index.ts.template +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ronas-it/nx-generators",
3
- "version": "0.15.2",
3
+ "version": "0.16.0",
4
4
  "description": "Nx generators for Ronas IT projects",
5
5
  "license": "MIT",
6
6
  "author": "Ronas IT",
@@ -1,354 +1,355 @@
1
1
  const typescriptEslint = require('@typescript-eslint/eslint-plugin');
2
- const stylistic = require('@stylistic/eslint-plugin');
3
2
  const unusedImports = require('eslint-plugin-unused-imports');
4
3
  const react = require('eslint-plugin-react');
5
4
  const reactHooks = require('eslint-plugin-react-hooks');
6
5
  const _import = require('eslint-plugin-import');
7
6
  const tseslint = require('typescript-eslint');
8
7
 
9
- const { fixupPluginRules } = require('@eslint/compat');
10
-
11
8
  const globals = require('globals');
12
9
  const tsParser = require('@typescript-eslint/parser');
13
10
  const eslint = require('@eslint/js');
14
11
 
15
- module.exports = [
16
- eslint.configs.recommended,
17
- ...tseslint.configs.recommended,
18
- react.configs.flat.recommended,
19
- react.configs.flat['jsx-runtime'],
20
- {
21
- plugins: {
22
- '@typescript-eslint': typescriptEslint,
23
- '@stylistic': stylistic,
24
- 'unused-imports': unusedImports,
25
- react,
26
- 'react-hooks': reactHooks,
27
- import: _import,
28
- },
29
-
30
- languageOptions: {
31
- globals: {
32
- ...globals.node,
12
+ module.exports = (async () => {
13
+ const stylistic = await import('@stylistic/eslint-plugin');
14
+
15
+ return [
16
+ eslint.configs.recommended,
17
+ ...tseslint.configs.recommended,
18
+ react.configs.flat.recommended,
19
+ react.configs.flat['jsx-runtime'],
20
+ {
21
+ plugins: {
22
+ '@typescript-eslint': typescriptEslint,
23
+ '@stylistic': stylistic.default,
24
+ 'unused-imports': unusedImports,
25
+ react,
26
+ 'react-hooks': reactHooks,
27
+ import: _import,
33
28
  },
34
29
 
35
- parser: tsParser,
36
- ecmaVersion: 6,
37
- sourceType: 'commonjs',
30
+ languageOptions: {
31
+ globals: {
32
+ ...globals.node,
33
+ },
38
34
 
39
- parserOptions: {
40
- project: 'tsconfig.(base|lib).json',
35
+ parser: tsParser,
36
+ ecmaVersion: 6,
37
+ sourceType: 'commonjs',
41
38
 
42
- ecmaFeatures: {
43
- jsx: true,
44
- },
45
- },
46
- },
39
+ parserOptions: {
40
+ project: 'tsconfig.(base|lib).json',
47
41
 
48
- settings: {
49
- react: {
50
- version: 'detect',
42
+ ecmaFeatures: {
43
+ jsx: true,
44
+ },
45
+ },
51
46
  },
52
47
 
53
- 'react-native/style-sheet-object-names': ['EStyleSheet'],
48
+ settings: {
49
+ react: {
50
+ version: 'detect',
51
+ },
54
52
 
55
- 'import/parsers': {
56
- '@typescript-eslint/parser': ['.ts', '.tsx'],
57
- },
53
+ 'react-native/style-sheet-object-names': ['EStyleSheet'],
58
54
 
59
- 'import/resolver': {
60
- typescript: {
61
- alwaysTryTypes: true,
55
+ 'import/parsers': {
56
+ '@typescript-eslint/parser': ['.ts', '.tsx'],
62
57
  },
63
58
 
64
- node: {
65
- extensions: ['.js', '.jsx', '.ts', '.tsx'],
59
+ 'import/resolver': {
60
+ typescript: {
61
+ alwaysTryTypes: true,
62
+ },
63
+
64
+ node: {
65
+ extensions: ['.js', '.jsx', '.ts', '.tsx'],
66
+ },
66
67
  },
67
68
  },
68
- },
69
69
 
70
- rules: {
71
- '@stylistic/indent': [
72
- 'warn',
73
- 2,
74
- {
75
- SwitchCase: 1,
76
- },
77
- ],
70
+ rules: {
71
+ '@stylistic/indent': [
72
+ 'warn',
73
+ 2,
74
+ {
75
+ SwitchCase: 1,
76
+ },
77
+ ],
78
78
 
79
- '@stylistic/quotes': [
80
- 'warn',
81
- 'single',
82
- {
83
- allowTemplateLiterals: true,
84
- },
85
- ],
86
-
87
- 'react/react-in-jsx-scope': 'off',
88
- '@stylistic/arrow-parens': ['warn', 'always'],
89
- '@stylistic/arrow-spacing': ['warn', { before: true, after: true }],
90
- '@stylistic/block-spacing': ['warn', 'always'],
91
- '@stylistic/brace-style': ['warn', '1tbs'],
92
- '@stylistic/comma-spacing': ['warn', { before: false, after: true }],
93
- '@stylistic/eol-last': ['warn', 'always'],
94
- '@stylistic/func-call-spacing': ['warn', 'never'],
95
- '@stylistic/key-spacing': ['warn', { beforeColon: false, afterColon: true }],
96
- '@stylistic/keyword-spacing': ['warn', { before: true, after: true }],
97
- '@stylistic/no-whitespace-before-property': 'warn',
98
- '@stylistic/space-before-blocks': ['warn', 'always'],
99
- '@stylistic/space-infix-ops': 'warn',
100
- '@stylistic/switch-colon-spacing': ['warn', { after: true, before: false }],
101
- '@stylistic/member-delimiter-style': 'warn',
102
- '@stylistic/type-annotation-spacing': 'warn',
103
- '@stylistic/jsx-equals-spacing': ['warn', 'never'],
104
- '@stylistic/jsx-indent-props': ['warn', 2],
105
- '@stylistic/jsx-props-no-multi-spaces': 'warn',
106
- '@stylistic/type-named-tuple-spacing': 'warn',
107
- 'no-var': 'warn',
108
- 'no-dupe-class-members': 'off',
109
- 'import/prefer-default-export': 'off',
110
- '@stylistic/implicit-arrow-linebreak': ['warn', 'beside'],
111
-
112
- '@stylistic/newline-per-chained-call': [
113
- 'warn',
114
- {
115
- ignoreChainWithDepth: 2,
116
- },
117
- ],
79
+ '@stylistic/quotes': [
80
+ 'warn',
81
+ 'single',
82
+ {
83
+ allowTemplateLiterals: true,
84
+ },
85
+ ],
86
+
87
+ 'react/react-in-jsx-scope': 'off',
88
+ '@stylistic/arrow-parens': ['warn', 'always'],
89
+ '@stylistic/arrow-spacing': ['warn', { before: true, after: true }],
90
+ '@stylistic/block-spacing': ['warn', 'always'],
91
+ '@stylistic/brace-style': ['warn', '1tbs'],
92
+ '@stylistic/comma-spacing': ['warn', { before: false, after: true }],
93
+ '@stylistic/eol-last': ['warn', 'always'],
94
+ '@stylistic/func-call-spacing': ['warn', 'never'],
95
+ '@stylistic/key-spacing': ['warn', { beforeColon: false, afterColon: true }],
96
+ '@stylistic/keyword-spacing': ['warn', { before: true, after: true }],
97
+ '@stylistic/no-whitespace-before-property': 'warn',
98
+ '@stylistic/space-before-blocks': ['warn', 'always'],
99
+ '@stylistic/space-infix-ops': 'warn',
100
+ '@stylistic/switch-colon-spacing': ['warn', { after: true, before: false }],
101
+ '@stylistic/member-delimiter-style': 'warn',
102
+ '@stylistic/type-annotation-spacing': 'warn',
103
+ '@stylistic/jsx-equals-spacing': ['warn', 'never'],
104
+ '@stylistic/jsx-indent-props': ['warn', 2],
105
+ '@stylistic/jsx-props-no-multi-spaces': 'warn',
106
+ '@stylistic/type-named-tuple-spacing': 'warn',
107
+ 'no-var': 'warn',
108
+ 'no-dupe-class-members': 'off',
109
+ 'import/prefer-default-export': 'off',
110
+ '@stylistic/implicit-arrow-linebreak': ['warn', 'beside'],
111
+
112
+ '@stylistic/newline-per-chained-call': [
113
+ 'warn',
114
+ {
115
+ ignoreChainWithDepth: 2,
116
+ },
117
+ ],
118
118
 
119
- '@stylistic/function-call-argument-newline': ['warn', 'consistent'],
120
- '@stylistic/function-paren-newline': ['warn', 'consistent'],
121
- '@stylistic/array-element-newline': ['warn', 'consistent'],
119
+ '@stylistic/function-call-argument-newline': ['warn', 'consistent'],
120
+ '@stylistic/function-paren-newline': ['warn', 'consistent'],
121
+ '@stylistic/array-element-newline': ['warn', 'consistent'],
122
122
 
123
- '@stylistic/array-bracket-newline': [
124
- 'warn',
125
- {
126
- multiline: true,
127
- },
128
- ],
129
-
130
- '@stylistic/padding-line-between-statements': [
131
- 'warn',
132
- {
133
- blankLine: 'always',
134
- prev: '*',
135
- next: 'return',
136
- },
137
- {
138
- blankLine: 'always',
139
- prev: '*',
140
- next: 'multiline-block-like',
141
- },
142
- ],
123
+ '@stylistic/array-bracket-newline': [
124
+ 'warn',
125
+ {
126
+ multiline: true,
127
+ },
128
+ ],
129
+
130
+ '@stylistic/padding-line-between-statements': [
131
+ 'warn',
132
+ {
133
+ blankLine: 'always',
134
+ prev: '*',
135
+ next: 'return',
136
+ },
137
+ {
138
+ blankLine: 'always',
139
+ prev: '*',
140
+ next: 'multiline-block-like',
141
+ },
142
+ ],
143
143
 
144
- '@typescript-eslint/no-use-before-define': [
145
- 'warn',
146
- {
147
- variables: false,
148
- },
149
- ],
144
+ '@typescript-eslint/no-use-before-define': [
145
+ 'warn',
146
+ {
147
+ variables: false,
148
+ },
149
+ ],
150
150
 
151
- '@stylistic/lines-between-class-members': [
152
- 'warn',
153
- 'always',
154
- {
155
- exceptAfterSingleLine: true,
156
- },
157
- ],
151
+ '@stylistic/lines-between-class-members': [
152
+ 'warn',
153
+ 'always',
154
+ {
155
+ exceptAfterSingleLine: true,
156
+ },
157
+ ],
158
158
 
159
- '@typescript-eslint/no-inferrable-types': [
160
- 'warn',
161
- {
162
- ignoreParameters: true,
163
- },
164
- ],
159
+ '@typescript-eslint/no-inferrable-types': [
160
+ 'warn',
161
+ {
162
+ ignoreParameters: true,
163
+ },
164
+ ],
165
165
 
166
- '@typescript-eslint/explicit-module-boundary-types': [
167
- 'warn',
168
- {
169
- allowArgumentsExplicitlyTypedAsAny: true,
170
- },
171
- ],
166
+ '@typescript-eslint/explicit-module-boundary-types': [
167
+ 'warn',
168
+ {
169
+ allowArgumentsExplicitlyTypedAsAny: true,
170
+ },
171
+ ],
172
172
 
173
- '@typescript-eslint/no-explicit-any': 'off',
173
+ '@typescript-eslint/no-explicit-any': 'off',
174
174
 
175
- '@typescript-eslint/explicit-member-accessibility': [
176
- 'warn',
177
- {
178
- accessibility: 'explicit',
175
+ '@typescript-eslint/explicit-member-accessibility': [
176
+ 'warn',
177
+ {
178
+ accessibility: 'explicit',
179
179
 
180
- overrides: {
181
- constructors: 'no-public',
180
+ overrides: {
181
+ constructors: 'no-public',
182
+ },
182
183
  },
183
- },
184
- ],
184
+ ],
185
185
 
186
- '@typescript-eslint/explicit-function-return-type': [
187
- 'warn',
188
- {
189
- allowExpressions: true,
190
- },
191
- ],
186
+ '@typescript-eslint/explicit-function-return-type': [
187
+ 'warn',
188
+ {
189
+ allowExpressions: true,
190
+ },
191
+ ],
192
192
 
193
- '@typescript-eslint/no-require-imports': 'off',
194
- '@typescript-eslint/no-unused-vars': 'off',
193
+ '@typescript-eslint/no-require-imports': 'off',
194
+ '@typescript-eslint/no-unused-vars': 'off',
195
195
 
196
- '@typescript-eslint/array-type': [
197
- 'warn',
198
- {
199
- default: 'generic',
200
- readonly: 'generic',
201
- },
202
- ],
203
-
204
- '@typescript-eslint/member-ordering': [
205
- 'warn',
206
- {
207
- default: [
208
- 'public-static-field',
209
- 'protected-static-field',
210
- 'private-static-field',
211
- 'public-instance-field',
212
- 'protected-instance-field',
213
- 'private-instance-field',
214
- 'public-static-accessor',
215
- 'protected-static-accessor',
216
- 'private-static-accessor',
217
- 'public-instance-accessor',
218
- 'protected-instance-accessor',
219
- 'private-instance-accessor',
220
- 'public-constructor',
221
- 'protected-constructor',
222
- 'private-constructor',
223
- 'public-static-method',
224
- 'public-instance-method',
225
- 'protected-static-method',
226
- 'protected-instance-method',
227
- 'private-static-method',
228
- 'private-instance-method',
229
- ],
230
- },
231
- ],
196
+ '@typescript-eslint/array-type': [
197
+ 'warn',
198
+ {
199
+ default: 'generic',
200
+ readonly: 'generic',
201
+ },
202
+ ],
203
+
204
+ '@typescript-eslint/member-ordering': [
205
+ 'warn',
206
+ {
207
+ default: [
208
+ 'public-static-field',
209
+ 'protected-static-field',
210
+ 'private-static-field',
211
+ 'public-instance-field',
212
+ 'protected-instance-field',
213
+ 'private-instance-field',
214
+ 'public-static-accessor',
215
+ 'protected-static-accessor',
216
+ 'private-static-accessor',
217
+ 'public-instance-accessor',
218
+ 'protected-instance-accessor',
219
+ 'private-instance-accessor',
220
+ 'public-constructor',
221
+ 'protected-constructor',
222
+ 'private-constructor',
223
+ 'public-static-method',
224
+ 'public-instance-method',
225
+ 'protected-static-method',
226
+ 'protected-instance-method',
227
+ 'private-static-method',
228
+ 'private-instance-method',
229
+ ],
230
+ },
231
+ ],
232
232
 
233
- '@typescript-eslint/naming-convention': [
234
- 'warn',
235
- {
236
- selector: 'typeLike',
237
- format: ['PascalCase'],
238
- },
239
- {
240
- selector: ['parameter'],
241
- format: ['camelCase', 'PascalCase'],
242
- leadingUnderscore: 'allow',
243
- },
244
- {
245
- selector: ['classProperty'],
246
- format: ['camelCase', 'snake_case'],
247
- leadingUnderscore: 'allow',
248
- },
249
- {
250
- selector: ['method', 'accessor'],
251
- format: ['camelCase'],
252
- },
253
- {
254
- selector: ['function', 'typeProperty'],
255
- format: ['camelCase', 'PascalCase'],
256
- },
257
- {
258
- selector: 'variable',
259
- format: ['camelCase', 'PascalCase', 'UPPER_CASE'],
260
- },
261
- {
262
- selector: 'enumMember',
263
- format: ['UPPER_CASE'],
264
- },
265
- ],
233
+ '@typescript-eslint/naming-convention': [
234
+ 'warn',
235
+ {
236
+ selector: 'typeLike',
237
+ format: ['PascalCase'],
238
+ },
239
+ {
240
+ selector: ['parameter'],
241
+ format: ['camelCase', 'PascalCase'],
242
+ leadingUnderscore: 'allow',
243
+ },
244
+ {
245
+ selector: ['classProperty'],
246
+ format: ['camelCase', 'snake_case'],
247
+ leadingUnderscore: 'allow',
248
+ },
249
+ {
250
+ selector: ['method', 'accessor'],
251
+ format: ['camelCase'],
252
+ },
253
+ {
254
+ selector: ['function', 'typeProperty'],
255
+ format: ['camelCase', 'PascalCase'],
256
+ },
257
+ {
258
+ selector: 'variable',
259
+ format: ['camelCase', 'PascalCase', 'UPPER_CASE'],
260
+ },
261
+ {
262
+ selector: 'enumMember',
263
+ format: ['UPPER_CASE'],
264
+ },
265
+ ],
266
266
 
267
- 'unused-imports/no-unused-imports': 'warn',
267
+ 'unused-imports/no-unused-imports': 'warn',
268
268
 
269
- 'unused-imports/no-unused-vars': [
270
- 'warn',
271
- {
272
- vars: 'all',
273
- varsIgnorePattern: '^_',
274
- argsIgnorePattern: '^_',
275
- ignoreRestSiblings: true,
276
- },
277
- ],
269
+ 'unused-imports/no-unused-vars': [
270
+ 'warn',
271
+ {
272
+ vars: 'all',
273
+ varsIgnorePattern: '^_',
274
+ argsIgnorePattern: '^_',
275
+ ignoreRestSiblings: true,
276
+ },
277
+ ],
278
278
 
279
- '@stylistic/jsx-quotes': ['warn', 'prefer-single'],
280
- 'react/jsx-boolean-value': 'off',
279
+ '@stylistic/jsx-quotes': ['warn', 'prefer-single'],
280
+ 'react/jsx-boolean-value': 'off',
281
281
 
282
- '@stylistic/jsx-self-closing-comp': [
283
- 'warn',
284
- {
285
- component: true,
286
- html: true,
287
- },
288
- ],
289
-
290
- '@stylistic/jsx-max-props-per-line': [
291
- 1,
292
- {
293
- maximum: {
294
- single: 2,
295
- multi: 1,
282
+ '@stylistic/jsx-self-closing-comp': [
283
+ 'warn',
284
+ {
285
+ component: true,
286
+ html: true,
296
287
  },
297
- },
298
- ],
299
-
300
- '@stylistic/jsx-first-prop-new-line': ['warn', 'multiline'],
301
- 'react/prop-types': 'off',
302
- 'react/jsx-fragments': ['warn', 'element'],
303
- 'import/newline-after-import': 'warn',
304
- 'import/no-unresolved': 'error',
305
- 'import/no-cycle': 'error',
306
-
307
- 'import/order': [
308
- 'warn',
309
- {
310
- groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
311
-
312
- alphabetize: {
313
- order: 'asc',
288
+ ],
289
+
290
+ '@stylistic/jsx-max-props-per-line': [
291
+ 1,
292
+ {
293
+ maximum: {
294
+ single: 2,
295
+ multi: 1,
296
+ },
314
297
  },
315
- },
316
- ],
298
+ ],
299
+
300
+ '@stylistic/jsx-first-prop-new-line': ['warn', 'multiline'],
301
+ 'react/prop-types': 'off',
302
+ 'react/jsx-fragments': ['warn', 'element'],
303
+ 'import/newline-after-import': 'warn',
304
+ 'import/no-unresolved': 'error',
305
+ 'import/no-cycle': 'error',
306
+
307
+ 'import/order': [
308
+ 'warn',
309
+ {
310
+ groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
311
+
312
+ alphabetize: {
313
+ order: 'asc',
314
+ },
315
+ },
316
+ ],
317
317
 
318
- 'import/no-duplicates': 'warn',
319
- 'react-hooks/exhaustive-deps': 'off',
318
+ 'import/no-duplicates': 'warn',
319
+ 'react-hooks/exhaustive-deps': 'off',
320
+ },
320
321
  },
321
- },
322
- {
323
- files: ['**/*.js'],
322
+ {
323
+ files: ['**/*.js'],
324
324
 
325
- rules: {
326
- '@typescript-eslint/explicit-member-accessibility': 'off',
327
- '@typescript-eslint/explicit-function-return-type': 'off',
325
+ rules: {
326
+ '@typescript-eslint/explicit-member-accessibility': 'off',
327
+ '@typescript-eslint/explicit-function-return-type': 'off',
328
+ },
328
329
  },
329
- },
330
- {
331
- files: ['**/*actions.ts'],
330
+ {
331
+ files: ['**/*actions.ts'],
332
332
 
333
- rules: {
334
- '@stylistic/function-call-argument-newline': ['warn', 'always'],
333
+ rules: {
334
+ '@stylistic/function-call-argument-newline': ['warn', 'always'],
335
335
 
336
- '@stylistic/function-paren-newline': [
337
- 'warn',
338
- {
339
- minItems: 1,
340
- },
341
- ],
336
+ '@stylistic/function-paren-newline': [
337
+ 'warn',
338
+ {
339
+ minItems: 1,
340
+ },
341
+ ],
342
+ },
342
343
  },
343
- },
344
- {
345
- files: ['**/*selectors.ts'],
346
-
347
- rules: {
348
- '@typescript-eslint/explicit-module-boundary-types': 'off',
349
- '@typescript-eslint/explicit-function-return-type': 'off',
350
- '@stylistic/function-call-argument-newline': ['warn', 'always'],
351
- '@stylistic/function-paren-newline': ['warn', 'multiline-arguments'],
344
+ {
345
+ files: ['**/*selectors.ts'],
346
+
347
+ rules: {
348
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
349
+ '@typescript-eslint/explicit-function-return-type': 'off',
350
+ '@stylistic/function-call-argument-newline': ['warn', 'always'],
351
+ '@stylistic/function-paren-newline': ['warn', 'multiline-arguments'],
352
+ },
352
353
  },
353
- },
354
- ];
354
+ ];
355
+ })();