forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1import drizzle from "./drizzle";
2import sqliteKv from "sqliteKv";
3import { createBidirectionalResolver, createIdResolver } from "lib/idResolver";
4import { createStorage } from "unstorage";
5import envpaths from "env-paths";
6import fs from "node:fs";
7
8fs.mkdirSync(envpaths("rocksky", { suffix: "" }).data, { recursive: true });
9const kvPath = `${envpaths("rocksky", { suffix: "" }).data}/rocksky-kv.sqlite`;
10
11const kv = createStorage({
12 driver: sqliteKv({ location: kvPath, table: "kv" }),
13});
14
15const baseIdResolver = createIdResolver(kv);
16
17export const ctx = {
18 db: drizzle.db,
19 resolver: createBidirectionalResolver(baseIdResolver),
20 baseIdResolver,
21 kv,
22};
23
24export type Context = typeof ctx;