UNPKG

als-mongo-list

Version:

A flexible, lightweight MongoDB query utility for Node.js applications. Simplifies database operations with intuitive filtering, pagination, sorting, and field selection. Ideal for REST API endpoints, providing a primary List class that abstracts complex

21 lines (20 loc) 876 B
function buildSearch(strings = [],obj) { if (strings.length === 0) return; if(strings.length === 1) { const key = strings[0].key obj.inputs[key] = { tag: 'input', type: 'search', name: key } obj.validators[key] = (v,search) => { if(v) search[key] = { $regex: String(v), $options: 'i' } } } else { obj.validators.search = (v, search,query) => { search.$or = strings.map(({ key }) => { return v === '' || query[key] === 'false' ? null : {[key]:{ $regex: String(v), $options: 'i' }} }).filter(Boolean) } const keys = strings.map(({key}) => { obj.validators[key] = () => {} return { tag: 'input', type: 'checkbox', name: key, checked:true } }) obj.inputs.search = { tag: 'input', type: 'search', name: 'search', keys } } } module.exports = buildSearch