Should note this in the docs for this package but not going to ship it this way right now.
import { prefix, render, route } from 'rwsdk/router';
import { defineApp } from 'rwsdk/worker';
import apiRoutes from '@/api/_routes';
import DefaultDocument from '@/documents/default';
import headersMiddleware from '@/middleware/headers';
import loggerMiddleware from '@/middleware/logger';
import sessionMiddleware from '@/middleware/session';
import Pages__root from '@/pages/home';
import tapRegistrations from './tap/registrations';
export { BrowserSessionDurableObject } from 'rwsdk-atp/browser-sessions';
export { OAuthTokenDurableObject } from 'rwsdk-atp/oauth';
const app = defineApp([
headersMiddleware,
loggerMiddleware,
sessionMiddleware,
prefix('/api', apiRoutes),
render(DefaultDocument, [route('/', Pages__root)]),
]);
export default {
fetch: app.fetch,
async queue(batch: MessageBatch<unknown>): Promise<void> {
if (batch.queue === 'queue-tap-webhook-local') {
await tapRegistrations.workerQueueHelper(batch);
}
},
} satisfies ExportedHandler<Env>;
Leaving this open so I make sure to document using this for a worker with a single queue and multiple queues but the same
workerQueueHelperworks for both situations.