mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
Merge branch 'policy-signal' into 'main'
Pass signal into policy See merge request soapbox-pub/ditto!514
This commit is contained in:
commit
f8fcb9ac77
3 changed files with 9 additions and 5 deletions
|
|
@ -49,7 +49,7 @@ async function handleEvent(event: DittoEvent, signal: AbortSignal): Promise<void
|
|||
}
|
||||
|
||||
if (event.kind !== 24133 && event.pubkey !== Conf.pubkey) {
|
||||
await policyFilter(event);
|
||||
await policyFilter(event, signal);
|
||||
}
|
||||
|
||||
await hydrateEvent(event, signal);
|
||||
|
|
@ -75,11 +75,11 @@ async function handleEvent(event: DittoEvent, signal: AbortSignal): Promise<void
|
|||
}
|
||||
}
|
||||
|
||||
async function policyFilter(event: NostrEvent): Promise<void> {
|
||||
async function policyFilter(event: NostrEvent, signal: AbortSignal): Promise<void> {
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -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<CustomPolicy>(
|
||||
|
|
|
|||
|
|
@ -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<string, string>();
|
||||
|
||||
|
|
@ -25,8 +27,8 @@ export class CustomPolicy implements NPolicy {
|
|||
private policy: NPolicy = new ReadOnlyPolicy();
|
||||
|
||||
// deno-lint-ignore require-await
|
||||
async call(event: NostrEvent): Promise<NostrRelayOK> {
|
||||
return this.policy.call(event);
|
||||
async call(event: NostrEvent, signal?: AbortSignal): Promise<NostrRelayOK> {
|
||||
return this.policy.call(event, signal);
|
||||
}
|
||||
|
||||
async init({ path, cwd, databaseUrl, adminPubkey }: PolicyInit): Promise<void> {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue