UNPKG

diffusion

Version:

Diffusion JavaScript client

86 lines (85 loc) 3.96 kB
"use strict"; /** * @module TopicUpdate */ Object.defineProperty(exports, "__esModule", { value: true }); exports.updateConstraintFactory = exports.UpdateConstraintFactoryImpl = void 0; var errors_1 = require("./../../errors/errors"); var abstract_datatype_1 = require("./../data/abstract-datatype"); var bytes_impl_1 = require("./../data/bytes-impl"); var datatypes_1 = require("./../data/datatypes"); var topic_constraints_1 = require("./../topic-update/topic-constraints"); var update_constraint_1 = require("./../topic-update/update-constraint"); var require_non_null_1 = require("./../util/require-non-null"); var update_constraint_2 = require("../../topic-update/update-constraint"); var topic_constraints_2 = require("./topic-constraints"); /** * Implementation of {@link UpdateConstraintFactory} */ var UpdateConstraintFactoryImpl = /** @class */ (function () { function UpdateConstraintFactoryImpl() { } /** * @inheritdoc */ UpdateConstraintFactoryImpl.prototype.locked = function (lock) { return new update_constraint_1.Locked(lock); }; /** * @inheritdoc */ // eslint-disable-next-line complexity UpdateConstraintFactoryImpl.prototype.value = function (valueOrOperator, dataTypeOrValue, dataTypeNewApi) { var oldApi = arguments.length === 1 || (arguments.length === 2 && arguments[1] instanceof abstract_datatype_1.AbstractDataType); var operator = oldApi ? update_constraint_2.UpdateConstraintOperator.IS : valueOrOperator; var value = oldApi ? valueOrOperator : dataTypeOrValue; var dataType = oldApi ? dataTypeOrValue : dataTypeNewApi; require_non_null_1.requireNonNull(value, 'value'); require_non_null_1.requireNonNull(operator, 'operator'); var valueType = ((dataType !== undefined) ? dataType : datatypes_1.DataTypes.getByValue(value)); if (valueType === undefined) { throw new errors_1.IllegalArgumentError('Datatype invalid or could not be inferred'); } if (operator === update_constraint_2.UpdateConstraintOperator.IS) { var bytes = (value instanceof bytes_impl_1.BytesImpl) ? value : valueType.toBytes(value); return new topic_constraints_2.TopicValueConstraint(update_constraint_2.UpdateConstraintOperator.IS, update_constraint_1.ConstraintValueType.BINARY, bytes); } if (valueType === datatypes_1.DataTypes.string()) { if (!topic_constraints_1.isEqualityOperator(operator)) { throw new errors_1.IllegalArgumentError('Invalid operator for String value'); } } else if (valueType !== datatypes_1.DataTypes.double() && valueType !== datatypes_1.DataTypes.int64()) { throw new errors_1.IllegalArgumentError("value type " + valueType.name() + " is not supported with " + ("the " + update_constraint_2.UpdateConstraintOperator[operator] + " operator")); } return new topic_constraints_2.TopicValueConstraint(operator, update_constraint_1.ConstraintValueType[valueType.name().toUpperCase()], valueType.toBytes(value)); }; /** * @inheritdoc */ UpdateConstraintFactoryImpl.prototype.noValue = function () { return new topic_constraints_1.NoValue(); }; /** * @inheritdoc */ UpdateConstraintFactoryImpl.prototype.noTopic = function () { return new topic_constraints_1.NoTopic(); }; /** * @inheritdoc */ UpdateConstraintFactoryImpl.prototype.jsonValue = function () { return new topic_constraints_1.PartialJSONImpl(); }; return UpdateConstraintFactoryImpl; }()); exports.UpdateConstraintFactoryImpl = UpdateConstraintFactoryImpl; /** * The UpdateConstraintFactory singleton instance */ var updateConstraintFactory = Object.freeze(new UpdateConstraintFactoryImpl()); exports.updateConstraintFactory = updateConstraintFactory;