From e8b4b30c77709afb3d772a761ef3383197e9d928 Mon Sep 17 00:00:00 2001 From: hosseind88 Date: Mon, 11 Jan 2021 23:55:35 +0330 Subject: [PATCH] Arbitrary number of emit() arguments using rest/spread --- src/index.ts | 6 +++--- test/index_test.ts | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index ae85607..082e990 100644 --- a/src/index.ts +++ b/src/index.ts @@ -77,9 +77,9 @@ export default function mitt(all?: EventHandlerMap): Emitter { * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler * @memberOf mitt */ - emit(type: EventType, evt: T) { - ((all.get(type) || []) as EventHandlerList).slice().map((handler) => { handler(evt); }); - ((all.get('*') || []) as WildCardEventHandlerList).slice().map((handler) => { handler(type, evt); }); + emit(type: EventType, ...evt: T[]) { + ((all.get(type) || []) as EventHandlerList).slice().map((handler) => { handler(...evt); }); + ((all.get('*') || []) as WildCardEventHandlerList).slice().map((handler) => { handler(type, ...evt); }); } }; } diff --git a/test/index_test.ts b/test/index_test.ts index 5c25b55..78a0d98 100644 --- a/test/index_test.ts +++ b/test/index_test.ts @@ -186,5 +186,13 @@ describe('mitt#', () => { inst.emit('bar', eb); expect(star).to.have.been.calledOnce.and.calledWith('bar', eb); }); + + it('spreaded arguments', () => { + const Func = spy(); + events.set('Func', [Func]); + + inst.emit('Func', ...[1,2,3]); + expect(Func).to.have.been.called.and.calledWith(1,2,3); + }); }); });