lore-hook-connect
Version:
A lore hook that generates dialogs using Bootstrap
66 lines (52 loc) • 1.57 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _lodash = require("lodash");
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* All Connection Blueprint
*/
exports.default = {
defaults: {
where: function where(model) {
return true;
},
exclude: function exclude(model) {
return false;
},
sortBy: function sortBy(model) {
return true;
}
},
verifyParams: function verifyParams(params) {
if (!_lodash2.default.isFunction(params.where)) {
throw new Error("The 'where' field must be a function");
}
if (!_lodash2.default.isFunction(params.exclude)) {
throw new Error("The 'exclude' field must be a function");
}
if (!_lodash2.default.isFunction(params.sortBy)) {
throw new Error("The 'sortBy' field must be a function");
}
},
getAction: function getAction(actions) {
// no op
},
getPayload: function getPayload(reducerState, params) {
var transformed = _lodash2.default.transform(reducerState, function (result, model) {
result.push(model);
}, []);
var filtered = _lodash2.default.filter(transformed, params.where);
var excluded = _lodash2.default.filter(filtered, function (model) {
return !params.exclude(model);
});
var sorted = _lodash2.default.sortBy(excluded, params.sortBy);
return {
state: 'RESOLVED',
data: sorted
};
}
};
module.exports = exports["default"];
;