File tree Expand file tree Collapse file tree 4 files changed +22
-2
lines changed Expand file tree Collapse file tree 4 files changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ import { ReferenceIdPlugin } from "../plugins/default/ReferenceIdPlugin.js";
99import { EventPluginContext } from "../plugins/EventPluginContext.js" ;
1010import { IEventPlugin } from "../plugins/IEventPlugin.js" ;
1111import { DefaultEventQueue } from "../queue/DefaultEventQueue.js" ;
12+ import { IEventQueue } from "../queue/IEventQueue.js" ;
1213import { ISubmissionClient } from "../submission/ISubmissionClient.js" ;
1314import { DefaultSubmissionClient } from "../submission/DefaultSubmissionClient.js" ;
1415import { guid } from "../Utils.js" ;
@@ -545,5 +546,5 @@ interface IConfigurationServices {
545546 log : ILog ;
546547 submissionClient : ISubmissionClient ;
547548 storage : IStorage ;
548- queue : DefaultEventQueue ;
549+ queue : IEventQueue ;
549550}
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ export { EventPluginManager } from "./plugins/EventPluginManager.js";
3939export type { IEventPlugin } from "./plugins/IEventPlugin.js" ;
4040
4141export { DefaultEventQueue } from "./queue/DefaultEventQueue.js" ;
42+ export type { IEventQueue } from "./queue/IEventQueue.js" ;
4243
4344export { InMemoryStorage } from "./storage/InMemoryStorage.js" ;
4445export { LocalStorage } from "./storage/LocalStorage.js" ;
Original file line number Diff line number Diff line change 11import { Configuration } from "../configuration/Configuration.js" ;
22import { ILog } from "../logging/ILog.js" ;
33import { Event } from "../models/Event.js" ;
4+ import { IEventQueue } from "../queue/IEventQueue.js" ;
45import { Response } from "../submission/Response.js" ;
56
67interface EventQueueItem {
78 file : string ,
89 event : Event
910}
1011
11- export class DefaultEventQueue {
12+ export class DefaultEventQueue implements IEventQueue {
1213 /**
1314 * A list of handlers that will be fired when events are submitted.
1415 * @type {Array }
Original file line number Diff line number Diff line change 1+ import { Event } from "../models/Event.js" ;
2+ import { Response } from "../submission/Response.js" ;
3+
4+ export interface IEventQueue {
5+ /** Enqueue an event */
6+ enqueue ( event : Event ) : Promise < void > ;
7+ /** Processes all events in the queue */
8+ process ( ) : Promise < void > ;
9+ /** Starts queue timers */
10+ startup ( ) : Promise < void > ;
11+ /** Suspends queue timers */
12+ suspend ( ) : Promise < void > ;
13+ /** Suspends processing of events for a specific duration */
14+ suspendProcessing ( durationInMinutes ?: number , discardFutureQueuedItems ?: boolean , clearQueue ?: boolean ) : Promise < void > ;
15+ // TODO: See if this makes sense.
16+ onEventsPosted ( handler : ( events : Event [ ] , response : Response ) => Promise < void > ) : void ;
17+ }
You can’t perform that action at this time.
0 commit comments