UNPKG

diffusion

Version:

Diffusion JavaScript client

36 lines (30 loc) 1.37 kB
var Codec = require('io/codec'); var UpdateConstraints = require('topic-update/update-constraint'); var UnconstrainedSerialiser = require('./unconstrained-serialiser'); var ConjunctionSerialiser = require('./conjunction-serialiser'); var BinaryValueSerialiser = require('./binary-value-serialiser'); var NoValueSerialiser = require('./no-value-serialiser'); var LockedSerialiser = require('./locked-serialiser'); var NoTopicSerialiser = require('./no-topic-serialiser'); var PartialJSONSerialiser = require('./partial-json-serialiser'); var ConstraintSerialisers = { UNCONSTRAINED: UnconstrainedSerialiser, CONJUNCTION: ConjunctionSerialiser, BINARY_VALUE: BinaryValueSerialiser, NO_VALUE: NoValueSerialiser, LOCKED: LockedSerialiser, NO_TOPIC: NoTopicSerialiser, PARTIAL_JSON: PartialJSONSerialiser }; var serialiser = { write : function(output, constraint) { if (constraint.getConstraintType === undefined || UpdateConstraints.ConstraintType[constraint.getConstraintType()] === undefined ) { throw new Error("Unknown constraint type"); } Codec.writeByte(output, UpdateConstraints.ConstraintType[constraint.getConstraintType()]); ConstraintSerialisers[constraint.getConstraintType()].write(output, constraint, this.write); } }; module.exports = serialiser;