UNPKG

diffusion

Version:

Diffusion JavaScript client

39 lines (33 loc) 1.48 kB
var SessionIdSerialiser = require('session/session-id-serialiser'); var SessionPropertiesEventType = require('services/control/session-properties-event-type'); var SessionCloseReason = require('services/control/session-close-reason'); var Codec = require('io/codec'); var BEES = require('serialisers/byte-encoded-enum-serialiser'); var serialiser = { read: function (input) { var result = { sessionId: SessionIdSerialiser.read(input), type: BEES.read(input, SessionPropertiesEventType) }; switch (result.type) { case SessionPropertiesEventType.OPEN: result.oldProperties = Codec.readDictionary(input, Codec.readString); break; case SessionPropertiesEventType.UPDATE: result.updateType = Codec.readByte(input); result.oldProperties = Codec.readDictionary(input, Codec.readString); result.newProperties = Codec.readDictionary(input, Codec.readString); break; case SessionPropertiesEventType.CLOSE: result.closeReason = BEES.read(input, SessionCloseReason); result.oldProperties = Codec.readDictionary(input, Codec.readString); break; default: throw new Error('Unknown session properties event type: ' + result.type); } return result; }, write: function () { } }; module.exports = serialiser;