@warlock.js/cascade
Version:
ORM for managing databases
129 lines (128 loc) • 4.95 kB
JavaScript
import {parseDate,createColumnsObject,returnAsArray}from'./utils.js';const dateFilters = {
date: ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateFormat);
if (column) {
query.where(column, dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, dateValue));
}
},
"date>": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateFormat);
if (column) {
query.where(column, ">", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $gt: dateValue }));
}
},
"date>=": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateFormat);
if (column) {
query.where(column, ">=", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $gte: dateValue }));
}
},
"date<": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateFormat);
if (column) {
query.where(column, "<", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $lt: dateValue }));
}
},
"date<=": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateFormat);
if (column) {
query.where(column, "<=", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $lte: dateValue }));
}
},
inDate: ({ column, columns, value, query, options }) => {
const values = returnAsArray(value).map(v => parseDate(v, options?.dateFormat));
if (column) {
query.whereIn(column, values);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $in: values }));
}
},
dateBetween: ({ column, columns, value, query, options }) => {
const values = returnAsArray(value).map(v => parseDate(v, options?.dateFormat));
if (column) {
query.whereDateBetween(column, [values[0], values[1]]);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $between: values }));
}
},
dateTime: ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateTimeFormat);
if (column) {
query.where(column, dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, dateValue));
}
},
"dateTime>": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateTimeFormat);
if (column) {
query.where(column, ">", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $gt: dateValue }));
}
},
"dateTime>=": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateTimeFormat);
if (column) {
query.where(column, ">=", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $gte: dateValue }));
}
},
"dateTime<": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateTimeFormat);
if (column) {
query.where(column, "<", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $lt: dateValue }));
}
},
"dateTime<=": ({ column, columns, value, query, options }) => {
const dateValue = parseDate(value, options?.dateTimeFormat);
if (column) {
query.where(column, "<=", dateValue);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $lte: dateValue }));
}
},
inDateTime: ({ column, columns, value, query, options }) => {
const values = returnAsArray(value).map(v => parseDate(v, options?.dateTimeFormat));
if (column) {
query.whereIn(column, values);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $in: values }));
}
},
dateTimeBetween: ({ column, columns, value, query, options }) => {
const values = returnAsArray(value).map(v => parseDate(v, options?.dateTimeFormat));
if (column) {
query.whereDateBetween(column, [values[0], values[1]]);
}
else if (columns) {
query.orWhere(createColumnsObject(columns, { $between: values }));
}
},
};export{dateFilters};//# sourceMappingURL=date-filters.js.map