backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
118 lines (117 loc) • 4.28 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(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 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);