UNPKG

sluicebox

Version:

Quickly and elegantly add search, sort and pagination to your plural resource endpoints.

36 lines (31 loc) 967 B
(function() { var identity, search; identity = require('lodash').identity; search = require('./search'); module.exports = function(field_mapper) { var field_for, field_mappings, value_for, value_mappers; field_mappings = {}; value_mappers = {}; field_for = function(field) { var ref; return (ref = field_mappings[field]) != null ? ref : (field_mapper != null ? field_mapper : identity)(field); }; value_for = function(field, value) { var ref; return ((ref = value_mappers[field]) != null ? ref : identity)(value); }; return { map: function(from, to) { field_mappings[from] = to; return this; }, normalize: function(field, mapper) { value_mappers[field] = mapper; return this; }, search: require('./search')(field_for, value_for), sort: require('./sort')(field_for), paginate: require('./paginate') }; }; }).call(this);