backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
118 lines (117 loc) • 4.06 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
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 OperationTypes = {
SET: 'JSON_SET',
INSERT: 'JSON_INSERT',
REPLACE: 'JSON_REPLACE',
REMOVE: 'JSON_REMOVE',
ARRAY_APPEND: 'JSON_ARRAY_APPEND',
ARRAY_INSERT: 'JSON_ARRAY_INSERT'
};
var JSONUpdateBuilder = /*#__PURE__*/function () {
function JSONUpdateBuilder(operationName) {
(0, _classCallCheck2["default"])(this, JSONUpdateBuilder);
this.operationName = operationName;
this.args = {};
}
(0, _createClass2["default"])(JSONUpdateBuilder, [{
key: "addArgument",
value: function addArgument(arg, argValue) {
if (argValue === undefined) {
throw new Error('You have to specify function\'s second argument');
}
this.args[arg] = argValue;
return this;
}
}, {
key: "toJSON",
value: function toJSON() {
this.validate();
return {
___operation: this.operationName,
args: this.args
};
}
}, {
key: "create",
value: function create() {
return this.toJSON();
}
}, {
key: "validate",
value: function validate() {
if (!Object.keys(this.args).length) {
throw new Error('You have to add at least one argument');
}
}
}], [{
key: "SET",
value: function SET() {
return new JSONUpdateBuilder(OperationTypes.SET);
}
}, {
key: "INSERT",
value: function INSERT() {
return new JSONUpdateBuilder(OperationTypes.INSERT);
}
}, {
key: "REPLACE",
value: function REPLACE() {
return new JSONUpdateBuilder(OperationTypes.REPLACE);
}
}, {
key: "REMOVE",
value: function REMOVE() {
return new JSONRemoveBuilder();
}
}, {
key: "ARRAY_APPEND",
value: function ARRAY_APPEND() {
return new JSONUpdateBuilder(OperationTypes.ARRAY_APPEND);
}
}, {
key: "ARRAY_INSERT",
value: function ARRAY_INSERT() {
return new JSONUpdateBuilder(OperationTypes.ARRAY_INSERT);
}
}]);
return JSONUpdateBuilder;
}();
exports["default"] = JSONUpdateBuilder;
var JSONRemoveBuilder = /*#__PURE__*/function (_JSONUpdateBuilder) {
(0, _inherits2["default"])(JSONRemoveBuilder, _JSONUpdateBuilder);
var _super = _createSuper(JSONRemoveBuilder);
function JSONRemoveBuilder() {
var _this;
(0, _classCallCheck2["default"])(this, JSONRemoveBuilder);
_this = _super.call(this, OperationTypes.REMOVE);
_this.args = [];
return _this;
}
(0, _createClass2["default"])(JSONRemoveBuilder, [{
key: "addArgument",
value: function addArgument(arg) {
this.args.push(arg);
return this;
}
}, {
key: "validate",
value: function validate() {
if (!this.args.length) {
throw new Error('You have to add at least one argument');
}
}
}]);
return JSONRemoveBuilder;
}(JSONUpdateBuilder);