Something went wrong. Try again.
A decentralized music tracking and discovery platform built on AT Protocol 🎵 forked from rocksky.app/rocksky
Something went wrong. Try again.
TypeScript
at feat/pgpull
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253import { createClient } from "auth/client";import axios from "axios";import { createDb, migrateToLatest } from "db";import drizzle from "drizzle";import authVerifier from "lib/authVerifier";import { env } from "lib/env";import { createBidirectionalResolver, createIdResolver } from "lib/idResolver";import { connect } from "nats";import redis from "redis";import sqliteKv from "sqliteKv";import { createStorage } from "unstorage";import { getXataClient } from "xata";
const { DB_PATH } = env;export const db = createDb(DB_PATH);await migrateToLatest(db);
const kv = createStorage({ driver: sqliteKv({ location: env.KV_DB_PATH, table: "kv" }),});
const baseIdResolver = createIdResolver(kv);
const client = getXataClient();
export const ctx = { oauthClient: await createClient(db), resolver: createBidirectionalResolver(baseIdResolver), baseIdResolver, kv: new Map<string, string>(), client, db: drizzle.db, nc: await connect({ servers: env.NATS_URL }), analytics: axios.create({ baseURL: env.ANALYTICS }), dropbox: axios.create({ baseURL: env.DROPBOX }), googledrive: axios.create({ baseURL: env.GOOGLE_DRIVE }), tracklist: axios.create({ baseURL: env.TRACKLIST }), redis: await redis .createClient({ url: env.REDIS_URL }) .on("error", (err) => { console.error("Uncaught Redis Client Error", err); process.exit(1); }) .connect(), meilisearch: axios.create({ baseURL: env.MEILISEARCH_URL, headers: { Authorization: `Bearer ${env.MEILISEARCH_API_KEY}` }, }), authVerifier,};
export type Context = typeof ctx;