UNPKG

@lcap/nasl

Version:

NetEase Application Specific Language

119 lines 3.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IndexedDBHelper = void 0; const localforage_1 = __importDefault(require("localforage")); class IndexedDBHelper { constructor(dbName, storeName) { this.storage = localforage_1.default.createInstance({ name: dbName, storeName: storeName, }); } async init() { try { await this.storage.ready(); } catch (error) { console.error('Error initializing localForage:', error); } } async storeData(value) { try { await this.storage.setItem(value.nodePath, value); return 'Data stored successfully'; } catch (error) { throw new Error(`Error storing data: ${error}`); } } async storeDataBatch(dataArray) { try { const promises = dataArray.map(item => { if (!item._changedTime) { console.error('没有_changedTime', item, item.nodePath); } return this.storage.setItem(item.nodePath, item); }); await Promise.all(promises); return 'Batch data stored successfully'; } catch (error) { throw new Error(`Error storing batch data: ${error}`); } } async storeDataRemoveBatch(Array) { try { const promises = Array.map(nodePath => this.storage.removeItem(nodePath)); await Promise.all(promises); return 'Batch data stored successfully'; } catch (error) { throw new Error(`Error storing batch data: ${error}`); } } async readData(key) { try { const value = await this.storage.getItem(key); return value; } catch (error) { throw new Error(`Error reading data: ${error}`); } } async readDataBatch(keys) { try { const promises = keys.map(key => this.storage.getItem(key)); const results = await Promise.all(promises); return results.map((value, index) => ({ key: keys[index], value })); } catch (error) { throw new Error(`Error reading batch data: ${error}`); } } async getAllData() { try { const allRecords = []; await this.storage.iterate((value) => { allRecords.push(value); }); return allRecords; } catch (error) { throw new Error(`Error getting all data: ${error}`); } } async hasData() { try { let hasData = false; await this.storage.iterate(() => { hasData = true; return false; // Stop iteration }); return hasData; } catch (error) { throw new Error(`Error checking for data: ${error}`); } } async deleteTable() { try { await this.storage.dropInstance(); } catch (error) { throw new Error(`Error dropping table: ${error}`); } } async clear() { try { await this.storage.clear(); } catch (error) { throw new Error(`Error clear: ${error}`); } } } exports.IndexedDBHelper = IndexedDBHelper; //# sourceMappingURL=utils.js.map