{"version":3,"sources":["deferred.ts"],"sourcesContent":["import { Runtime } from \"../runtime/runtime.ts\";\nimport { Type } from \"../types/type.ts\";\nimport { Endpoint } from \"../types/addressing.ts\";\nimport { Scope } from \"./scope.ts\";\n\n\nexport class Deferred<T>  {\n\n    #datex: Scope<T>\n    #sender: Endpoint\n\n    #promise?:Promise<T>\n\n    constructor(datex:Scope<T>, sender:Endpoint) {\n        this.#datex = datex;\n        this.#sender = sender;\n    }\n\n    // TODO: getter not working\n    value():Promise<T> {\n        if (!this.#promise) {\n            this.#promise = new Promise(async (resolve, reject)=>{\n                try {\n                    const res = await this.#datex.execute(this.#sender??Runtime.endpoint);\n                    resolve(res);\n                }\n                catch (e) {\n                    reject(e);\n                }\n            })\n        }\n        return this.#promise;\n    }\n\n}\n\n// only temporary, remove\nType.get(\"std:Deferred\").setJSInterface({\n    class: Deferred,\n\n    is_normal_object: true,\n    proxify_children: true,\n    visible_children: new Set([\"value\"]),\n})"],"names":["Runtime","Type","Deferred","constructor","datex","sender","value","Promise","resolve","reject","res","execute","endpoint","e","get","setJSInterface","class","is_normal_object","proxify_children","visible_children","Set"],"mappings":"AAAA,SAASA,OAAO,QAAQ,wBAAwB;AAChD,SAASC,IAAI,QAAQ,mBAAmB;AAKxC,OAAO,MAAMC;IAET,CAAA,KAAM,CAAU;IAChB,CAAA,MAAO,CAAU;IAEjB,CAAA,OAAQ,CAAY;IAEpBC,YAAYC,KAAc,EAAEC,MAAe,CAAE;QACzC,IAAI,CAAC,CAAA,KAAM,GAAGD,OACd,IAAI,CAAC,CAAA,MAAO,GAAGC;IACnB;IAGAC,QAAmB;QAYf,OAXK,IAAI,CAAC,CAAA,OAAQ,IACd,CAAA,IAAI,CAAC,CAAA,OAAQ,GAAG,IAAIC,QAAQ,OAAOC,SAASC;YACxC,IAAI;gBACA,IAAMC,MAAM,MAAM,IAAI,CAAC,CAAA,KAAM,CAACC,OAAO,CAAC,IAAI,CAAC,CAAA,MAAO,IAAEX,QAAQY,QAAQ;gBACpEJ,QAAQE;YACZ,EACA,OAAOG,GAAG;gBACNJ,OAAOI;YACX;QACJ,EAAC,GAEE,IAAI,CAAC,CAAA,OAAQ;IACxB;AAEJ;AAGAZ,KAAKa,GAAG,CAAC,gBAAgBC,cAAc,CAAC;IACpCC,OAAOd;IAEPe,kBAAkB,CAAA;IAClBC,kBAAkB,CAAA;IAClBC,kBAAkB,IAAIC,IAAI;QAAC;KAAQ;AACvC","sourceRoot":"/lib/datex-core-js-legacy-0.3.15/types/","file":"deferred.ts"}