backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
67 lines (66 loc) • 1.96 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var Counter = /*#__PURE__*/function () {
function Counter(name, counters) {
(0, _classCallCheck2["default"])(this, Counter);
if (!name || typeof name !== 'string') {
throw new Error('Counter Name must be non empty String');
}
this.name = name;
this.counters = counters;
}
(0, _createClass2["default"])(Counter, [{
key: "incrementAndGet",
value: function incrementAndGet() {
return this.counters.incrementAndGet(this.name);
}
}, {
key: "getAndIncrement",
value: function getAndIncrement() {
return this.counters.getAndIncrement(this.name);
}
}, {
key: "decrementAndGet",
value: function decrementAndGet() {
return this.counters.decrementAndGet(this.name);
}
}, {
key: "getAndDecrement",
value: function getAndDecrement() {
return this.counters.getAndDecrement(this.name);
}
}, {
key: "reset",
value: function reset() {
return this.counters.reset(this.name);
}
}, {
key: "get",
value: function get() {
return this.counters.get(this.name);
}
}, {
key: "addAndGet",
value: function addAndGet(value) {
return this.counters.addAndGet(this.name, value);
}
}, {
key: "getAndAdd",
value: function getAndAdd(value) {
return this.counters.getAndAdd(this.name, value);
}
}, {
key: "compareAndSet",
value: function compareAndSet(expected, updated) {
return this.counters.compareAndSet(this.name, expected, updated);
}
}]);
return Counter;
}();
exports["default"] = Counter;