snort/packages/worker-relay/example/basic.ts

29 lines
912 B
TypeScript
Raw Normal View History

2024-03-04 13:09:09 +00:00
import { WorkerRelayInterface } from "@snort/worker-relay";
// when using Vite import the worker script directly (for production)
2024-03-07 14:12:50 +00:00
import WorkerVite from "@snort/worker-relay/src/worker?worker";
2024-03-04 13:09:09 +00:00
// in dev mode import esm module, i have no idea why it has to work like this
2024-03-07 14:12:50 +00:00
const workerScript = import.meta.env.DEV
? new URL("@snort/worker-relay/dist/esm/worker.mjs", import.meta.url)
: new WorkerVite();
2024-03-04 13:09:09 +00:00
const workerRelay = new WorkerRelayInterface(workerScript);
2024-03-04 13:09:09 +00:00
// load sqlite database and run migrations
await workerRelay.init("my-relay.db");
2024-03-04 13:09:09 +00:00
// Query worker relay with regular nostr REQ command
const results = await workerRelay.query(["REQ", "1", { kinds: [1], limit: 10 }]);
2024-03-04 13:09:09 +00:00
// publish a new event to the relay
const myEvent = {
2024-03-07 14:12:50 +00:00
kind: 1,
created_at: Math.floor(new Date().getTime() / 1000),
content: "test",
tags: [],
2024-03-04 13:09:09 +00:00
};
if (await workerRelay.event(myEvent)) {
2024-03-07 14:12:50 +00:00
console.log("Success");
}