UNPKG

adonis-api-resources

Version:
40 lines (39 loc) 1.12 kB
export default class PaginatedProcessor { collectionProcessor; constructor(collectionProcessor) { this.collectionProcessor = collectionProcessor; } extractCollection(data) { return 'rows' in data ? data.rows : data.data; } extractMeta(data) { if ('getMeta' in data) { if (typeof data.getMeta === 'function') { return data.getMeta(); } else { return data.meta; } } else return {}; } pick(data, ...keys) { return { meta: this.extractMeta(data), data: this.collectionProcessor.pick(this.extractCollection(data), ...keys), }; } omit(data, ...keys) { return { meta: this.extractMeta(data), data: this.collectionProcessor.omit(this.extractCollection(data), ...keys), }; } remap(data, defineMap) { return { meta: this.extractMeta(data), data: this.collectionProcessor.remap(this.extractCollection(data), defineMap), }; } }