diff --git a/src/utils/event.ts b/src/utils/event.ts deleted file mode 100644 index d458ef1..0000000 --- a/src/utils/event.ts +++ /dev/null @@ -1,52 +0,0 @@ -export class Event { - constructor( - public readonly type: string, - public readonly payload: Record = {} - ) {} - - public toString(): string { - return `Event(type: ${this.type}, payload: ${JSON.stringify( - this.payload - )})`; - } -} - -export type Constructor = new (...args: any[]) => any; - -export let EventEmitter = (Base: T) => - class extends Base { - private listeners: Record void)[]> = {}; - - public on(eventType: string, listener: (event: Event) => void): void { - if (!this.listeners[eventType]) { - this.listeners[eventType] = []; - } - this.listeners[eventType].push(listener); - } - - public off(eventType: string, listener: (event: Event) => void): void { - if (!this.listeners[eventType]) return; - - this.listeners[eventType] = this.listeners[eventType].filter( - (l) => l !== listener - ); - } - - public once(eventType: string, listener: (event: Event) => void): void { - const onceListener = (event: Event) => { - listener(event); - this.off(eventType, onceListener); - }; - - this.on(eventType, onceListener); - } - - public emit(event: Event): void { - const listeners = this.listeners[event.type]; - if (listeners) { - for (const listener of listeners) { - listener(event); - } - } - } - }; diff --git a/src/utils/flatten.ts b/src/utils/flatten.ts deleted file mode 100644 index 076be7e..0000000 --- a/src/utils/flatten.ts +++ /dev/null @@ -1,21 +0,0 @@ -export function flatten( - obj: Record, - prefix = "" -): Record { - return Object.keys(obj).reduce((acc, key) => { - const value = obj[key]; - const newKey = prefix ? `${prefix}.${key}` : key; - - if ( - typeof value === "object" && - value !== null && - !Array.isArray(value) - ) { - Object.assign(acc, flatten(value, newKey)); - } else { - acc[newKey] = value; - } - - return acc; - }, {} as Record); -}