UNPKG

backendless

Version:

Backendless JavaScript SDK for Node.js and the browser

126 lines (125 loc) 6.5 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(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } 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']));