@mic-rexjs/usecases
Version:
Usecases of Clean Architecture
74 lines (73 loc) • 3.63 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.dataListUseCase = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _arrayUseCase = require("../arrayUseCase");
var _getDataKeyValue = require("./methods/getDataKeyValue");
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; }
var dataListUseCase = exports.dataListUseCase = function dataListUseCase() {
var arrayReducers = (0, _arrayUseCase.arrayUseCase)();
var extractEntity = arrayReducers.extractEntity;
var extractEntityBy = function extractEntityBy(entity, target) {
var expect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
return extractEntity(entity, function (item) {
var value = (0, _getDataKeyValue.getDataKeyValue)(item);
return value === target === expect;
});
};
var filterEntityBy = /*#__PURE__*/_regenerator["default"].mark(function filterEntityBy(entity, target, expect) {
return _regenerator["default"].wrap(function filterEntityBy$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return extractEntityBy(entity, target, expect);
case 2:
return _context.abrupt("return", _context.sent);
case 3:
case "end":
return _context.stop();
}
}, filterEntityBy);
});
var replaceEntity = function replaceEntity(entity, newItem) {
var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _getDataKeyValue.getDataKeyValue)(newItem);
return /*#__PURE__*/_regenerator["default"].mark(function _callee() {
var index, targetItem, newEntity;
return _regenerator["default"].wrap(function _callee$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
index = entity.findIndex(function (item) {
var value = (0, _getDataKeyValue.getDataKeyValue)(item);
return value === target;
});
if (!(index === -1)) {
_context2.next = 3;
break;
}
return _context2.abrupt("return", null);
case 3:
targetItem = entity[index];
newEntity = entity.slice();
newEntity[index] = newItem;
_context2.next = 8;
return newEntity;
case 8:
return _context2.abrupt("return", targetItem);
case 9:
case "end":
return _context2.stop();
}
}, _callee);
})();
};
return _objectSpread(_objectSpread({}, arrayReducers), {}, {
extractEntityBy: extractEntityBy,
filterEntityBy: filterEntityBy,
replaceEntity: replaceEntity
});
};