diffusion
Version:
Diffusion JavaScript client
43 lines (42 loc) • 1.96 kB
JavaScript
;
/**
* @module Services.TopicUpdate
*/
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.write = void 0;
var errors_1 = require("./../../../errors/errors");
var Codec = require("./../../io/codec");
var update_constraint_1 = require("./../../topic-update/update-constraint");
var CompoundSerialiser = require("./compound-serialiser");
var LockedSerialiser = require("./locked-serialiser");
var NoTopicSerialiser = require("./no-topic-serialiser");
var NoValueSerialiser = require("./no-value-serialiser");
var PartialJSONSerialiser = require("./partial-json-serialiser");
var TopicValueConstraintSerialiser = require("./topic-value-constraint-serialiser");
var UnconstrainedSerialiser = require("./unconstrained-serialiser");
/**
* The serialisers for each constraint type
*/
var constraintSerialisers = (_a = {},
_a[update_constraint_1.ConstraintType.UNCONSTRAINED] = UnconstrainedSerialiser,
_a[update_constraint_1.ConstraintType.CONJUNCTION] = CompoundSerialiser,
_a[update_constraint_1.ConstraintType.TOPIC_VALUE] = TopicValueConstraintSerialiser,
_a[update_constraint_1.ConstraintType.NO_VALUE] = NoValueSerialiser,
_a[update_constraint_1.ConstraintType.LOCKED] = LockedSerialiser,
_a[update_constraint_1.ConstraintType.NO_TOPIC] = NoTopicSerialiser,
_a[update_constraint_1.ConstraintType.PARTIAL_JSON] = PartialJSONSerialiser,
_a[update_constraint_1.ConstraintType.DISJUNCTION] = CompoundSerialiser,
_a);
/**
* Write an {@link UpdateConstraint} update constraint to the stream
*/
function write(bos, value) {
if (value.getConstraintType === undefined
|| update_constraint_1.ConstraintType[value.getConstraintType()] === undefined) {
throw new errors_1.IOError('Unknown constraint type');
}
Codec.writeByte(bos, value.getConstraintType());
constraintSerialisers[value.getConstraintType()].write(bos, value, write);
}
exports.write = write;