Skip to content

Instantly share code, notes, and snippets.

@leo
Last active September 3, 2025 17:03
Show Gist options
  • Select an option

  • Save leo/caa3494fb6d7bac8e31c73418a21101d to your computer and use it in GitHub Desktop.

Select an option

Save leo/caa3494fb6d7bac8e31c73418a21101d to your computer and use it in GitHub Desktop.
Running the RONIN client with a local database
import { Database } from "bun:sqlite";
import ronin from 'ronin';
import { Transaction, type Model } from 'blade-compiler';
import * as rawModels from './schema';
const database = new Database('db.sqlite');
const models = Object.values(rawModels) as unknown as Array<Model>;
const { get } = ronin({
fetch: (async (request: Request): Promise<Response> => {
const { queries } = (await request.json()) as { queries: Array<object> };
const transaction = new Transaction(queries, { models });
const databaseTransaction = database.transaction(() => {
return transaction.statements.map(({ statement, params }) => {
return database.prepare(statement).all(...(params as Array<string>))
});
});
const results = databaseTransaction() as Array<Array<Record<string, unknown>>>;
return Response.json({
results: transaction.formatResults(results),
});
}) as typeof fetch,
token: 'empty'
});
await get.users();

Comments are disabled for this gist.