canner
Version:
Build CMS in few lines of code for different data sources
199 lines (171 loc) • 6.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isCreateArray = isCreateArray;
exports.isCreateNestedArrayInArray = isCreateNestedArrayInArray;
exports.isCreateNestedArrayInObject = isCreateNestedArrayInObject;
exports.isCreateAndConnect = isCreateAndConnect;
exports.isDeleteArray = isDeleteArray;
exports.isDeleteNestedArrayInArray = isDeleteNestedArrayInArray;
exports.isDeleteNestedArrayInObject = isDeleteNestedArrayInObject;
exports.isDisconnectAndDelete = isDisconnectAndDelete;
exports.isUpdateArray = isUpdateArray;
exports.isUpdateObject = isUpdateObject;
exports.isUpdateConnect = isUpdateConnect;
exports.isSwapRootArray = isSwapRootArray;
exports.isSwapArrayInArray = isSwapArrayInArray;
exports.isSwapArrayInObject = isSwapArrayInObject;
exports.isConnect = isConnect;
exports.isDisconnect = isDisconnect;
exports.isArrayAction = isArrayAction;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _lodash = require("lodash");
/**
|--------------------------------------------------
| create
|--------------------------------------------------
*/
function isCreateArray(_ref) {
var id = _ref.id,
updateType = _ref.updateType,
rootValue = _ref.rootValue,
relation = _ref.relation;
return idLength(id) === 1 && updateType === 'create' && isArrayAction(rootValue, id) && !relation;
}
function isCreateNestedArrayInArray(_ref2) {
var id = _ref2.id,
updateType = _ref2.updateType,
rootValue = _ref2.rootValue,
relation = _ref2.relation;
return idLength(id) > 2 && updateType === 'create' && isArrayAction(rootValue, id) && !relation;
}
function isCreateNestedArrayInObject(_ref3) {
var id = _ref3.id,
updateType = _ref3.updateType,
rootValue = _ref3.rootValue,
relation = _ref3.relation;
return idLength(id) > 1 && updateType === 'create' && isObjectAction(rootValue, id) && !relation;
}
function isCreateAndConnect(_ref4) {
var id = _ref4.id,
updateType = _ref4.updateType,
relation = _ref4.relation;
return idLength(id) > 2 && updateType === 'create' && relation;
}
/**
|--------------------------------------------------
| delete
|--------------------------------------------------
*/
function isDeleteArray(_ref5) {
var id = _ref5.id,
updateType = _ref5.updateType,
rootValue = _ref5.rootValue,
relation = _ref5.relation;
return idLength(id) === 2 && updateType === 'delete' && isArrayAction(rootValue, id) && !relation;
}
function isDeleteNestedArrayInArray(_ref6) {
var id = _ref6.id,
updateType = _ref6.updateType,
rootValue = _ref6.rootValue,
relation = _ref6.relation;
return idLength(id) > 2 && updateType === 'delete' && isArrayAction(rootValue, id) && !relation;
}
function isDeleteNestedArrayInObject(_ref7) {
var id = _ref7.id,
updateType = _ref7.updateType,
rootValue = _ref7.rootValue,
relation = _ref7.relation;
return idLength(id) > 1 && updateType === 'delete' && isObjectAction(rootValue, id) && !relation;
}
function isDisconnectAndDelete(_ref8) {
var id = _ref8.id,
updateType = _ref8.updateType,
relation = _ref8.relation;
return idLength(id) > 1 && updateType === 'delete' && relation;
}
/**
|--------------------------------------------------
| update
|--------------------------------------------------
*/
function isUpdateArray(_ref9) {
var id = _ref9.id,
updateType = _ref9.updateType,
rootValue = _ref9.rootValue,
relation = _ref9.relation;
return idLength(id) >= 2 && updateType === 'update' && isArrayAction(rootValue, id) && !relation;
}
function isUpdateObject(_ref10) {
var id = _ref10.id,
updateType = _ref10.updateType,
rootValue = _ref10.rootValue,
relation = _ref10.relation;
return idLength(id) >= 1 && updateType === 'update' && isObjectAction(rootValue, id) && !relation;
}
function isUpdateConnect(_ref11) {
var id = _ref11.id,
updateType = _ref11.updateType,
rootValue = _ref11.rootValue,
relation = _ref11.relation;
return idLength(id) >= 4 && updateType === 'update' && isArrayAction(rootValue, id) && relation;
}
/**
|--------------------------------------------------
| swap
|--------------------------------------------------
*/
function isSwapRootArray(_ref12) {
var id = _ref12.id,
updateType = _ref12.updateType,
rootValue = _ref12.rootValue,
relation = _ref12.relation;
return updateType === 'swap' && (0, _typeof2.default)(id) === 'object' && idLength(id.firstId) === 2 && isArrayAction(rootValue, id.firstId) && !relation;
}
function isSwapArrayInArray(_ref13) {
var id = _ref13.id,
updateType = _ref13.updateType,
rootValue = _ref13.rootValue,
relation = _ref13.relation;
return updateType === 'swap' && (0, _typeof2.default)(id) === 'object' && idLength(id.firstId) > 2 && isArrayAction(rootValue, id.firstId) && !relation;
}
function isSwapArrayInObject(_ref14) {
var id = _ref14.id,
updateType = _ref14.updateType,
rootValue = _ref14.rootValue,
relation = _ref14.relation;
return updateType === 'swap' && (0, _typeof2.default)(id) === 'object' && idLength(id.firstId) > 1 && isObjectAction(rootValue, id.firstId) && !relation;
}
/**
|--------------------------------------------------
| connect
|--------------------------------------------------
*/
function isConnect(_ref15) {
var id = _ref15.id,
updateType = _ref15.updateType,
relation = _ref15.relation;
return idLength(id) > 1 && updateType === 'connect' && relation;
}
/**
|--------------------------------------------------
| disconnect
|--------------------------------------------------
*/
function isDisconnect(_ref16) {
var id = _ref16.id,
updateType = _ref16.updateType,
relation = _ref16.relation;
return idLength(id) > 1 && updateType === 'disconnect' && relation;
}
function idLength(id) {
return typeof id === 'string' && id.split('/').length;
}
function isObjectAction(rootValue, id) {
return (0, _lodash.isPlainObject)(rootValue[id.split('/')[0]]);
}
function isArrayAction(rootValue, id) {
return (0, _lodash.isArray)(rootValue[id.split('/')[0]]);
}