UNPKG

diffusion

Version:

Diffusion JavaScript client

34 lines (29 loc) 1.02 kB
var Codec = require('io/codec'); var LEESS = require('serialisers/long-encoded-enum-set-serialiser'); var TopicSelectorSerialiser = require('topics/topic-selector-serialiser'); function writeLimit(output, limit) { if (limit === undefined) { Codec.writeByte(output, 0); } else { Codec.writeByte(output, 1); Codec.writeString(output, limit.path); Codec.writeBoolean(output, limit.includesPath); } } function writeRange(output, range) { writeLimit(output, range.from); writeLimit(output, range.to); } var serialiser = { write : function(output, query) { TopicSelectorSerialiser.write(output, query.selector); writeRange(output, query.range); LEESS.write(output, query.topicTypes); Codec.writeBoolean(output, query.withValues); Codec.writeBoolean(output, query.withProperties); Codec.writeInt32(output, query.limit); Codec.writeInt32(output, query.maximumResultSize); } }; module.exports = serialiser;