Files
openclaw/src/plugin-sdk/delivery-queue-runtime.ts
2026-04-27 20:50:35 +01:00

28 lines
934 B
TypeScript

import {
drainPendingDeliveries as coreDrainPendingDeliveries,
type DeliverFn,
} from "../infra/outbound/delivery-queue.js";
type OutboundDeliverRuntimeModule = typeof import("../infra/outbound/deliver-runtime.js");
type DrainPendingDeliveriesOptions = Omit<
Parameters<typeof coreDrainPendingDeliveries>[0],
"deliver"
> & {
deliver?: DeliverFn;
};
let outboundDeliverRuntimePromise: Promise<OutboundDeliverRuntimeModule> | null = null;
async function loadOutboundDeliverRuntime(): Promise<OutboundDeliverRuntimeModule> {
outboundDeliverRuntimePromise ??= import("../infra/outbound/deliver-runtime.js");
return await outboundDeliverRuntimePromise;
}
export async function drainPendingDeliveries(opts: DrainPendingDeliveriesOptions): Promise<void> {
const deliver = opts.deliver ?? (await loadOutboundDeliverRuntime()).deliverOutboundPayloads;
await coreDrainPendingDeliveries({
...opts,
deliver,
});
}