@fedify/fedify
Version:
An ActivityPub server framework
48 lines (46 loc) • 2.04 kB
TypeScript
import { Temporal } from "@js-temporal/polyfill";
import { URLPattern } from "urlpattern-polyfill";
import { KvKey, KvStore, KvStoreSetOptions } from "../kv-DRaeSXco.js";
import { MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions } from "../mq-DYKDDJmp.js";
import { KVNamespace, Queue } from "@cloudflare/workers-types/experimental";
//#region x/cfworkers.d.ts
/**
* Implementation of the {@link KvStore} interface for Cloudflare Workers KV
* binding. This class provides a wrapper around Cloudflare's KV namespace to
* store and retrieve JSON-serializable values using structured keys.
* @since 1.6.0
*/
declare class WorkersKvStore implements KvStore {
#private;
constructor(namespace: KVNamespace<string>);
get<T = unknown>(key: KvKey): Promise<T | undefined>;
set(key: KvKey, value: unknown, options?: KvStoreSetOptions): Promise<void>;
delete(key: KvKey): Promise<void>;
}
/**
* Implementation of the {@link MessageQueue} interface for Cloudflare
* Workers Queues binding. This class provides a wrapper around Cloudflare's
* Queues to send messages to a queue.
*
* Note that this implementation does not support the `listen()` method,
* as Cloudflare Workers Queues do not support message consumption in the same
* way as other message queue systems. Instead, you should use
* the {@link Federation.processQueuedTask} method to process messages
* passed to the queue.
* @since 1.6.0
*/
declare class WorkersMessageQueue implements MessageQueue {
#private;
/**
* Cloudflare Queues provide automatic retry with exponential backoff
* and Dead Letter Queues.
* @since 1.7.0
*/
readonly nativeRetrial = true;
constructor(queue: Queue);
enqueue(message: any, options?: MessageQueueEnqueueOptions): Promise<void>;
enqueueMany(messages: any[], options?: MessageQueueEnqueueOptions): Promise<void>;
listen(_handler: (message: any) => Promise<void> | void, _options?: MessageQueueListenOptions): Promise<void>;
}
//#endregion
export { WorkersKvStore, WorkersMessageQueue };