Skip to content

Commit 41086e8

Browse files
authored
feat(eslint): add sort-key, sort prop-types, no bind jsx (#167)
1 parent 0bb54a7 commit 41086e8

File tree

14 files changed

+189
-168
lines changed

14 files changed

+189
-168
lines changed
Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,51 @@
11
module.exports = {
2-
extends: ['airbnb', 'airbnb/hooks', 'prettier'],
32
env: {
43
browser: true,
54
jest: true,
65
},
6+
extends: ['airbnb', 'airbnb/hooks', 'prettier'],
77
rules: {
8-
'sort-imports': [
9-
'error',
10-
{
11-
ignoreDeclarationSort: true,
12-
memberSyntaxSortOrder: ['single', 'multiple', 'all', 'none'],
13-
},
14-
],
15-
168
'import/order': [
179
'error',
1810
{
11+
alphabetize: {
12+
caseInsensitive: false,
13+
order: 'asc',
14+
},
1915
groups: [
2016
['builtin', 'external'],
2117
'internal',
2218
'parent',
2319
'sibling',
2420
'index',
2521
],
26-
alphabetize: {
27-
order: 'asc',
28-
caseInsensitive: false,
29-
},
3022
'newlines-between': 'never',
3123
},
3224
],
33-
3425
'padding-line-between-statements': [
3526
'error',
3627
{
3728
blankLine: 'always',
38-
prev: '*',
3929
next: 'return',
30+
prev: '*',
4031
},
4132
],
42-
4333
'react/jsx-filename-extension': ['error', { extensions: ['.js'] }],
34+
'react/jsx-no-constructed-context-values': 'warn',
4435
'react/jsx-no-script-url': 'error',
4536
'react/jsx-no-useless-fragment': 'error',
4637
'react/no-adjacent-inline-elements': 'error',
47-
'react/jsx-no-constructed-context-values': 'warn',
38+
'react/sort-prop-types': [
39+
'error',
40+
{ ignoreCase: true, requiredFirst: false, sortShapeProp: true },
41+
],
42+
'sort-imports': [
43+
'error',
44+
{
45+
ignoreDeclarationSort: true,
46+
memberSyntaxSortOrder: ['single', 'multiple', 'all', 'none'],
47+
},
48+
],
49+
'sort-keys': ['error', 'asc', { caseSensitive: true, natural: true }],
4850
},
4951
}

packages/eslint-config-react/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"name": "@scaleway/eslint-config-react",
33
"version": "1.4.0",
44
"description": "Scaleway React eslint shared config",
5+
"keywords": [
6+
"eslint",
7+
"eslintconfig"
8+
],
59
"main": "index.js",
610
"publishConfig": {
711
"access": "public"

packages/use-dataloader/src/DataLoaderProvider.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,14 @@ const DataLoaderProvider = ({ children }) => {
119119
const value = useMemo(
120120
() => ({
121121
addCachedData,
122-
clearCachedData,
123-
getCachedData,
124-
reload,
125-
getReloads,
126122
addReload,
127-
clearReload,
128123
clearAllCachedData,
129124
clearAllReloads,
125+
clearCachedData,
126+
clearReload,
127+
getCachedData,
128+
getReloads,
129+
reload,
130130
reloadAll,
131131
}),
132132
[

packages/use-dataloader/src/__tests__/useDataLoader.test.js

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import DataLoaderProvider, { useDataLoaderContext } from '../DataLoaderProvider'
44
import useDataLoader from '../useDataLoader'
55

66
const initialProps = {
7+
config: {
8+
enabled: true,
9+
keepPreviousData: true,
10+
},
711
key: 'test',
812
method: () =>
913
new Promise(resolve => {
1014
setTimeout(() => resolve(true), 500)
1115
}),
12-
config: {
13-
enabled: true,
14-
keepPreviousData: true,
15-
},
1616
}
1717
// eslint-disable-next-line react/prop-types
1818
const wrapper = ({ children }) => (
@@ -24,8 +24,8 @@ describe('useDataLoader', () => {
2424
const { result, waitForNextUpdate, rerender } = renderHook(
2525
props => useDataLoader(props.key, props.method),
2626
{
27-
wrapper,
2827
initialProps,
28+
wrapper,
2929
},
3030
)
3131
expect(result.current.data).toBe(undefined)
@@ -41,11 +41,11 @@ describe('useDataLoader', () => {
4141
const { result, waitForNextUpdate } = renderHook(
4242
props => useDataLoader(props.key, props.method),
4343
{
44-
wrapper,
4544
initialProps: {
4645
...initialProps,
4746
key: 2,
4847
},
48+
wrapper,
4949
},
5050
)
5151
expect(result.current.data).toBe(undefined)
@@ -60,13 +60,13 @@ describe('useDataLoader', () => {
6060
const { result, waitForNextUpdate } = renderHook(
6161
props => useDataLoader(props.key, props.method, props.config),
6262
{
63-
wrapper,
6463
initialProps: {
6564
...initialProps,
6665
config: {
6766
keepPreviousData: false,
6867
},
6968
},
69+
wrapper,
7070
},
7171
)
7272
expect(result.current.data).toBe(undefined)
@@ -81,12 +81,12 @@ describe('useDataLoader', () => {
8181
const { result, waitForNextUpdate } = renderHook(
8282
props => useDataLoader(props.key, props.method, props.config),
8383
{
84-
wrapper,
8584
initialProps: {
8685
...initialProps,
8786
method: () =>
8887
new Promise(resolve => setTimeout(() => resolve(null), 100)),
8988
},
89+
wrapper,
9090
},
9191
)
9292
expect(result.current.data).toBe(undefined)
@@ -101,8 +101,8 @@ describe('useDataLoader', () => {
101101
const { result, waitForNextUpdate } = renderHook(
102102
props => useDataLoader(props.key, props.method, props.config),
103103
{
104-
wrapper,
105104
initialProps,
105+
wrapper,
106106
},
107107
)
108108
expect(result.current.data).toBe(undefined)
@@ -130,10 +130,10 @@ describe('useDataLoader', () => {
130130
test('should render correctly with key update', async () => {
131131
const propsToPass = {
132132
...initialProps,
133-
key: 'test',
134133
config: {
135134
reloadOnKeyChange: true,
136135
},
136+
key: 'test',
137137
}
138138
const { result, waitForNextUpdate, rerender } = renderHook(
139139
() =>
@@ -162,16 +162,16 @@ describe('useDataLoader', () => {
162162

163163
test('should render correctly with pooling', async () => {
164164
const pollingProps = {
165+
config: {
166+
pollingInterval: 500,
167+
},
165168
key: 'test',
166169
method: jest.fn(
167170
() =>
168171
new Promise(resolve => {
169172
setTimeout(() => resolve(true), 250)
170173
}),
171174
),
172-
config: {
173-
pollingInterval: 500,
174-
},
175175
}
176176

177177
const method2 = jest.fn(
@@ -184,8 +184,8 @@ describe('useDataLoader', () => {
184184
const { result, waitForNextUpdate, rerender } = renderHook(
185185
props => useDataLoader(props.key, props.method, props.config),
186186
{
187-
wrapper,
188187
initialProps: pollingProps,
188+
wrapper,
189189
},
190190
)
191191
expect(result.current.data).toBe(undefined)
@@ -206,10 +206,10 @@ describe('useDataLoader', () => {
206206
expect(result.current.isLoading).toBe(false)
207207
rerender({
208208
...pollingProps,
209-
method: method2,
210209
config: {
211210
pollingInterval: 800,
212211
},
212+
method: method2,
213213
})
214214
act(() => {
215215
result.current.reload()
@@ -227,10 +227,10 @@ describe('useDataLoader', () => {
227227

228228
rerender({
229229
...pollingProps,
230-
method: method2,
231230
config: {
232231
pollingInterval: 500,
233232
},
233+
method: method2,
234234
})
235235
await waitForNextUpdate()
236236
expect(result.current.data).toBe(2)
@@ -249,13 +249,13 @@ describe('useDataLoader', () => {
249249
const { result, waitForNextUpdate } = renderHook(
250250
props => useDataLoader(props.key, props.method, props.config),
251251
{
252-
wrapper,
253252
initialProps: {
254253
...initialProps,
255254
config: {
256255
enabled: false,
257256
},
258257
},
258+
wrapper,
259259
},
260260
)
261261
expect(result.current.data).toBe(undefined)
@@ -279,13 +279,13 @@ describe('useDataLoader', () => {
279279
const { result, waitForNextUpdate } = renderHook(
280280
props => useDataLoader(props.key, props.method, props.config),
281281
{
282-
wrapper,
283282
initialProps: {
284283
...initialProps,
285284
config: {
286285
onSuccess,
287286
},
288287
},
288+
wrapper,
289289
},
290290
)
291291
expect(result.current.data).toBe(undefined)
@@ -303,20 +303,20 @@ describe('useDataLoader', () => {
303303
const { result, waitForNextUpdate } = renderHook(
304304
props => useDataLoader(props.key, props.method, props.config),
305305
{
306-
wrapper,
307306
initialProps: {
307+
config: {
308+
onError,
309+
onSuccess,
310+
},
308311
key: 'test',
309312
method: () =>
310313
new Promise((resolve, reject) => {
311314
setTimeout(() => {
312315
reject(error)
313316
}, 500)
314317
}),
315-
config: {
316-
onError,
317-
onSuccess,
318-
},
319318
},
319+
wrapper,
320320
},
321321
)
322322
expect(result.current.data).toBe(undefined)
@@ -340,8 +340,11 @@ describe('useDataLoader', () => {
340340
const { result, waitForNextUpdate } = renderHook(
341341
props => useDataLoader(props.key, props.method, props.config),
342342
{
343-
wrapper,
344343
initialProps: {
344+
config: {
345+
onError,
346+
onSuccess,
347+
},
345348
key: 'test',
346349
method: () =>
347350
new Promise((resolve, reject) => {
@@ -353,11 +356,8 @@ describe('useDataLoader', () => {
353356
}
354357
}, 500)
355358
}),
356-
config: {
357-
onError,
358-
onSuccess,
359-
},
360359
},
360+
wrapper,
361361
},
362362
)
363363
expect(result.current.data).toBe(undefined)
@@ -392,8 +392,8 @@ describe('useDataLoader', () => {
392392
}),
393393
],
394394
{
395-
wrapper,
396395
initialProps,
396+
wrapper,
397397
},
398398
)
399399

@@ -431,11 +431,11 @@ describe('useDataLoader', () => {
431431
useDataLoaderContext(),
432432
],
433433
{
434-
wrapper,
435434
initialProps: {
436435
...initialProps,
437436
method: mockedFn,
438437
},
438+
wrapper,
439439
},
440440
)
441441

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
export const StatusEnum = {
2-
LOADING: 'loading',
3-
SUCCESS: 'success',
42
ERROR: 'error',
53
IDLE: 'idle',
4+
LOADING: 'loading',
5+
SUCCESS: 'success',
66
}
77

88
export const ActionEnum = {
9-
RESET: 'RESET',
9+
ON_ERROR: 'ON_ERROR',
1010
ON_LOADING: 'ON_LOADING',
1111
ON_SUCCESS: 'ON_SUCCESS',
1212
ON_UPDATE_DATA: 'ON_UPDATE_DATA',
13-
ON_ERROR: 'ON_ERROR',
13+
RESET: 'RESET',
1414
}

packages/use-dataloader/src/reducer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ export default (state, action) => {
1818
}
1919
case ActionEnum.RESET:
2020
return {
21-
status: StatusEnum.IDLE,
2221
error: undefined,
22+
status: StatusEnum.IDLE,
2323
}
2424
case ActionEnum.ON_ERROR:
2525
return {

0 commit comments

Comments
 (0)