mirror of
https://github.com/aljazceru/ditto.git
synced 2026-01-03 21:54:23 +01:00
Use explicit return type for getFilterQuery
This commit is contained in:
@@ -3,7 +3,7 @@ import path from 'node:path';
|
||||
|
||||
import { DenoSqliteDialect, FileMigrationProvider, Kysely, Migrator, Sqlite } from '@/deps.ts';
|
||||
|
||||
interface Tables {
|
||||
interface DittoDB {
|
||||
events: EventRow;
|
||||
tags: TagRow;
|
||||
users: UserRow;
|
||||
@@ -33,7 +33,7 @@ interface UserRow {
|
||||
inserted_at: Date;
|
||||
}
|
||||
|
||||
const db = new Kysely<Tables>({
|
||||
const db = new Kysely<DittoDB>({
|
||||
dialect: new DenoSqliteDialect({
|
||||
database: new Sqlite('data/db.sqlite3'),
|
||||
}),
|
||||
@@ -52,4 +52,4 @@ console.log('Running migrations...');
|
||||
const results = await migrator.migrateToLatest();
|
||||
console.log('Migrations finished:', results);
|
||||
|
||||
export { db, type EventRow, type TagRow, type UserRow };
|
||||
export { db, type DittoDB, type EventRow, type TagRow, type UserRow };
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { type Filter, type Insertable } from '@/deps.ts';
|
||||
import { type Filter, type Insertable, type SelectQueryBuilder } from '@/deps.ts';
|
||||
import { type SignedEvent } from '@/event.ts';
|
||||
|
||||
import { db, type TagRow } from '@/db.ts';
|
||||
import { db, type DittoDB, type EventRow, type TagRow } from '@/db.ts';
|
||||
|
||||
function insertEvent(event: SignedEvent): Promise<void> {
|
||||
return db.transaction().execute(async (trx) => {
|
||||
@@ -34,7 +34,7 @@ function insertEvent(event: SignedEvent): Promise<void> {
|
||||
});
|
||||
}
|
||||
|
||||
function getFilterQuery<K extends number = number>(filter: Filter<K>) {
|
||||
function getFilterQuery(filter: Filter): SelectQueryBuilder<DittoDB, 'events', EventRow> {
|
||||
let query = db.selectFrom('events').selectAll().orderBy('created_at', 'desc');
|
||||
|
||||
for (const key of Object.keys(filter)) {
|
||||
|
||||
@@ -56,6 +56,7 @@ export {
|
||||
Kysely,
|
||||
Migrator,
|
||||
type NullableInsertKeys,
|
||||
type SelectQueryBuilder,
|
||||
sql,
|
||||
} from 'npm:kysely@^0.25.0';
|
||||
export { DenoSqliteDialect } from 'https://gitlab.com/soapbox-pub/kysely-deno-sqlite/-/raw/76748303a45fac64a889cd2b9265c6c9b8ef2e8b/mod.ts';
|
||||
|
||||
Reference in New Issue
Block a user