@@ -1,18 +1,16 @@
|
||||
export interface Events<T> {
|
||||
dequeue: Array<(payload: T, queueLength: number) => void>
|
||||
drain: Array<() => void>
|
||||
enqueue: Array<(payload: T, queueLength: number) => void>
|
||||
error: Array<(payload: T, error: unknown, handler: (param: HandlerContext<T>) => Promise<any>) => void>
|
||||
process: Array<(payload: T, handler: (param: HandlerContext<T>) => Promise<any>) => void>
|
||||
result: Array<<R>(payload: T, result: R, handler: (param: HandlerContext<T>) => Promise<any>) => void>
|
||||
}
|
||||
|
||||
export interface HandlerContext<T> {
|
||||
data: T
|
||||
emit: (eventName: string, ...params: any[]) => void
|
||||
}
|
||||
|
||||
export type UseQueueReturn<T> = ReturnType<typeof createQueue<T>>
|
||||
export interface Events<T> {
|
||||
enqueue: Array<(payload: T, queueLength: number) => void>
|
||||
dequeue: Array<(payload: T, queueLength: number) => void>
|
||||
process: Array<(payload: T, handler: (param: HandlerContext<T>) => Promise<any>) => void>
|
||||
error: Array<(payload: T, error: unknown, handler: (param: HandlerContext<T>) => Promise<any>) => void>
|
||||
result: Array<<R>(payload: T, result: R, handler: (param: HandlerContext<T>) => Promise<any>) => void>
|
||||
drain: Array<() => void>
|
||||
}
|
||||
|
||||
export function createQueue<T>(options: {
|
||||
handlers: Array<(ctx: HandlerContext<T>) => Promise<void>>
|
||||
@@ -21,12 +19,12 @@ export function createQueue<T>(options: {
|
||||
let drainTask: Promise<any> | undefined
|
||||
|
||||
const internalEventListeners: Events<T> = {
|
||||
dequeue: [],
|
||||
drain: [],
|
||||
enqueue: [],
|
||||
error: [],
|
||||
dequeue: [],
|
||||
process: [],
|
||||
error: [],
|
||||
result: [],
|
||||
drain: [],
|
||||
}
|
||||
const internalHandlerEventListeners: Record<string, Array<(...params: any[]) => void>> = {}
|
||||
|
||||
@@ -87,10 +85,12 @@ export function createQueue<T>(options: {
|
||||
}
|
||||
|
||||
return {
|
||||
clear,
|
||||
enqueue,
|
||||
clear,
|
||||
length,
|
||||
on,
|
||||
onHandlerEvent,
|
||||
}
|
||||
}
|
||||
|
||||
export type UseQueueReturn<T> = ReturnType<typeof createQueue<T>>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defineConfig } from 'tsdown'
|
||||
|
||||
export default defineConfig({
|
||||
dts: true,
|
||||
entry: ['src/index.ts'],
|
||||
dts: true,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user