import { GetWebfsDatabase } from '../app' import { Item } from '../fs/Item' import type { SimpleStream } from '../utils/SimpleStream' import { Program } from './Program' export class ResetIndexedDb extends Program { constructor() { super() } async Exec(_: SimpleStream, stdout: SimpleStream, ___: Item, ____: string[]): Promise { const db = GetWebfsDatabase() if (!db) { stdout.emit("rsindb: error: GetWebfsDatabase returned null") return 1 } return new Promise(resolve => { const request = indexedDB.deleteDatabase(db.name) request.onerror = () => { stdout.emit("rsindb: error: IndexedDB deletion request has failed\n") resolve(2) } request.onblocked = () => { stdout.emit("rsindb: debug: database open, closing connection\n") db.close() } request.onupgradeneeded = () => stdout.emit("rsindb: debug: request upgrade needed\n") request.onsuccess = () => { stdout.emit("success\n") resolve(0) location.reload() } }) } }