Bluesky app fork with some witchin' additions 💫 forked from jollywhoppers.com/witchsky.app
Something went wrong. Try again.
TypeScript
12345678910111213141516171819202122232425262728293031323334353637383940import {SafelinkClient} from './cache/safelinkClient.js'import {type Config} from './config.js'import Database from './db/index.js'
export type AppContextOptions = { cfg: Config db: Database}
export class AppContext { cfg: Config db: Database safelinkClient: SafelinkClient abortController = new AbortController()
constructor(private opts: AppContextOptions) { this.cfg = this.opts.cfg this.db = this.opts.db this.safelinkClient = new SafelinkClient({ cfg: this.opts.cfg.service, db: this.opts.db, }) }
static async fromConfig(cfg: Config, overrides?: Partial<AppContextOptions>) { const db = Database.postgres({ url: cfg.db.url, schema: cfg.db.schema, poolSize: cfg.db.pool.size, poolMaxUses: cfg.db.pool.maxUses, poolIdleTimeoutMs: cfg.db.pool.idleTimeoutMs, }) return new AppContext({ cfg, db, ...overrides, }) }}