UNPKG

proteus-js-client

Version:

Proteus JavaScript Client

91 lines (75 loc) 3.33 kB
/** * Copyright (c) 2017-present, Netifi Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ 'use strict'; /* eslint-disable consistent-return, no-bitwise */ Object.defineProperty(exports, "__esModule", { value: true }); exports.encodeFrame = encodeFrame; exports.decodeFrame = decodeFrame; var _Frame = require('./Frame'); var _FrameHeaderFlyweight = require('./FrameHeaderFlyweight'); var _BrokerSetupFlyweight = require('./BrokerSetupFlyweight'); var _DestinationSetupFlyweight = require('./DestinationSetupFlyweight'); var _GroupFlyweight = require('./GroupFlyweight'); var _BroadcastFlyweight = require('./BroadcastFlyweight'); var _ShardFlyweight = require('./ShardFlyweight'); var _invariant = require('fbjs/lib/invariant'); var _invariant2 = _interopRequireDefault(_invariant); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Convert the frame to a (binary) buffer. */ function encodeFrame(frame) { switch (frame.type) { case _Frame.FrameTypes.BROKER_SETUP: return (0, _BrokerSetupFlyweight.encodeBrokerSetupFrame)(frame); case _Frame.FrameTypes.DESTINATION_SETUP: return (0, _DestinationSetupFlyweight.encodeDestinationSetupFrame)(frame); case _Frame.FrameTypes.GROUP: return (0, _GroupFlyweight.encodeGroupFrame)(frame); case _Frame.FrameTypes.BROADCAST: return (0, _BroadcastFlyweight.encodeBroadcastFrame)(frame); case _Frame.FrameTypes.SHARD: return (0, _ShardFlyweight.encodeShardFrame)(frame); default: (0, _invariant2.default)(false, 'ProteusBinaryFraming: Unsupported frame type `%s`.', (0, _Frame.getFrameTypeName)(frame.type)); } } /** * Read a frame from the buffer. */ function decodeFrame(buffer) { var majorVersion = (0, _FrameHeaderFlyweight.getMajorVersion)(buffer); var minorVersion = (0, _FrameHeaderFlyweight.getMinorVersion)(buffer); var type = (0, _FrameHeaderFlyweight.getFrameType)(buffer); switch (type) { case _Frame.FrameTypes.BROKER_SETUP: return (0, _BrokerSetupFlyweight.decodeBrokerSetupFrame)(buffer, majorVersion, minorVersion); case _Frame.FrameTypes.DESTINATION_SETUP: return (0, _DestinationSetupFlyweight.decodeDestinationSetupFrame)(buffer, majorVersion, minorVersion); case _Frame.FrameTypes.GROUP: return (0, _GroupFlyweight.decodeGroupFrame)(buffer, majorVersion, minorVersion); case _Frame.FrameTypes.BROADCAST: return (0, _BroadcastFlyweight.decodeBroadcastFrame)(buffer, majorVersion, minorVersion); case _Frame.FrameTypes.SHARD: return (0, _ShardFlyweight.decodeShardFrame)(buffer, majorVersion, minorVersion); default: (0, _invariant2.default)(false, 'ProteusBinaryFraming: Unsupported frame type `%s`.', (0, _Frame.getFrameTypeName)(type)); } }