28 lines
696 B
TypeScript
28 lines
696 B
TypeScript
import Dexie, { type EntityTable } from 'dexie'
|
|
|
|
import type { CardRecord, EdgeRecord, SpaceRecord } from '@/types/canvas'
|
|
|
|
class BoundlessDatabase extends Dexie {
|
|
spaces!: EntityTable<SpaceRecord, 'id'>
|
|
cards!: EntityTable<CardRecord, 'id'>
|
|
edges!: EntityTable<EdgeRecord, 'id'>
|
|
|
|
constructor() {
|
|
super('boundless-notes')
|
|
|
|
this.version(1).stores({
|
|
spaces: 'id, updatedAt',
|
|
cards: 'id, spaceId, updatedAt',
|
|
edges: 'id, spaceId, source, target',
|
|
})
|
|
|
|
this.version(2).stores({
|
|
spaces: 'id, createdAt, updatedAt',
|
|
cards: 'id, spaceId, updatedAt',
|
|
edges: 'id, spaceId, source, target',
|
|
})
|
|
}
|
|
}
|
|
|
|
export const db = new BoundlessDatabase()
|