UNPKG

diffusion

Version:

Diffusion JavaScript client

37 lines (25 loc) 1.12 kB
var Codec = require('io/codec'); var BEES = require('serialisers/byte-encoded-enum-serialiser'); var FetchQueryResult = require('services/fetch-query/fetch-query-result'); var FetchTopicResult = require('services/fetch-query/fetch-topic-result'); var TopicType = require('../../../topics/topics').TopicType; function readProperties(input) { return Codec.readDictionary(input, Codec.readString); } function readFetchTopicResult(input) { var path = Codec.readString(input); var type = BEES.read(input, TopicType); var valueOption = Codec.readByte(input); var value = (valueOption !== 0) ? Codec.readBytes(input) : undefined; var propertiesIndex = Codec.readInt32(input); return new FetchTopicResult(path, type, value, propertiesIndex); } var serialiser = { read : function(input) { var properties = Codec.readCollection(input, readProperties); var results = Codec.readCollection(input, readFetchTopicResult); var hasMore = Codec.readBoolean(input); return new FetchQueryResult(properties, results, hasMore); } }; module.exports = serialiser;