Adds eslint and linted & improved routing for interactions

This commit is contained in:
Michel Fedde 2025-06-17 20:37:53 +02:00
parent 83209f642c
commit 441715675c
35 changed files with 2091 additions and 463 deletions

View file

@ -1,22 +1,20 @@
import {DatabaseEnvironment, Environment} from "../Environment";
import {DatabaseEnvironment} from "../Environment";
import Sqlite3 from "better-sqlite3";
import Database from "better-sqlite3";
import {Container} from "../Container/Container";
import {Logger} from "log4js";
export class DatabaseConnection {
private static connection: DatabaseConnection;
private database: Sqlite3.Database;
constructor(private readonly env: DatabaseEnvironment) {
constructor(env: DatabaseEnvironment) {
this.database = new Database(env.path, {
nativeBinding: "node_modules/better-sqlite3/build/Release/better_sqlite3.node",
})
this.database.pragma('journal_mode = WAL');
}
public execute(query: string, ...args: any[]): Sqlite3.RunResult {
public execute(query: string, ...args: unknown[]): Sqlite3.RunResult {
try {
const preparedQuery = this.database.prepare(query);
return preparedQuery.run(args);
@ -26,11 +24,11 @@ export class DatabaseConnection {
}
}
public fetch<BindParameters extends unknown[] | {} = unknown[], Result = unknown>(query: string, ...args: any[]): Result|undefined {
public fetch<BindParameters extends unknown[] | {} = unknown[], Result = unknown>(query: string, ...args: unknown[]): Result|undefined {
const preparedQuery = this.database.prepare<BindParameters, Result>(query);
return preparedQuery.get(args);
}
public fetchAll<BindParameters extends unknown[] | {} = unknown[], Result = unknown>(query: string, ...args: any[]): Result[] {
public fetchAll<BindParameters extends unknown[] | {} = unknown[], Result = unknown>(query: string, ...args: unknown[]): Result[] {
const preparedQuery = this.database.prepare<BindParameters, Result>(query);
return preparedQuery.all(args);
}

View file

@ -22,7 +22,7 @@ export class DatabaseUpdater {
}
private ensureTableColumns(definition: DatabaseDefinition) {
const DBSQLColumns = this.database.fetchAll<{}, {name: string, type: string}>(
const DBSQLColumns = this.database.fetchAll<object, {name: string, type: string}>(
`PRAGMA table_info("${definition.name}")`
);
@ -76,6 +76,6 @@ export class DatabaseUpdater {
}).join(', ');
const sql = `CREATE TABLE IF NOT EXISTS ${definition.name} (${columnsSQL})`;
const result = this.database.execute(sql);
this.database.execute(sql);
}
}