diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index e81c0a5..a92eb23 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartdata', - version: '5.0.37', + version: '5.0.38', description: 'do more with data' } diff --git a/ts/smartdata.classes.easystore.ts b/ts/smartdata.classes.easystore.ts index 4ddb4f6..907b35a 100644 --- a/ts/smartdata.classes.easystore.ts +++ b/ts/smartdata.classes.easystore.ts @@ -37,7 +37,16 @@ export class EasyStore { this.nameId = nameIdArg; } - private async getEasyStore() { + private easyStorePromise: Promise>; + private async getEasyStore(): Promise> { + 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, }); @@ -48,7 +57,8 @@ export class EasyStore { easyStore.data = {}; await easyStore.save(); } - return easyStore; + deferred.resolve(easyStore); + return this.easyStorePromise; } /**