Initial commit
This commit is contained in:
184
node_modules/drizzle-orm/sql/expressions/conditions.js
generated
vendored
Normal file
184
node_modules/drizzle-orm/sql/expressions/conditions.js
generated
vendored
Normal file
@ -0,0 +1,184 @@
|
||||
import { Column } from "../../column.js";
|
||||
import { is } from "../../entity.js";
|
||||
import { Table } from "../../table.js";
|
||||
import {
|
||||
isDriverValueEncoder,
|
||||
isSQLWrapper,
|
||||
Param,
|
||||
Placeholder,
|
||||
SQL,
|
||||
sql,
|
||||
StringChunk,
|
||||
View
|
||||
} from "../sql.js";
|
||||
function bindIfParam(value, column) {
|
||||
if (isDriverValueEncoder(column) && !isSQLWrapper(value) && !is(value, Param) && !is(value, Placeholder) && !is(value, Column) && !is(value, Table) && !is(value, View)) {
|
||||
return new Param(value, column);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
const eq = (left, right) => {
|
||||
return sql`${left} = ${bindIfParam(right, left)}`;
|
||||
};
|
||||
const ne = (left, right) => {
|
||||
return sql`${left} <> ${bindIfParam(right, left)}`;
|
||||
};
|
||||
function and(...unfilteredConditions) {
|
||||
const conditions = unfilteredConditions.filter(
|
||||
(c) => c !== void 0
|
||||
);
|
||||
if (conditions.length === 0) {
|
||||
return void 0;
|
||||
}
|
||||
if (conditions.length === 1) {
|
||||
return new SQL(conditions);
|
||||
}
|
||||
return new SQL([
|
||||
new StringChunk("("),
|
||||
sql.join(conditions, new StringChunk(" and ")),
|
||||
new StringChunk(")")
|
||||
]);
|
||||
}
|
||||
function or(...unfilteredConditions) {
|
||||
const conditions = unfilteredConditions.filter(
|
||||
(c) => c !== void 0
|
||||
);
|
||||
if (conditions.length === 0) {
|
||||
return void 0;
|
||||
}
|
||||
if (conditions.length === 1) {
|
||||
return new SQL(conditions);
|
||||
}
|
||||
return new SQL([
|
||||
new StringChunk("("),
|
||||
sql.join(conditions, new StringChunk(" or ")),
|
||||
new StringChunk(")")
|
||||
]);
|
||||
}
|
||||
function not(condition) {
|
||||
return sql`not ${condition}`;
|
||||
}
|
||||
const gt = (left, right) => {
|
||||
return sql`${left} > ${bindIfParam(right, left)}`;
|
||||
};
|
||||
const gte = (left, right) => {
|
||||
return sql`${left} >= ${bindIfParam(right, left)}`;
|
||||
};
|
||||
const lt = (left, right) => {
|
||||
return sql`${left} < ${bindIfParam(right, left)}`;
|
||||
};
|
||||
const lte = (left, right) => {
|
||||
return sql`${left} <= ${bindIfParam(right, left)}`;
|
||||
};
|
||||
function inArray(column, values) {
|
||||
if (Array.isArray(values)) {
|
||||
if (values.length === 0) {
|
||||
return sql`false`;
|
||||
}
|
||||
return sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;
|
||||
}
|
||||
return sql`${column} in ${bindIfParam(values, column)}`;
|
||||
}
|
||||
function notInArray(column, values) {
|
||||
if (Array.isArray(values)) {
|
||||
if (values.length === 0) {
|
||||
return sql`true`;
|
||||
}
|
||||
return sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;
|
||||
}
|
||||
return sql`${column} not in ${bindIfParam(values, column)}`;
|
||||
}
|
||||
function isNull(value) {
|
||||
return sql`${value} is null`;
|
||||
}
|
||||
function isNotNull(value) {
|
||||
return sql`${value} is not null`;
|
||||
}
|
||||
function exists(subquery) {
|
||||
return sql`exists ${subquery}`;
|
||||
}
|
||||
function notExists(subquery) {
|
||||
return sql`not exists ${subquery}`;
|
||||
}
|
||||
function between(column, min, max) {
|
||||
return sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam(
|
||||
max,
|
||||
column
|
||||
)}`;
|
||||
}
|
||||
function notBetween(column, min, max) {
|
||||
return sql`${column} not between ${bindIfParam(
|
||||
min,
|
||||
column
|
||||
)} and ${bindIfParam(max, column)}`;
|
||||
}
|
||||
function like(column, value) {
|
||||
return sql`${column} like ${value}`;
|
||||
}
|
||||
function notLike(column, value) {
|
||||
return sql`${column} not like ${value}`;
|
||||
}
|
||||
function ilike(column, value) {
|
||||
return sql`${column} ilike ${value}`;
|
||||
}
|
||||
function notIlike(column, value) {
|
||||
return sql`${column} not ilike ${value}`;
|
||||
}
|
||||
function arrayContains(column, values) {
|
||||
if (Array.isArray(values)) {
|
||||
if (values.length === 0) {
|
||||
throw new Error("arrayContains requires at least one value");
|
||||
}
|
||||
const array = sql`${bindIfParam(values, column)}`;
|
||||
return sql`${column} @> ${array}`;
|
||||
}
|
||||
return sql`${column} @> ${bindIfParam(values, column)}`;
|
||||
}
|
||||
function arrayContained(column, values) {
|
||||
if (Array.isArray(values)) {
|
||||
if (values.length === 0) {
|
||||
throw new Error("arrayContained requires at least one value");
|
||||
}
|
||||
const array = sql`${bindIfParam(values, column)}`;
|
||||
return sql`${column} <@ ${array}`;
|
||||
}
|
||||
return sql`${column} <@ ${bindIfParam(values, column)}`;
|
||||
}
|
||||
function arrayOverlaps(column, values) {
|
||||
if (Array.isArray(values)) {
|
||||
if (values.length === 0) {
|
||||
throw new Error("arrayOverlaps requires at least one value");
|
||||
}
|
||||
const array = sql`${bindIfParam(values, column)}`;
|
||||
return sql`${column} && ${array}`;
|
||||
}
|
||||
return sql`${column} && ${bindIfParam(values, column)}`;
|
||||
}
|
||||
export {
|
||||
and,
|
||||
arrayContained,
|
||||
arrayContains,
|
||||
arrayOverlaps,
|
||||
between,
|
||||
bindIfParam,
|
||||
eq,
|
||||
exists,
|
||||
gt,
|
||||
gte,
|
||||
ilike,
|
||||
inArray,
|
||||
isNotNull,
|
||||
isNull,
|
||||
like,
|
||||
lt,
|
||||
lte,
|
||||
ne,
|
||||
not,
|
||||
notBetween,
|
||||
notExists,
|
||||
notIlike,
|
||||
notInArray,
|
||||
notLike,
|
||||
or
|
||||
};
|
||||
//# sourceMappingURL=conditions.js.map
|
||||
Reference in New Issue
Block a user