@lcap/nasl
Version:
NetEase Application Specific Language
119 lines • 3.61 kB
JavaScript
;
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