@rocksky/cli
Version:
Command-line interface for Rocksky – scrobble tracks, view stats, and manage your listening history
25 lines (19 loc) • 699 B
text/typescript
import drizzle from "./drizzle";
import sqliteKv from "sqliteKv";
import { createBidirectionalResolver, createIdResolver } from "lib/idResolver";
import { createStorage } from "unstorage";
import envpaths from "env-paths";
import fs from "node:fs";
fs.mkdirSync(envpaths("rocksky", { suffix: "" }).data, { recursive: true });
const kvPath = `${envpaths("rocksky", { suffix: "" }).data}/rocksky-kv.sqlite`;
const kv = createStorage({
driver: sqliteKv({ location: kvPath, table: "kv" }),
});
const baseIdResolver = createIdResolver(kv);
export const ctx = {
db: drizzle.db,
resolver: createBidirectionalResolver(baseIdResolver),
baseIdResolver,
kv,
};
export type Context = typeof ctx;