UNPKG

rsocket-rxjs

Version:
73 lines (72 loc) 2.41 kB
import { WellKnownMimeTypes } from "./well-known-mime-types"; export class CompositeMetadata { constructor() { this._array = []; } get length() { return this._array.length; } push(data) { this._array.push(data); } get(index) { return this._array[index]; } remove(index) { const removed = this._array.splice(index, 1); return removed.length > 0 ? removed[0] : undefined; } pop() { return this._array.pop(); } [Symbol.iterator]() { let idx = 0; return { next: () => { if (idx < this.length) { return { value: this.get(idx++), done: false }; } else { return { value: undefined, done: true }; } } }; } get route() { var _a; return (_a = this._array.find(v => v.mimeType == WellKnownMimeTypes.MESSAGE_X_RSOCKET_ROUTING_V0.name)) === null || _a === void 0 ? void 0 : _a.data; } set route(value) { if (value != undefined) { this._array.push({ mimeType: WellKnownMimeTypes.MESSAGE_X_RSOCKET_ROUTING_V0.name, data: value }); } else { let routeIdx = this._array.findIndex(v => v.mimeType !== WellKnownMimeTypes.MESSAGE_X_RSOCKET_ROUTING_V0.name); if (routeIdx != -1) { this._array.splice(routeIdx, 1); } } } get authentication() { var _a; return (_a = this._array.find(v => v.mimeType === WellKnownMimeTypes.MESSAGE_X_RSOCKET_AUTHENTICATION_V0.name)) === null || _a === void 0 ? void 0 : _a.data; } set authentication(auth) { if (auth != undefined) { this._array.push({ mimeType: WellKnownMimeTypes.MESSAGE_X_RSOCKET_AUTHENTICATION_V0.name, data: auth }); } else { let authIdx = this._array.findIndex(v => v.mimeType !== WellKnownMimeTypes.MESSAGE_X_RSOCKET_AUTHENTICATION_V0.name); if (authIdx != -1) { this._array.splice(authIdx, 1); } } } getByMimeType(mimeType) { return this._array.find(v => v.mimeType === mimeType).data; } }