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

19 lines (15 loc) 833 B
function isValidNumber(v, search, subKey, key, { min, max, step }) { v = Number(v) if (isNaN(v) || (min !== undefined && v < min) || (max !== undefined && v > max)) return if (step !== undefined && (v * (1 / step)) % 1 !== 0) return; if (!search[key]) search[key] = {}; search[key][subKey] = v }; function number(key, item, obj) { const { min, max, step } = item obj.validators[`${key}_gte`] = (v, search) => isValidNumber(v, search, '$gte', key, item); obj.validators[`${key}_lte`] = (v, search) => isValidNumber(v, search, '$lte', key, item); obj.inputs[`${key}_gte`] = { tag: 'input', type: 'number', name: `${key}_gte`, min, max, step } obj.inputs[`${key}_lte`] = { tag: 'input', type: 'number', name: `${key}_lte`, min, max, step } } module.exports = { number, isValidNumber }