Initial commit

rasch
Sep 10, 2023, 12:08 AM
DIV5AAKFVEPSIPP6EMB6IQZBIRTTZM77SFJJCEDYQGGFG4XQEPYAC

Dependencies

Change contents

  • file addition: index.ts (----------)
    [2.1]
    interface Callback {
    (...data: any): void
    }
    const subscribers = new Map()
    export const subscribe = (event: string, callback: Callback): void => {
    if (subscribers.has(event)) {
    subscribers.get(event).set(callback, callback)
    } else {
    subscribers.set(event, new Map().set(callback, callback))
    }
    }
    export const publish = (event: string, ...data: any): void => {
    subscribers.get(event)?.forEach((cb: Callback) => cb(...data))
    }
    export const unsubscribe = (event: string, callback: Callback): void => {
    subscribers.get(event)?.delete(callback)
    }
    export const unsubscribeEvent = (event: string): void => {
    subscribers.delete(event)
    }
    export const unsubscribeAll = (): void => {
    subscribers.clear()
    }