UNPKG

diffusion

Version:

Diffusion JavaScript client

43 lines (42 loc) 1.96 kB
"use strict"; /** * @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;