summaryrefslogtreecommitdiff
path: root/fedishoop/federation.ts
diff options
context:
space:
mode:
Diffstat (limited to 'fedishoop/federation.ts')
-rw-r--r--fedishoop/federation.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/fedishoop/federation.ts b/fedishoop/federation.ts
new file mode 100644
index 0000000..e703ffd
--- /dev/null
+++ b/fedishoop/federation.ts
@@ -0,0 +1,21 @@
+import { createFederation, Person } from "@fedify/fedify";
+import { getLogger } from "@logtape/logtape";
+import { RedisKvStore, RedisMessageQueue } from "@fedify/redis";
+import { Redis } from "ioredis";
+
+const logger = getLogger("fedishoop");
+
+const federation = createFederation({
+ kv: new RedisKvStore(new Redis(Deno.env.get("REDIS_URL"))),
+ queue: new RedisMessageQueue(() => new Redis(Deno.env.get("REDIS_URL"))),
+});
+
+federation.setActorDispatcher("/users/{identifier}", async (ctx, identifier) => {
+ return new Person({
+ id: ctx.getActorUri(identifier),
+ preferredUsername: identifier,
+ name: identifier,
+ });
+});
+
+export default federation;