24 lines
646 B
TypeScript
24 lines
646 B
TypeScript
import { DBSchema, IDBPDatabase, openDB } from "idb";
|
|
import { Todo, BlockedSite } from "./types";
|
|
|
|
interface ExtensionDatabaseScheme extends DBSchema {
|
|
todos: {
|
|
key: string;
|
|
value: Todo;
|
|
};
|
|
blocked_sites: {
|
|
key: string;
|
|
value: BlockedSite;
|
|
};
|
|
}
|
|
|
|
export type ExtensionDatabase = IDBPDatabase<ExtensionDatabaseScheme>;
|
|
|
|
export function openExtensionDatabase(): Promise<ExtensionDatabase> {
|
|
return openDB<ExtensionDatabaseScheme>("let-me-focus", 1, {
|
|
upgrade(database) {
|
|
database.createObjectStore("todos", { keyPath: "id" });
|
|
database.createObjectStore("blocked_sites", { keyPath: "id" });
|
|
},
|
|
});
|
|
}
|