UNPKG

@synerty/vortexjs

Version:

Custom observable data serialisation and routing based on Angular 2+

60 lines 8.7 kB
import { assert } from "./UtilMisc"; import "./UtilArray"; import { PayloadDelegateInMainWeb } from "./payload/PayloadDelegateInMainWeb"; import { PayloadEnvelope } from "./PayloadEnvelope"; import { Jsonable, SerialiseUtil } from "./exports"; // ---------------------------------------------------------------------------- // Payload class /** * * This class is serialised and transferred over the vortex to the server. */ export class Payload extends Jsonable { static workerDelegate = new PayloadDelegateInMainWeb(); filt; tuples; date = null; /** * Payload * This class is serialised and tranferred over the vortex to the server. * @param filt The filter that the server handler is listening for * @param tuples: The tuples to init the Payload with * different location @depreciated * @param date The date for this envelope, it should match the payload. */ constructor(filt = {}, tuples = [], date = null) { super(); this.__rst = SerialiseUtil.T_RAPUI_PAYLOAD; this.filt = filt; this.tuples = tuples; this.date = date == null ? new Date() : this.date; } static setWorkerDelegate(delegate) { Payload.workerDelegate = delegate; } // ------------------------------------------- // JSON Related method _fromJson(jsonStr) { return Promise.resolve(JSON.parse(jsonStr)).then((jsonDict) => { assert(jsonDict[Jsonable.JSON_CLASS_TYPE] === this.__rst); return this.fromJsonDict(jsonDict); }); } async _toJson() { const jsonDict = await this.toJsonDict(); return await JSON.stringify(jsonDict); } static async fromEncodedPayload(encodedPayloadStr) { const jsonStr = await Payload.workerDelegate.decodeAndInflate(encodedPayloadStr); return await new Payload()._fromJson(jsonStr); } async toEncodedPayload() { const jsonStr = await this._toJson(); return await Payload.workerDelegate.deflateAndEncode(jsonStr); } async makePayloadEnvelope() { const encodedThis = await this.toEncodedPayload(); return new PayloadEnvelope(this.filt, encodedThis, this.date); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92b3J0ZXgvUGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBUyxNQUFNLFdBQVcsQ0FBQztBQWUzRCwrRUFBK0U7QUFDL0UsZ0JBQWdCO0FBRWhCOzs7R0FHRztBQUNILE1BQU0sT0FBTyxPQUFRLFNBQVEsUUFBUTtJQUN6QixNQUFNLENBQUMsY0FBYyxHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztJQUUvRCxJQUFJLENBQUs7SUFDVCxNQUFNLENBQXFCO0lBQzNCLElBQUksR0FBZ0IsSUFBSSxDQUFDO0lBRXpCOzs7Ozs7O09BT0c7SUFDSCxZQUNJLE9BQVcsRUFBRSxFQUNiLFNBQTZCLEVBQUUsRUFDL0IsT0FBb0IsSUFBSTtRQUV4QixLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUUzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxRQUE0QjtRQUNqRCxPQUFPLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQsOENBQThDO0lBQzlDLHNCQUFzQjtJQUVkLFNBQVMsQ0FBQyxPQUFlO1FBQzdCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDMUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTztRQUNqQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN6QyxPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FDM0IsaUJBQXlCO1FBRXpCLE1BQU0sT0FBTyxHQUNULE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQjtRQUNsQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyQyxPQUFPLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQjtRQUNyQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2xELE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NlcnQgfSBmcm9tIFwiLi9VdGlsTWlzY1wiO1xuaW1wb3J0IFwiLi9VdGlsQXJyYXlcIjtcbmltcG9ydCB7IFBheWxvYWREZWxlZ2F0ZUluTWFpbldlYiB9IGZyb20gXCIuL3BheWxvYWQvUGF5bG9hZERlbGVnYXRlSW5NYWluV2ViXCI7XG5pbXBvcnQgeyBQYXlsb2FkRGVsZWdhdGVBQkMgfSBmcm9tIFwiLi9wYXlsb2FkL1BheWxvYWREZWxlZ2F0ZUFCQ1wiO1xuaW1wb3J0IHsgUGF5bG9hZEVudmVsb3BlIH0gZnJvbSBcIi4vUGF5bG9hZEVudmVsb3BlXCI7XG5pbXBvcnQgeyBKc29uYWJsZSwgU2VyaWFsaXNlVXRpbCwgVHVwbGUgfSBmcm9tIFwiLi9leHBvcnRzXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFR5cGVzXG5cbi8qKlxuICogSVBheWxvYWRGaWx0XG4gKiBUaGlzIGludGVyZmFjZSBkZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgZm9yIGEgdmFsaWQgcGF5bG9hZCBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBheWxvYWRGaWx0IHtcbiAgICBrZXk6IHN0cmluZztcblxuICAgIFttb3JlOiBzdHJpbmddOiBhbnk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBheWxvYWQgY2xhc3NcblxuLyoqXG4gKlxuICogVGhpcyBjbGFzcyBpcyBzZXJpYWxpc2VkIGFuZCB0cmFuc2ZlcnJlZCBvdmVyIHRoZSB2b3J0ZXggdG8gdGhlIHNlcnZlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFBheWxvYWQgZXh0ZW5kcyBKc29uYWJsZSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgd29ya2VyRGVsZWdhdGUgPSBuZXcgUGF5bG9hZERlbGVnYXRlSW5NYWluV2ViKCk7XG5cbiAgICBmaWx0OiB7fTtcbiAgICB0dXBsZXM6IEFycmF5PFR1cGxlIHwgYW55PjtcbiAgICBkYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQYXlsb2FkXG4gICAgICogVGhpcyBjbGFzcyBpcyBzZXJpYWxpc2VkIGFuZCB0cmFuZmVycmVkIG92ZXIgdGhlIHZvcnRleCB0byB0aGUgc2VydmVyLlxuICAgICAqIEBwYXJhbSBmaWx0IFRoZSBmaWx0ZXIgdGhhdCB0aGUgc2VydmVyIGhhbmRsZXIgaXMgbGlzdGVuaW5nIGZvclxuICAgICAqIEBwYXJhbSB0dXBsZXM6IFRoZSB0dXBsZXMgdG8gaW5pdCB0aGUgUGF5bG9hZCB3aXRoXG4gICAgICogZGlmZmVyZW50IGxvY2F0aW9uIEBkZXByZWNpYXRlZFxuICAgICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIGZvciB0aGlzIGVudmVsb3BlLCBpdCBzaG91bGQgbWF0Y2ggdGhlIHBheWxvYWQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZpbHQ6IHt9ID0ge30sXG4gICAgICAgIHR1cGxlczogQXJyYXk8VHVwbGUgfCBhbnk+ID0gW10sXG4gICAgICAgIGRhdGU6IERhdGUgfCBudWxsID0gbnVsbCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLl9fcnN0ID0gU2VyaWFsaXNlVXRpbC5UX1JBUFVJX1BBWUxPQUQ7XG5cbiAgICAgICAgdGhpcy5maWx0ID0gZmlsdDtcbiAgICAgICAgdGhpcy50dXBsZXMgPSB0dXBsZXM7XG4gICAgICAgIHRoaXMuZGF0ZSA9IGRhdGUgPT0gbnVsbCA/IG5ldyBEYXRlKCkgOiB0aGlzLmRhdGU7XG4gICAgfVxuXG4gICAgc3RhdGljIHNldFdvcmtlckRlbGVnYXRlKGRlbGVnYXRlOiBQYXlsb2FkRGVsZWdhdGVBQkMpIHtcbiAgICAgICAgUGF5bG9hZC53b3JrZXJEZWxlZ2F0ZSA9IGRlbGVnYXRlO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBKU09OIFJlbGF0ZWQgbWV0aG9kXG5cbiAgICBwcml2YXRlIF9mcm9tSnNvbihqc29uU3RyOiBzdHJpbmcpOiBQcm9taXNlPFBheWxvYWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShKU09OLnBhcnNlKGpzb25TdHIpKS50aGVuKChqc29uRGljdCkgPT4ge1xuICAgICAgICAgICAgYXNzZXJ0KGpzb25EaWN0W0pzb25hYmxlLkpTT05fQ0xBU1NfVFlQRV0gPT09IHRoaXMuX19yc3QpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZnJvbUpzb25EaWN0KGpzb25EaWN0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfdG9Kc29uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGpzb25EaWN0ID0gYXdhaXQgdGhpcy50b0pzb25EaWN0KCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBKU09OLnN0cmluZ2lmeShqc29uRGljdCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIGZyb21FbmNvZGVkUGF5bG9hZChcbiAgICAgICAgZW5jb2RlZFBheWxvYWRTdHI6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPFBheWxvYWQ+IHtcbiAgICAgICAgY29uc3QganNvblN0ciA9XG4gICAgICAgICAgICBhd2FpdCBQYXlsb2FkLndvcmtlckRlbGVnYXRlLmRlY29kZUFuZEluZmxhdGUoZW5jb2RlZFBheWxvYWRTdHIpO1xuICAgICAgICByZXR1cm4gYXdhaXQgbmV3IFBheWxvYWQoKS5fZnJvbUpzb24oanNvblN0cik7XG4gICAgfVxuXG4gICAgYXN5bmMgdG9FbmNvZGVkUGF5bG9hZCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBqc29uU3RyID0gYXdhaXQgdGhpcy5fdG9Kc29uKCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBQYXlsb2FkLndvcmtlckRlbGVnYXRlLmRlZmxhdGVBbmRFbmNvZGUoanNvblN0cik7XG4gICAgfVxuXG4gICAgYXN5bmMgbWFrZVBheWxvYWRFbnZlbG9wZSgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBlbmNvZGVkVGhpcyA9IGF3YWl0IHRoaXMudG9FbmNvZGVkUGF5bG9hZCgpO1xuICAgICAgICByZXR1cm4gbmV3IFBheWxvYWRFbnZlbG9wZSh0aGlzLmZpbHQsIGVuY29kZWRUaGlzLCB0aGlzLmRhdGUpO1xuICAgIH1cbn1cbiJdfQ==