Skip to content

Commit b681936

Browse files
committed
Changes the event types to not force the usage of the event types enum
1 parent eb2e10e commit b681936

File tree

11 files changed

+502
-128
lines changed

11 files changed

+502
-128
lines changed

dist/bundle.browser.js

Lines changed: 9 additions & 33 deletions
Large diffs are not rendered by default.

dist/bundle.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/bundle.server.js

Lines changed: 409 additions & 4 deletions
Large diffs are not rendered by default.

dist/processor.worklet.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/src/node/advanced-analyser-node.d.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,27 @@ export declare class AdvancedAnalyserNode extends AudioWorkletNode {
8585
getByteTimeDomainData(): Promise<Uint8Array>;
8686
private _pushEventListener;
8787
private _removeEventListener;
88-
addEventListener(type: EventListenerTypes.bytefrequencydata | EventListenerTypes.bytetimedomaindata, listener: Listener<Uint8Array>): void;
89-
addEventListener(type: EventListenerTypes.frequencydata | EventListenerTypes.timedomaindata, listener: Listener<Float32Array>): void;
88+
/**
89+
* Listens to Time-domain data events. The interval between calls is defined the `timeDomainSamplesCount` property.
90+
* Returns a Uint8Array with the size defined by `timeDomainSamplesCount`, with the current time-domain data.
91+
*/
92+
addEventListener(type: "bytetimedomaindata", listener: Listener<Uint8Array>): void;
93+
/**
94+
* Listens to Frequency data events. The interval between calls is defined by the `samplesBetweenTransforms` property.
95+
* The data is represented in bytes
96+
* Returns a Uint8Array with half the `fftSize`, with the current frequency data.
97+
*/
98+
addEventListener(type: "bytefrequencydata", listener: Listener<Uint8Array>): void;
99+
/**
100+
* Listens to Time-domain data events. The interval between calls is defined the `timeDomainSamplesCount` property.
101+
* Returns a Float32Array with the size defined by `timeDomainSamplesCount`, with the current time-domain data.
102+
*/
103+
addEventListener(type: "timedomaindata", listener: Listener<Float32Array>): void;
104+
/**
105+
* Listens to Frequency data events. The interval between calls is defined by the `samplesBetweenTransforms` property.
106+
* Returns a Float32Array with half the `fftSize`, with the current frequency data.
107+
*/
108+
addEventListener(type: "frequencydata", listener: Listener<Float32Array>): void;
90109
addEventListener(type: "processorerror", listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
91110
removeEventListener(type: "processorerror" | EventListenerTypes, listener: EventListenerOrEventListenerObject | Listener<ArrayBuffer>, options?: boolean | EventListenerOptions): void;
92111
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
import { AdvancedAnalyserNodeProperties } from '../types';
1+
import { AdvancedAnalyserNodeProperties } from "../types";
22
export declare const createAdvancedAnalyserNode: (context: BaseAudioContext, options?: AdvancedAnalyserNodeProperties) => Promise<import("./advanced-analyser-node").AdvancedAnalyserNode>;

dist/src/node/index.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from './create-advanced-analyser';
2-
export { type AdvancedAnalyserNode } from './advanced-analyser-node';
1+
export * from "./create-advanced-analyser";
2+
export { type AdvancedAnalyserNode } from "./advanced-analyser-node";

dist/src/types.d.ts

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -61,29 +61,7 @@ export declare enum ProcessorParameters {
6161
maxDecibels = "maxDecibels",
6262
smoothingTimeConstant = "smoothingTimeConstant"
6363
}
64-
export declare enum EventListenerTypes {
65-
/**
66-
* Listens to Frequency data events. The interval between calls is defined by the `samplesBetweenTransforms` property.
67-
* Returns a Float32Array with half the `fftSize`, with the current frequency data.
68-
*/
69-
frequencydata = "frequencydata",
70-
/**
71-
* Listens to Frequency data events. The interval between calls is defined by the `samplesBetweenTransforms` property.
72-
* The data is represented in bytes
73-
* Returns a Uint8Array with half the `fftSize`, with the current frequency data.
74-
*/
75-
bytefrequencydata = "bytefrequencydata",
76-
/**
77-
* Listens to Time-domain data events. The interval between calls is defined the `timeDomainSamplesCount` property.
78-
* Returns a Float32Array with the size defined by `timeDomainSamplesCount`, with the current time-domain data.
79-
*/
80-
timedomaindata = "timedomaindata",
81-
/**
82-
* Listens to Time-domain data events. The interval between calls is defined the `timeDomainSamplesCount` property.
83-
* Returns a Uint8Array with the size defined by `timeDomainSamplesCount`, with the current time-domain data.
84-
*/
85-
bytetimedomaindata = "bytetimedomaindata"
86-
}
64+
export declare type EventListenerTypes = "frequencydata" | "bytefrequencydata" | "timedomaindata" | "bytetimedomaindata";
8765
export declare enum WindowFunctionTypes {
8866
/**
8967
* Retangular window - Doesn't change the signal

src/node/advanced-analyser-node.ts

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,11 @@ export class AdvancedAnalyserNode extends AudioWorkletNode {
187187
}
188188

189189

190-
private _eventListenersCount:Record<EventListenerTypes, (EventListenerOrEventListenerObject| Listener<ArrayBuffer>)[]> = {
191-
[EventListenerTypes.frequencydata]: [],
192-
[EventListenerTypes.bytefrequencydata]: [],
193-
[EventListenerTypes.timedomaindata]: [],
194-
[EventListenerTypes.bytetimedomaindata]: [],
190+
private _eventListenersCount:Record<EventListenerTypes, (EventListenerOrEventListenerObject|Listener<ArrayBuffer>)[]> = {
191+
frequencydata: [],
192+
bytefrequencydata: [],
193+
timedomaindata: [],
194+
bytetimedomaindata: []
195195
};
196196

197197

@@ -257,19 +257,19 @@ export class AdvancedAnalyserNode extends AudioWorkletNode {
257257
private _onmessage(event: Message) {
258258
switch(event.type) {
259259
case MessageTypes.frequencyDataAvailable: {
260-
this.dispatchEvent(new CustomEvent<Float32Array>(EventListenerTypes.frequencydata, { detail: new Float32Array(event.payload) }));
260+
this.dispatchEvent(new CustomEvent<Float32Array>('frequencydata', { detail: new Float32Array(event.payload) }));
261261
break;
262262
}
263263
case MessageTypes.byteFrequencyDataAvailable: {
264-
this.dispatchEvent(new CustomEvent<Uint8Array>(EventListenerTypes.bytefrequencydata, { detail: new Uint8Array(event.payload) }));
264+
this.dispatchEvent(new CustomEvent<Uint8Array>('bytefrequencydata', { detail: new Uint8Array(event.payload) }));
265265
break;
266266
}
267267
case MessageTypes.timeDomainDataAvailable: {
268-
this.dispatchEvent(new CustomEvent<Float32Array>(EventListenerTypes.timedomaindata, { detail: new Float32Array(event.payload) }));
268+
this.dispatchEvent(new CustomEvent<Float32Array>('timedomaindata', { detail: new Float32Array(event.payload) }));
269269
break;
270270
}
271271
case MessageTypes.byteTimeDomainDataAvailable: {
272-
this.dispatchEvent(new CustomEvent<Uint8Array>(EventListenerTypes.bytetimedomaindata, { detail: new Uint8Array(event.payload) }));
272+
this.dispatchEvent(new CustomEvent<Uint8Array>('bytetimedomaindata', { detail: new Uint8Array(event.payload) }));
273273
break;
274274
}
275275
case MessageTypes.requestedFloatFrequencyDataAvailable:
@@ -350,11 +350,31 @@ export class AdvancedAnalyserNode extends AudioWorkletNode {
350350
});
351351
}
352352
}
353+
354+
/**
355+
* Listens to Time-domain data events. The interval between calls is defined the `timeDomainSamplesCount` property.
356+
* Returns a Uint8Array with the size defined by `timeDomainSamplesCount`, with the current time-domain data.
357+
*/
358+
addEventListener(type: 'bytetimedomaindata' , listener: Listener<Uint8Array>): void;
353359

354-
addEventListener(type: EventListenerTypes.bytefrequencydata | EventListenerTypes.bytetimedomaindata, listener: Listener<Uint8Array>): void;
360+
/**
361+
* Listens to Frequency data events. The interval between calls is defined by the `samplesBetweenTransforms` property.
362+
* The data is represented in bytes
363+
* Returns a Uint8Array with half the `fftSize`, with the current frequency data.
364+
*/
365+
addEventListener(type: 'bytefrequencydata' , listener: Listener<Uint8Array>): void;
355366

356-
addEventListener(type: EventListenerTypes.frequencydata | EventListenerTypes.timedomaindata, listener: Listener<Float32Array>): void;
367+
/**
368+
* Listens to Time-domain data events. The interval between calls is defined the `timeDomainSamplesCount` property.
369+
* Returns a Float32Array with the size defined by `timeDomainSamplesCount`, with the current time-domain data.
370+
*/
371+
addEventListener(type: 'timedomaindata', listener: Listener<Float32Array>): void;
357372

373+
/**
374+
* Listens to Frequency data events. The interval between calls is defined by the `samplesBetweenTransforms` property.
375+
* Returns a Float32Array with half the `fftSize`, with the current frequency data.
376+
*/
377+
addEventListener(type: 'frequencydata', listener: Listener<Float32Array>): void;
358378

359379
addEventListener(type: "processorerror", listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void ;
360380

src/node/index.test.ts

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable @typescript-eslint/ban-ts-comment */
22

33
import { noop } from "lodash";
4-
import { EventListenerTypes, MessageTypes, WindowFunctionTypes } from "../types";
4+
import { MessageTypes, WindowFunctionTypes } from "../types";
55
import { MAX_FFT_SIZE, MIN_FFT_SIZE, PROCESSOR_NAME } from "../constants";
66

77
jest.mock('processor', () => ({
@@ -525,18 +525,18 @@ describe('AdvancedAnalyserNode', () => {
525525
});
526526

527527
describe('Events', () => {
528-
describe(EventListenerTypes.frequencydata, () => {
528+
describe('frequencydata', () => {
529529
it(`register event`, () => {
530530
const node = new AdvancedAnalyserNode(context, {
531531
fftSize: 1024,
532532
});
533533

534534

535-
node.addEventListener(EventListenerTypes.frequencydata, ({ detail }:CustomEvent<Float32Array>) => {
535+
node.addEventListener('frequencydata', ({ detail }) => {
536536
console.log(detail);
537537
});
538538

539-
expect(addEventListenerSpy.mock.calls[0][0]).toEqual(EventListenerTypes.frequencydata);
539+
expect(addEventListenerSpy.mock.calls[0][0]).toEqual('frequencydata');
540540

541541
});
542542

@@ -545,7 +545,7 @@ describe('AdvancedAnalyserNode', () => {
545545
fftSize: 1024,
546546
});
547547

548-
node.addEventListener(EventListenerTypes.frequencydata, ({ detail }:CustomEvent<Float32Array>) => {
548+
node.addEventListener('frequencydata', ({ detail }:CustomEvent<Float32Array>) => {
549549
console.log(detail);
550550
});
551551
const payload = Float32Array.from([0, 1, 2, 3]);
@@ -567,23 +567,23 @@ describe('AdvancedAnalyserNode', () => {
567567
const listener = ({ detail }:CustomEvent<Float32Array>) => {
568568
console.log(detail);
569569
};
570-
node.removeEventListener(EventListenerTypes.frequencydata, listener);
571-
expect(removeEventListenerSpy).toHaveBeenLastCalledWith(EventListenerTypes.frequencydata, listener, undefined);
570+
node.removeEventListener('frequencydata', listener);
571+
expect(removeEventListenerSpy).toHaveBeenLastCalledWith('frequencydata', listener, undefined);
572572
});
573573
});
574574

575575

576-
describe(EventListenerTypes.bytefrequencydata, () => {
576+
describe('bytefrequencydata', () => {
577577
it('register event', () => {
578578
const node = new AdvancedAnalyserNode(context, {
579579
fftSize: 1024,
580580
});
581581

582-
node.addEventListener(EventListenerTypes.bytefrequencydata, ({ detail }:CustomEvent<Uint8Array>) => {
582+
node.addEventListener('bytefrequencydata', ({ detail }:CustomEvent<Uint8Array>) => {
583583
console.log(detail);
584584
});
585585

586-
expect(addEventListenerSpy.mock.calls[0][0]).toEqual(EventListenerTypes.bytefrequencydata);
586+
expect(addEventListenerSpy.mock.calls[0][0]).toEqual('bytefrequencydata');
587587

588588
});
589589

@@ -592,7 +592,7 @@ describe('AdvancedAnalyserNode', () => {
592592
fftSize: 1024,
593593
});
594594

595-
node.addEventListener(EventListenerTypes.bytefrequencydata, ({ detail }:CustomEvent<Uint8Array>) => {
595+
node.addEventListener('bytefrequencydata', ({ detail }:CustomEvent<Uint8Array>) => {
596596
console.log(detail);
597597
});
598598
const payload = Uint8Array.from([0, 1, 2, 3]);
@@ -615,21 +615,21 @@ describe('AdvancedAnalyserNode', () => {
615615
const listener = ({ detail }:CustomEvent<Uint8Array>) => {
616616
console.log(detail);
617617
};
618-
node.removeEventListener(EventListenerTypes.bytefrequencydata, listener);
619-
expect(removeEventListenerSpy).toHaveBeenLastCalledWith(EventListenerTypes.bytefrequencydata, listener, undefined);
618+
node.removeEventListener('bytefrequencydata', listener);
619+
expect(removeEventListenerSpy).toHaveBeenLastCalledWith('bytefrequencydata', listener, undefined);
620620
});
621621
});
622-
describe(EventListenerTypes.timedomaindata, () => {
622+
describe('timedomaindata', () => {
623623
it(`register event`, () => {
624624
const node = new AdvancedAnalyserNode(context, {
625625
fftSize: 1024,
626626
});
627627

628-
node.addEventListener(EventListenerTypes.timedomaindata, ({ detail }:CustomEvent<Float32Array>) => {
628+
node.addEventListener('timedomaindata', ({ detail }:CustomEvent<Float32Array>) => {
629629
console.log(detail);
630630
});
631631

632-
expect(addEventListenerSpy.mock.calls[0][0]).toEqual(EventListenerTypes.timedomaindata);
632+
expect(addEventListenerSpy.mock.calls[0][0]).toEqual('timedomaindata');
633633

634634
});
635635

@@ -638,7 +638,7 @@ describe('AdvancedAnalyserNode', () => {
638638
fftSize: 1024,
639639
});
640640

641-
node.addEventListener(EventListenerTypes.timedomaindata, ({ detail }:CustomEvent<Float32Array>) => {
641+
node.addEventListener('timedomaindata', ({ detail }:CustomEvent<Float32Array>) => {
642642
console.log(detail);
643643
});
644644

@@ -661,24 +661,24 @@ describe('AdvancedAnalyserNode', () => {
661661
const listener = ({ detail }:CustomEvent<Float32Array>) => {
662662
console.log(detail);
663663
};
664-
node.removeEventListener(EventListenerTypes.timedomaindata, listener);
665-
expect(removeEventListenerSpy).toHaveBeenLastCalledWith(EventListenerTypes.timedomaindata, listener, undefined);
664+
node.removeEventListener('timedomaindata', listener);
665+
expect(removeEventListenerSpy).toHaveBeenLastCalledWith('timedomaindata', listener, undefined);
666666
});
667667
});
668668

669669

670-
describe(EventListenerTypes.bytetimedomaindata, () => {
670+
describe('bytetimedomaindata', () => {
671671
it('register event', () => {
672672
const node = new AdvancedAnalyserNode(context, {
673673
fftSize: 1024,
674674
});
675675

676676
addEventListenerSpy.mockClear();
677-
node.addEventListener(EventListenerTypes.bytetimedomaindata, ({ detail }) => {
677+
node.addEventListener('bytetimedomaindata', ({ detail }) => {
678678
console.log(detail);
679679
});
680680

681-
expect(addEventListenerSpy.mock.calls[0][0]).toEqual(EventListenerTypes.bytetimedomaindata);
681+
expect(addEventListenerSpy.mock.calls[0][0]).toEqual('bytetimedomaindata');
682682

683683
});
684684

@@ -688,7 +688,7 @@ describe('AdvancedAnalyserNode', () => {
688688
});
689689
dispatchEventSpy.mockClear();
690690
addEventListenerSpy.mockClear();
691-
node.addEventListener(EventListenerTypes.bytetimedomaindata, ({ detail }) => {
691+
node.addEventListener('bytetimedomaindata', ({ detail }) => {
692692
console.log(detail);
693693
});
694694
const payload = Uint8Array.from([0, 1, 2, 3]);
@@ -710,8 +710,8 @@ describe('AdvancedAnalyserNode', () => {
710710
const listener = ({ detail }:CustomEvent<Uint8Array>) => {
711711
console.log(detail);
712712
};
713-
node.removeEventListener(EventListenerTypes.bytetimedomaindata, listener);
714-
expect(removeEventListenerSpy).toHaveBeenLastCalledWith(EventListenerTypes.bytetimedomaindata, listener, undefined);
713+
node.removeEventListener('bytetimedomaindata', listener);
714+
expect(removeEventListenerSpy).toHaveBeenLastCalledWith('bytetimedomaindata', listener, undefined);
715715
});
716716
});
717717
});

0 commit comments

Comments
 (0)