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.

113 lines 7.79 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 './plugins.js'; import { Collection } from './classes.collection.js'; import { SmartdataDb } from './classes.db.js'; import { SmartDataDbDoc, svDb, unI } from './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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5lYXN5c3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmVhc3lzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUEwQnBCLFlBQVksU0FBaUIsRUFBRSxrQkFBK0I7UUFyQnRELG1CQUFjLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFFN0IsSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBbUIsU0FBUSxjQUFzRDthQWV0RixDQUFBO1lBYlE7Z0JBRE4sR0FBRyxFQUFFOzs4REFDZ0I7WUFHZjtnQkFETixJQUFJLEVBQUU7O2dFQUlMO1lBR0Y7Z0JBREMsSUFBSSxFQUFFOztnRUFDVTtZQUdWO2dCQUROLElBQUksRUFBRTs7NERBQ2lCO1lBZHBCLGtCQUFrQjtnQkFEdkIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7ZUFDaEMsa0JBQWtCLENBZXZCO1lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDLENBQUMsRUFBRSxDQUFDO1FBR0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBR08sS0FBSyxDQUFDLFlBQVk7UUFDeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixDQUFD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