alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
20 lines (15 loc) • 573 B
text/typescript
import { $logger } from "alepha/logger";
import type { QueueProvider } from "./QueueProvider.ts";
export class MemoryQueueProvider implements QueueProvider {
protected readonly log = $logger();
protected queueList: Record<string, string[]> = {};
public async push(queue: string, ...messages: string[]): Promise<void> {
if (this.queueList[queue] == null) {
this.queueList[queue] = [];
}
this.queueList[queue].push(...messages);
}
public async pop(queue: string): Promise<string | undefined> {
return this.queueList[queue]?.shift();
}
}