UNPKG

nestjs-keyset-paginator

Version:

a simple pagination library made for nestjs(mongoose) by hungreebee technologies

45 lines (44 loc) 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generatePaginationFilter = void 0; const pagination_dto_1 = require("./pagination.dto"); const generate_mongo_filter_key_name_1 = require("../common/generate-mongo-filter-key-name"); /** * @param {filterDto[]} filter */ const generatePaginationFilter = (filter) => { const filter_fn = {}; for (const filterElement of filter) { if (filterElement instanceof pagination_dto_1.filterDto) { console.log('instanceof filterDto'); // console.log('filterElement: ', filterElement) if (filterElement.operator === 'regex') { let exp = new RegExp(filterElement.value, 'i'); if (filterElement.mode === 'swm') { exp = new RegExp('^' + filterElement.value + '.*', 'i'); } if (filterElement.mode === 'bnm') { exp = new RegExp('.*' + filterElement.value + '.*', 'i'); } if (filterElement.mode === 'ewm') { // console.log('EWM\n'); exp = new RegExp(filterElement.value + '.*', 'i'); } filter_fn[(0, generate_mongo_filter_key_name_1.generateMongoFilterKeyName)(filterElement.name)] = { ['$' + filterElement.operator]: exp }; } else if (filterElement.operator === 'in' || filterElement.operator === 'nin') { filter_fn[(0, generate_mongo_filter_key_name_1.generateMongoFilterKeyName)(filterElement.name)] = { ['$' + filterElement.operator]: filterElement.arr_value }; } else filter_fn[(0, generate_mongo_filter_key_name_1.generateMongoFilterKeyName)(filterElement.name)] = { ['$' + filterElement.operator]: filterElement.value }; } } return filter_fn; }; exports.generatePaginationFilter = generatePaginationFilter;