forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1import drizzle from "./drizzle.ts";
2import { configure, getConsoleSink, getLogger } from "@logtape/logtape";
3import { getPrettyFormatter } from "@logtape/pretty";
4import { DidResolver } from "@atp/identity";
5import { AuthVerifier } from "./utils/auth.ts";
6import { env } from "./utils/env.ts";
7
8await configure({
9 sinks: {
10 console: getConsoleSink({
11 formatter: getPrettyFormatter({
12 properties: true,
13 categoryStyle: "underline",
14 messageColor: "rgb(255, 255, 255)",
15 categoryColor: "rgb(255, 255, 255)",
16 messageStyle: "reset",
17 }),
18 }),
19 },
20 loggers: [
21 { category: "feedgen", lowestLevel: "info", sinks: ["console"] },
22 { category: ["logtape", "meta"], lowestLevel: "error", sinks: ["console"] },
23 ],
24});
25
26const logger = getLogger("feedgen");
27const ownDid = `did:web:${env.ROCKSKY_FEEDGEN_DOMAIN}`;
28const didResolver = new DidResolver({});
29const authVerifier = new AuthVerifier(ownDid, didResolver);
30
31export const ctx = {
32 db: drizzle.db,
33 logger,
34 ownDid,
35 authVerifier,
36};
37
38export type Context = typeof ctx;
39
40export type AppEnv = {
41 Bindings: Context;
42};