From ae33c49618a6aa2a88445bfda0121e788aa7dc13 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Fri, 17 Dec 2021 16:47:37 +0100 Subject: [PATCH] feat(utils): kill unused promise buffer api --- packages/utils/src/promisebuffer.ts | 16 +++++----------- packages/utils/test/promisebuffer.test.ts | 22 +++++++++++----------- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/packages/utils/src/promisebuffer.ts b/packages/utils/src/promisebuffer.ts index 5aee7b449135..9421192cb924 100644 --- a/packages/utils/src/promisebuffer.ts +++ b/packages/utils/src/promisebuffer.ts @@ -23,9 +23,10 @@ function allPromises(collection: Array>): Promis } export interface PromiseBuffer { - length(): number; + // exposes the internal array so tests can assert on the state of it. + // XXX: this really should not be public api. + $: Array>; add(taskProducer: () => PromiseLike): PromiseLike; - remove(task: PromiseLike): PromiseLike; drain(timeout?: number): PromiseLike; } @@ -36,10 +37,6 @@ export interface PromiseBuffer { export function makePromiseBuffer(limit?: number): PromiseBuffer { const buffer: Array> = []; - function length(): number { - return buffer.length; - } - function isReady(): boolean { return limit === undefined || buffer.length < limit; } @@ -113,12 +110,9 @@ export function makePromiseBuffer(limit?: number): PromiseBuffer { }); } - const promiseBuffer: PromiseBuffer = { - length, + return { + $: buffer, add, - remove, drain, }; - - return promiseBuffer; } diff --git a/packages/utils/test/promisebuffer.test.ts b/packages/utils/test/promisebuffer.test.ts index 7e9930ecc55b..1dc2e1f993e8 100644 --- a/packages/utils/test/promisebuffer.test.ts +++ b/packages/utils/test/promisebuffer.test.ts @@ -7,7 +7,7 @@ describe('PromiseBuffer', () => { const buffer = makePromiseBuffer(); const p = jest.fn(() => new SyncPromise(resolve => setTimeout(resolve))); void buffer.add(p); - expect(buffer.length()).toEqual(1); + expect(buffer.$.length).toEqual(1); }); test('with limit', () => { @@ -20,7 +20,7 @@ describe('PromiseBuffer', () => { const producer2 = jest.fn(() => new SyncPromise(resolve => setTimeout(resolve))); expect(buffer.add(producer1)).toEqual(task1); void expect(buffer.add(producer2)).rejects.toThrowError(); - expect(buffer.length()).toEqual(1); + expect(buffer.$.length).toEqual(1); expect(producer1).toHaveBeenCalled(); expect(producer2).not.toHaveBeenCalled(); }); @@ -32,10 +32,10 @@ describe('PromiseBuffer', () => { for (let i = 0; i < 5; i++) { void buffer.add(() => new SyncPromise(resolve => setTimeout(resolve))); } - expect(buffer.length()).toEqual(5); + expect(buffer.$.length).toEqual(5); const result = await buffer.drain(); expect(result).toEqual(true); - expect(buffer.length()).toEqual(0); + expect(buffer.$.length).toEqual(0); }); test('with timeout', async () => { @@ -43,17 +43,17 @@ describe('PromiseBuffer', () => { for (let i = 0; i < 5; i++) { void buffer.add(() => new SyncPromise(resolve => setTimeout(resolve, 100))); } - expect(buffer.length()).toEqual(5); + expect(buffer.$.length).toEqual(5); const result = await buffer.drain(50); expect(result).toEqual(false); }); test('on empty buffer', async () => { const buffer = makePromiseBuffer(); - expect(buffer.length()).toEqual(0); + expect(buffer.$.length).toEqual(0); const result = await buffer.drain(); expect(result).toEqual(true); - expect(buffer.length()).toEqual(0); + expect(buffer.$.length).toEqual(0); }); }); @@ -61,22 +61,22 @@ describe('PromiseBuffer', () => { const buffer = makePromiseBuffer(); const producer = () => new SyncPromise(resolve => setTimeout(resolve)); const task = buffer.add(producer); - expect(buffer.length()).toEqual(1); + expect(buffer.$.length).toEqual(1); await task; - expect(buffer.length()).toEqual(0); + expect(buffer.$.length).toEqual(0); }); test('rejected promises should not show up in buffer length', async () => { const buffer = makePromiseBuffer(); const producer = () => new SyncPromise((_, reject) => setTimeout(reject)); const task = buffer.add(producer); - expect(buffer.length()).toEqual(1); + expect(buffer.$.length).toEqual(1); try { await task; } catch (_) { // no-empty } - expect(buffer.length()).toEqual(0); + expect(buffer.$.length).toEqual(0); }); test('resolved task should give an access to the return value', async () => {