UNPKG

nosqlite3

Version:

A lightweight embedded document database, ideal for small web applications.

62 lines (50 loc) 1.34 kB
/** * @author Johan Wirén */ module.exports = class Filter { static eq(field, value) { return field + "=" + value; } static ne(field, value) { return field + "!=" + value; } static gt(field, value) { return field + ">" + value; } static gte(field, value) { return field + ">=" + value; } static lt(field, value) { return field + "<" + value; } static lte(field, value) { return field + "<=" + value; } static text(field, value) { return field + "=~" + value; } static regex(field, regex) { return field + "~~" + regex; } static not(value) { return "!(" + value + ")"; } static in(field, ...values) { if(Array.isArray(values[0])) { return field + "==[" + values[0] + "]"; } return field + "==[" + values + "]"; } static and(...filters) { for(let i = 0; i < filters.length; i++) { if(filters[i].includes("&&") || filters[i].includes("||")) { filters[i] = "(" + filters[i] + ")"; } } return filters.join("&&"); } static or(...filters) { for (let i = 0; i < filters.length; i++) { if (filters[i].includes("&&") || filters[i].includes("||")) { filters[i] = "(" + filters[i] + ")"; } } return filters.join("||"); } }