mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-18 16:45:11 +00:00
666e8426e1
Co-authored-by: Nicolas Dorseuil <nicolas@gitbook.io>
22 lines
833 B
TypeScript
22 lines
833 B
TypeScript
import { trace } from '@/lib/tracing';
|
|
import type { Queue } from '@opennextjs/aws/types/overrides.js';
|
|
import { getCloudflareContext } from '@opennextjs/cloudflare';
|
|
import doQueue from '@opennextjs/cloudflare/overrides/queue/do-queue';
|
|
import memoryQueue from '@opennextjs/cloudflare/overrides/queue/memory-queue';
|
|
|
|
interface Env {
|
|
STAGE?: string;
|
|
}
|
|
|
|
export default {
|
|
name: 'GitbookISRQueue',
|
|
send: async (msg) => {
|
|
return trace({ operation: 'gitbookISRQueueSend', name: msg.MessageBody.url }, async () => {
|
|
const { ctx, env } = getCloudflareContext();
|
|
const hasDurableObject =
|
|
(env as Env).STAGE !== 'dev' && (env as Env).STAGE !== 'preview';
|
|
ctx.waitUntil(hasDurableObject ? memoryQueue.send(msg) : doQueue.send(msg));
|
|
});
|
|
},
|
|
} satisfies Queue;
|