diffusion
Version:
Diffusion JavaScript client
30 lines (25 loc) • 910 B
JavaScript
var Codec = require('io/codec');
var SessionSerialiser = require('session/session-id-serialiser');
var serialiser = {
read : function(input) {
if (Codec.readBoolean(input)) {
return {
properties : Codec.readDictionary(input, Codec.readString)
};
} else {
return null;
}
},
write : function(output, request) {
if (request.sessionID === undefined || request.sessionID === null) {
throw new Error('session ID is null or undefined');
}
SessionSerialiser.write(output, request.sessionID);
if (request.propertyKeys !== undefined && request.propertyKeys !== null) {
Codec.writeCollection(output, request.propertyKeys, Codec.writeString);
} else {
Codec.writeCollection(output, [], Codec.writeString);
}
}
};
module.exports = serialiser;