UNPKG

@blogcode/nest-typeorm-pagination

Version:
47 lines (46 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MAX_LIMIT = exports.DEFAULT_LIMIT = void 0; exports.isBaseType = isBaseType; exports.getFilters = getFilters; exports.getOrder = getOrder; exports.getCursorDirection = getCursorDirection; exports.DEFAULT_LIMIT = 10; exports.MAX_LIMIT = 1000; function isBaseType(value) { return ['string', 'number', 'boolean'].includes(typeof value) || value === null; } function getFilters(query) { const filters = {}; if (typeof (query === null || query === void 0 ? void 0 : query.filters) === 'object') { Object.keys(query.filters).forEach((key) => { const value = query.filters[key]; if (typeof value === 'object') { filters[key] = { value: value.value, operator: value.operator, }; } else if (isBaseType(value)) { filters[key] = { value, operator: 'eq', }; } }); } return filters; } function getOrder(query) { const order = {}; if (typeof (query === null || query === void 0 ? void 0 : query.order) === 'object') { Object.keys(query.order).forEach((key) => { order[key] = parseInt(query.order[key]) === 1 ? 1 : 0; }); } return order; } function getCursorDirection(query) { const direction = query === null || query === void 0 ? void 0 : query.direction; return (direction === null || direction === void 0 ? void 0 : direction.toLowerCase()) === 'prev' ? 'prev' : 'next'; }