@nova-odm/auto-marshaller
Version:
A data marshaller that converts JavaScript types into Amazon DynamoDB AttributeValues
61 lines (60 loc) • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NumberValueSet = void 0;
var tslib_1 = require("tslib");
var ObjectSet_1 = require("./ObjectSet");
var NumberValue_1 = require("./NumberValue");
/**
* A set of numeric values represented internally as NumberValue objects.
* Equality is determined by the string representation of the number and not by
* the identity or data type of the provided value.
*/
var NumberValueSet = /** @class */ (function (_super) {
tslib_1.__extends(NumberValueSet, _super);
function NumberValueSet() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* @inheritDoc
*
* If a number or string is provided, it will be converted to a NumberValue
* object.
*/
NumberValueSet.prototype.add = function (value) {
if (typeof value === 'number' || typeof value === 'string') {
value = new NumberValue_1.NumberValue(value);
}
_super.prototype.add.call(this, value);
return this;
};
NumberValueSet.prototype.delete = function (value) {
var valueString = value.toString();
var scrubbedValues = this._values
.filter(function (item) { return item.toString() !== valueString; });
var numRemoved = this._values.length - scrubbedValues.length;
this._values = scrubbedValues;
return numRemoved > 0;
};
NumberValueSet.prototype.has = function (value) {
var e_1, _a;
var valueString = value.toString();
try {
for (var _b = tslib_1.__values(this), _c = _b.next(); !_c.done; _c = _b.next()) {
var item = _c.value;
if (item.toString() === valueString) {
return true;
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return false;
};
return NumberValueSet;
}(ObjectSet_1.ObjectSet));
exports.NumberValueSet = NumberValueSet;