photosite/src/db/index.ts

39 lines
820 B
TypeScript

import 'dotenv/config';
import { createLog } from '../log';
import type { Logger } from 'winston';
import { Database } from 'sqlite3';
import { envString } from '../env';
interface Photos {
name : string;
hash : string;
width : number;
height : number;
discovered ?: number;
posted? : boolean;
score? : number;
}
export class DB {
private db : Database;
private log : Logger;
constructor () {
this.log = createLog('db');
this.db = new Database(envString('DB', 'data/site.db'));
}
private async run (query : string, args : any[] = null) {
return new Promise((resolve : Function, reject : Function) => {
return this.db.run(query, args, (err : Error, rows : any[]) => {
if (err) return reject(err);
return resolve(true);
});
});
}
}
module.exports = { DB };
export type { Photos };