UNPKG

@opra/common

Version:
67 lines (66 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RpcOperationResponse = void 0; const objects_1 = require("@jsopen/objects"); const document_element_js_1 = require("../common/document-element.js"); const data_type_js_1 = require("../data-type/data-type.js"); /** * @class RpcOperationResponse */ class RpcOperationResponse extends document_element_js_1.DocumentElement { constructor(owner, initArgs) { super(owner); this.headers = []; this.channel = initArgs?.channel; this.description = initArgs?.description; if (initArgs?.payloadType) { this.payloadType = initArgs?.payloadType instanceof data_type_js_1.DataType ? initArgs.payloadType : this.owner.node.getDataType(initArgs.payloadType); } else this.payloadType = this.owner.node.getDataType('any'); if (initArgs?.keyType) { this.keyType = initArgs?.keyType instanceof data_type_js_1.DataType ? initArgs.keyType : this.owner.node.getDataType(initArgs.keyType); } } findHeader(paramName) { const paramNameLower = paramName.toLowerCase(); let prm; for (prm of this.headers) { if (typeof prm.name === 'string') { prm._nameLower = prm._nameLower || prm.name.toLowerCase(); if (prm._nameLower === paramNameLower) return prm; } if (prm.name instanceof RegExp && prm.name.test(paramName)) return prm; } } toJSON() { const out = (0, objects_1.omitUndefined)({ description: this.description, channel: this.channel, payloadType: this.payloadType.name ? this.payloadType.name : this.payloadType.toJSON(), keyType: this.keyType ? this.keyType.name ? this.keyType.name : this.keyType.toJSON() : undefined, }); if (this.headers.length) { out.headers = []; for (const prm of this.headers) { out.headers.push(prm.toJSON()); } } return out; } } exports.RpcOperationResponse = RpcOperationResponse;