Skip to content

Commit 8a53696

Browse files
authored
fix(use-dataloader): ignore some eslint v8 errors (#513)
1 parent 64aa3fd commit 8a53696

File tree

5 files changed

+12
-4
lines changed

5 files changed

+12
-4
lines changed

packages/use-dataloader/src/DataLoaderProvider.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,8 @@ const DataLoaderProvider = ({
186186
setTimeout(() => {
187187
Object.keys(requestsRef.current).forEach(key => {
188188
if (requestsRef.current[key].getObserversCount() === 0) {
189+
// Worst case there is a memleak
190+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
189191
requestsRef.current[key].destroy()
190192
delete requestsRef.current[key]
191193
}

packages/use-dataloader/src/__tests__/DataLoaderProvider.test.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ describe('DataLoaderProvider', () => {
5252
expect(testRequest).toBeDefined()
5353
expect(testRequest?.status).toBe(StatusEnum.IDLE)
5454
act(() => {
55+
// launch should never throw
56+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
5557
testRequest?.launch()
5658
})
5759
expect(method).toBeCalledTimes(1)
@@ -88,6 +90,8 @@ describe('DataLoaderProvider', () => {
8890
expect(testRequest).toBeDefined()
8991
expect(testRequest?.status).toBe(StatusEnum.IDLE)
9092
act(() => {
93+
// launch should never throw
94+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
9195
testRequest?.launch()
9296
})
9397
expect(method).toBeCalledTimes(1)

packages/use-dataloader/src/__tests__/dataloader.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ describe('Dataloader class', () => {
3333
expect(method).toBeCalledTimes(0)
3434
await instance.load()
3535
expect(method).toBeCalledTimes(1)
36-
instance.destroy()
36+
await instance.destroy()
3737
instance.clearData()
3838
})
3939

@@ -207,7 +207,7 @@ describe('Dataloader class', () => {
207207
await new Promise(resolve => { setTimeout(resolve) })
208208
expect(method).toBeCalledTimes(6)
209209
instance.setPollingInterval(PROMISE_TIMEOUT * 4)
210-
instance.destroy()
210+
await instance.destroy()
211211
})
212212

213213
test('should update outdated data', async () => {

packages/use-dataloader/src/dataloader.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,8 @@ class DataLoader<T = unknown> {
216216
this.notifyChanges()
217217
}
218218

219-
public destroy(): void {
220-
this.cancel?.()
219+
public async destroy(): Promise<void> {
220+
await this.cancel?.()
221221
if (this.timeout) {
222222
clearTimeout(this.timeout)
223223
}

packages/use-dataloader/src/useDataLoader.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ const useDataLoader = <T>(
106106

107107
useEffect(() => {
108108
if (enabled && isIdle) {
109+
// launch should never throw
110+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
109111
request.launch?.()
110112
}
111113
}, [request, enabled, isIdle])

0 commit comments

Comments
 (0)