in js/vnext/data-source/memory.js [36:76]
query(params) {
const {
skip = 0,
take = this.data.length - skip,
filter = truthy,
orderby = [],
} = params || {};
if (this._cache.seed !== this.data || !_.isEqual(this._cache.query, { filter, orderby })) {
const { key, direction } = _.first(orderby) || {};
let sortIteratee = null;
if (_.isFunction(key)) {
sortIteratee = key;
} else if (_.isString(key)) {
const segs = key.split(/[\.\/]/);
sortIteratee = item => _.reduce(segs, (memo, seg) => _.result(memo, seg), item);
}
let data = _.filter(this.data, filter);
if (sortIteratee) {
data = _.sortBy(data, sortIteratee);
if (direction < 0) {
data.reverse();
}
}
this._cache = {
seed: this.data,
query: { filter, orderby },
data,
};
}
return {
totalCount: this._cache.data.length,
items: this._cache.data.slice(skip, skip + take),
};
}