File size: 796 Bytes
9030f57
 
 
 
 
 
 
11486ce
 
 
 
 
 
 
 
9030f57
 
11486ce
9030f57
 
 
 
 
 
 
11486ce
 
 
 
9030f57
 
11486ce
9030f57
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import Dexie, { type EntityTable } from 'dexie';

export interface ImageRecord {
    filename: string;
    blob: Blob;
}

export interface ThumbnailRecord {
    filename: string;
    blob: Blob;
    updatedAt: number;
    width: number;
    height: number;
}

export class ImageDB extends Dexie {
    images!: EntityTable<ImageRecord, 'filename'>;
    thumbnails!: EntityTable<ThumbnailRecord, 'filename'>;

    constructor() {
        super('ImageDB');

        this.version(1).stores({
            images: '&filename'
        });
        this.version(2).stores({
            images: '&filename',
            thumbnails: '&filename, updatedAt'
        });

        this.images = this.table('images');
        this.thumbnails = this.table('thumbnails');
    }
}

export const db = new ImageDB();