Public
Back

Version 4

2/8/2025
import type { CompiledQuery, DatabaseConnection, Dialect, QueryResult, Selectable } from 'npm:kysely';
import { Kysely } from 'npm:kysely';
import { DummyDriver, SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler } from 'npm:kysely';
import format from 'npm:pg-format';

import { db as restdriver } from 'https://esm.town/v/sqlite/db';

interface Database {
vals: ValsTable;
}
interface ValsTable {
id: string;
name: string;
code: string;
version: number;
type: 'script' | 'rpc' | 'interval' | 'httpnext' | 'http' | 'express' | 'email';
privacy: 'public';
created_at: string;
author_id: string;
author_username: string;
}
type Val = Selectable<ValsTable>;

class VTDriver extends DummyDriver {
async acquireConnection(): Promise<DatabaseConnection> {
return new VTConnection();
}
}
class VTConnection implements DatabaseConnection {
async executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>> {
const formattedQuery = format(compiledQuery.sql, compiledQuery.parameters);
console.log(formattedQuery);
return await restdriver.execute(formattedQuery) as any;
}

async *streamQuery<R>(): AsyncIterableIterator<QueryResult<R>> {
Updated: February 8, 2025