UNPKG

backendless

Version:

Backendless JavaScript SDK for Node.js and the browser

126 lines (125 loc) 6.13 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.KeyValueStore = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _constants = require("../constants"); var _baseStore = require("./base-store"); var _utils = _interopRequireDefault(require("../../utils")); var _utils2 = require("../utils"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2["default"])(t); if (r) { var s = (0, _getPrototypeOf2["default"])(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2["default"])(this, e); }; } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var KeyValueStore = /*#__PURE__*/function (_HiveStore) { (0, _inherits2["default"])(KeyValueStore, _HiveStore); var _super = _createSuper(KeyValueStore); function KeyValueStore() { (0, _classCallCheck2["default"])(this, KeyValueStore); return _super.apply(this, arguments); } (0, _createClass2["default"])(KeyValueStore, [{ key: "get", value: function get() { return this.app.request.get({ url: this.getBaseURL() }); } }, { key: "set", value: function set(value, options) { return this.constructor.set.apply(_objectSpread(_objectSpread({}, this), this.constructor), [this.storeKey, value, options]); } }, { key: "increment", value: function increment(value) { if (isNaN(value) || typeof value !== 'number') { throw new Error('Value must be provided and must be a number.'); } return this.app.request.put({ url: "".concat(this.getBaseURL(), "/increment"), query: { value: value } }); } }, { key: "decrement", value: function decrement(value) { if (isNaN(value) || typeof value !== 'number') { throw new Error('Value must be provided and must be a number.'); } return this.app.request.put({ url: "".concat(this.getBaseURL(), "/decrement"), query: { value: value } }); } }], [{ key: "get", value: function get(keys) { if (!Array.isArray(keys)) { throw new Error('Keys must be provided and must be a list of strings.'); } return this.app.request.post({ url: this.app.urls.hiveStore(this.hiveName, this.TYPE), data: keys }); } }, { key: "set", value: function set(key, value, options) { if (_utils["default"].isObject(key)) { if (!Object.keys(key).length) { throw new Error('Provided object must have at least 1 key.'); } return this.app.request.put({ url: this.app.urls.hiveStore(this.hiveName, this.TYPE), data: key }); } if (!key || typeof key !== 'string') { throw new Error('Key must be provided and must be a string.'); } if (options !== undefined) { if (!_utils["default"].isObject(options)) { throw new Error('Options must be an object.'); } var ttl = options.ttl, expireAt = options.expireAt, condition = options.condition; if (ttl !== undefined && (isNaN(ttl) || typeof ttl !== 'number')) { throw new Error('TTL in seconds must be a number.'); } if (expireAt !== undefined && (isNaN(expireAt) || typeof expireAt !== 'number')) { throw new Error('ExpireAt timestamp must be a number.'); } if (condition !== undefined && !['IfExists', 'IfNotExists', 'Always'].includes(condition)) { throw new Error('Condition must be one of this values: [IfExists, IfNotExists, Always].'); } } if (!(0, _utils2.isHiveValueValid)(value)) { throw new Error('Value must be provided and must be one of types: string, number, boolean, object, array.'); } return this.app.request.put({ url: "".concat(this.app.urls.hiveStore(this.hiveName, this.TYPE), "/").concat(key), data: _objectSpread({ value: value }, options) }); } }]); return KeyValueStore; }(_baseStore.HiveStore); exports.KeyValueStore = KeyValueStore; (0, _defineProperty2["default"])(KeyValueStore, "TYPE", _constants.HiveTypes.KEY_VALUE); (0, _defineProperty2["default"])(KeyValueStore, "STATIC_METHODS", [].concat((0, _toConsumableArray2["default"])(_baseStore.HiveStore.STATIC_METHODS), ['get', 'set']));