diff --git a/src/pipeline.ts b/src/pipeline.ts index db43915a..a1222767 100644 --- a/src/pipeline.ts +++ b/src/pipeline.ts @@ -49,7 +49,7 @@ async function handleEvent(event: DittoEvent, signal: AbortSignal): Promise { +async function policyFilter(event: NostrEvent, signal: AbortSignal): Promise { const console = new Stickynotes('ditto:policy'); try { - const result = await policyWorker.call(event); + const result = await policyWorker.call(event, signal); policyEventsCounter.inc({ ok: String(result[2]) }); console.log(JSON.stringify(result)); RelayError.assert(result); diff --git a/src/workers/policy.ts b/src/workers/policy.ts index 7bf3f7bf..65a6e79a 100644 --- a/src/workers/policy.ts +++ b/src/workers/policy.ts @@ -4,6 +4,8 @@ import * as Comlink from 'comlink'; import { Conf } from '@/config.ts'; import type { CustomPolicy } from '@/workers/policy.worker.ts'; +import '@/workers/handlers/abortsignal.ts'; + const console = new Stickynotes('ditto:policy'); export const policyWorker = Comlink.wrap( diff --git a/src/workers/policy.worker.ts b/src/workers/policy.worker.ts index c7a16e30..0c115821 100644 --- a/src/workers/policy.worker.ts +++ b/src/workers/policy.worker.ts @@ -6,6 +6,8 @@ import * as Comlink from 'comlink'; import { DittoDB } from '@/db/DittoDB.ts'; import { EventsDB } from '@/storages/EventsDB.ts'; +import '@/workers/handlers/abortsignal.ts'; + // @ts-ignore Don't try to access the env from this worker. Deno.env = new Map(); @@ -25,8 +27,8 @@ export class CustomPolicy implements NPolicy { private policy: NPolicy = new ReadOnlyPolicy(); // deno-lint-ignore require-await - async call(event: NostrEvent): Promise { - return this.policy.call(event); + async call(event: NostrEvent, signal?: AbortSignal): Promise { + return this.policy.call(event, signal); } async init({ path, cwd, databaseUrl, adminPubkey }: PolicyInit): Promise {