|
import Dexie, { type Table } from 'dexie'; |
|
import type { Monster } from './schema'; |
|
|
|
export class MonsterDatabase extends Dexie { |
|
monsters!: Table<Monster>; |
|
|
|
constructor() { |
|
super('MonsterGeneratorDB'); |
|
|
|
this.version(1).stores({ |
|
monsters: '++id, name, createdAt' |
|
}); |
|
|
|
|
|
this.version(2).stores({ |
|
monsters: '++id, name, createdAt' |
|
}).upgrade(tx => { |
|
|
|
return tx.table('monsters').toCollection().modify(monster => { |
|
monster.imageData = monster.imageData || null; |
|
}); |
|
}); |
|
|
|
|
|
this.version(3).stores({ |
|
monsters: '++id, name, createdAt' |
|
}).upgrade(tx => { |
|
|
|
return tx.table('monsters').toCollection().modify(monster => { |
|
monster.stats = monster.stats || null; |
|
}); |
|
}); |
|
} |
|
} |
|
|
|
export const db = new MonsterDatabase(); |