Fixed database includes
All checks were successful
Build / Build NPM Project (push) Successful in 41s
Build / Tag Version (push) Successful in 7s
Build / Publish Documentation (push) Successful in 35s

This commit is contained in:
Zakary Timson 2025-05-27 15:13:53 -04:00
parent af1da75a82
commit 1b03ae875b
2 changed files with 7 additions and 5 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@ztimson/utils", "name": "@ztimson/utils",
"version": "0.25.5", "version": "0.25.6",
"description": "Utility library", "description": "Utility library",
"author": "Zak Timson", "author": "Zak Timson",
"license": "MIT", "license": "MIT",

View File

@ -7,11 +7,13 @@ export type TableOptions = {
export class Database { export class Database {
connection!: Promise<IDBDatabase>; connection!: Promise<IDBDatabase>;
tables!: TableOptions[];
constructor(public readonly database: string, public readonly tables: (string | TableOptions)[], public version?: number) { constructor(public readonly database: string, tables: (string | TableOptions)[], public version?: number) {
this.connection = new Promise((resolve, reject) => { this.connection = new Promise((resolve, reject) => {
const req = indexedDB.open(this.database, this.version); const req = indexedDB.open(this.database, this.version);
const tableNames = new ASet(tables.map(t => (typeof t == 'object' ? t.name : t).toString())); this.tables = tables.map(t => typeof t == 'object' ? t : {name: t});
const tableNames = new ASet(this.tables.map(t => t.name));
req.onerror = () => reject(req.error); req.onerror = () => reject(req.error);
@ -35,8 +37,8 @@ export class Database {
}); });
} }
includes(name: string): boolean { includes(name: any): boolean {
return this.tables.some(t => (typeof t === 'string' ? name === t : name === t.name)); return !!this.tables.find(t => t.name == name.toString());
} }
table<K extends IDBValidKey = any, T = any>(name: any): Table<K, T> { table<K extends IDBValidKey = any, T = any>(name: any): Table<K, T> {