UNPKG

@push.rocks/smartdata

Version:

An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.

114 lines 7.84 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import * as plugins from './smartdata.plugins.js'; import { Collection } from './smartdata.classes.collection.js'; import { SmartdataDb } from './smartdata.classes.db.js'; import { SmartDataDbDoc, svDb, unI } from './smartdata.classes.doc.js'; /** * EasyStore allows the storage of easy objects. It also allows easy sharing of the object between different instances */ export class EasyStore { constructor(nameIdArg, smnartdataDbRefArg) { this.easyStoreClass = (() => { let SmartdataEasyStore = class SmartdataEasyStore extends SmartDataDbDoc { }; __decorate([ unI(), __metadata("design:type", String) ], SmartdataEasyStore.prototype, "nameId", void 0); __decorate([ svDb(), __metadata("design:type", Object) ], SmartdataEasyStore.prototype, "ephermal", void 0); __decorate([ svDb(), __metadata("design:type", Number) ], SmartdataEasyStore.prototype, "lastEdit", void 0); __decorate([ svDb(), __metadata("design:type", Object) ], SmartdataEasyStore.prototype, "data", void 0); SmartdataEasyStore = __decorate([ Collection(() => this.smartdataDbRef) ], SmartdataEasyStore); return SmartdataEasyStore; })(); this.smartdataDbRef = smnartdataDbRefArg; this.nameId = nameIdArg; } async getEasyStore() { if (this.easyStorePromise) { return this.easyStorePromise; } ; // first run from here const deferred = plugins.smartpromise.defer(); this.easyStorePromise = deferred.promise; let easyStore = await this.easyStoreClass.getInstance({ nameId: this.nameId, }); if (!easyStore) { easyStore = new this.easyStoreClass(); easyStore.nameId = this.nameId; easyStore.data = {}; await easyStore.save(); } deferred.resolve(easyStore); return this.easyStorePromise; } /** * reads all keyValue pairs at once and returns them */ async readAll() { const easyStore = await this.getEasyStore(); return easyStore.data; } /** * reads a keyValueFile from disk */ async readKey(keyArg) { const easyStore = await this.getEasyStore(); return easyStore.data[keyArg]; } /** * writes a specific key to the keyValueStore */ async writeKey(keyArg, valueArg) { const easyStore = await this.getEasyStore(); easyStore.data[keyArg] = valueArg; await easyStore.save(); } async deleteKey(keyArg) { const easyStore = await this.getEasyStore(); delete easyStore.data[keyArg]; await easyStore.save(); } /** * writes all keyValue pairs in the object argument */ async writeAll(keyValueObject) { const easyStore = await this.getEasyStore(); easyStore.data = { ...easyStore.data, ...keyValueObject }; await easyStore.save(); } /** * wipes a key value store from disk */ async wipe() { const easyStore = await this.getEasyStore(); easyStore.data = {}; await easyStore.save(); } async cleanUpEphermal() { while ((await this.smartdataDbRef.statusConnectedDeferred.promise) && this.smartdataDbRef.status === 'connected') { } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZWFzeXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRkYXRhLmNsYXNzZXMuZWFzeXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBMEJwQixZQUFZLFNBQWlCLEVBQUUsa0JBQStCO1FBckJ0RCxtQkFBYyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBRTdCLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQW1CLFNBQVEsY0FBc0Q7YUFldEYsQ0FBQTtZQWJRO2dCQUROLEdBQUcsRUFBRTs7OERBQ2dCO1lBR2Y7Z0JBRE4sSUFBSSxFQUFFOztnRUFJTDtZQUdGO2dCQURDLElBQUksRUFBRTs7Z0VBQ1U7WUFHVjtnQkFETixJQUFJLEVBQUU7OzREQUNpQjtZQWRwQixrQkFBa0I7Z0JBRHZCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2VBQ2hDLGtCQUFrQixDQWV2QjtZQUNELE9BQU8sa0JBQWtCLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUdILElBQUksQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUdPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFn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