UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

223 lines • 6.81 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var conditions_exports = {}; __export(conditions_exports, { and: () => and, arrayContained: () => arrayContained, arrayContains: () => arrayContains, arrayOverlaps: () => arrayOverlaps, between: () => between, bindIfParam: () => bindIfParam, eq: () => eq, exists: () => exists, gt: () => gt, gte: () => gte, ilike: () => ilike, inArray: () => inArray, isNotNull: () => isNotNull, isNull: () => isNull, like: () => like, lt: () => lt, lte: () => lte, ne: () => ne, not: () => not, notBetween: () => notBetween, notExists: () => notExists, notIlike: () => notIlike, notInArray: () => notInArray, notLike: () => notLike, or: () => or }); module.exports = __toCommonJS(conditions_exports); var import_column = require("../../column.cjs"); var import_entity = require("../../entity.cjs"); var import_table = require("../../table.cjs"); var import_sql = require("../sql.cjs"); function bindIfParam(value, column) { if ((0, import_sql.isDriverValueEncoder)(column) && !(0, import_sql.isSQLWrapper)(value) && !(0, import_entity.is)(value, import_sql.Param) && !(0, import_entity.is)(value, import_sql.Placeholder) && !(0, import_entity.is)(value, import_column.Column) && !(0, import_entity.is)(value, import_table.Table) && !(0, import_entity.is)(value, import_sql.View)) { return new import_sql.Param(value, column); } return value; } const eq = (left, right) => { return import_sql.sql`${left} = ${bindIfParam(right, left)}`; }; const ne = (left, right) => { return import_sql.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 import_sql.SQL(conditions); } return new import_sql.SQL([ new import_sql.StringChunk("("), import_sql.sql.join(conditions, new import_sql.StringChunk(" and ")), new import_sql.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 import_sql.SQL(conditions); } return new import_sql.SQL([ new import_sql.StringChunk("("), import_sql.sql.join(conditions, new import_sql.StringChunk(" or ")), new import_sql.StringChunk(")") ]); } function not(condition) { return import_sql.sql`not ${condition}`; } const gt = (left, right) => { return import_sql.sql`${left} > ${bindIfParam(right, left)}`; }; const gte = (left, right) => { return import_sql.sql`${left} >= ${bindIfParam(right, left)}`; }; const lt = (left, right) => { return import_sql.sql`${left} < ${bindIfParam(right, left)}`; }; const lte = (left, right) => { return import_sql.sql`${left} <= ${bindIfParam(right, left)}`; }; function inArray(column, values) { if (Array.isArray(values)) { if (values.length === 0) { return import_sql.sql`false`; } return import_sql.sql`${column} in ${values.map((v) => bindIfParam(v, column))}`; } return import_sql.sql`${column} in ${bindIfParam(values, column)}`; } function notInArray(column, values) { if (Array.isArray(values)) { if (values.length === 0) { return import_sql.sql`true`; } return import_sql.sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`; } return import_sql.sql`${column} not in ${bindIfParam(values, column)}`; } function isNull(value) { return import_sql.sql`${value} is null`; } function isNotNull(value) { return import_sql.sql`${value} is not null`; } function exists(subquery) { return import_sql.sql`exists ${subquery}`; } function notExists(subquery) { return import_sql.sql`not exists ${subquery}`; } function between(column, min, max) { return import_sql.sql`${column} between ${bindIfParam(min, column)} and ${bindIfParam( max, column )}`; } function notBetween(column, min, max) { return import_sql.sql`${column} not between ${bindIfParam( min, column )} and ${bindIfParam(max, column)}`; } function like(column, value) { return import_sql.sql`${column} like ${value}`; } function notLike(column, value) { return import_sql.sql`${column} not like ${value}`; } function ilike(column, value) { return import_sql.sql`${column} ilike ${value}`; } function notIlike(column, value) { return import_sql.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 = import_sql.sql`${bindIfParam(values, column)}`; return import_sql.sql`${column} @> ${array}`; } return import_sql.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 = import_sql.sql`${bindIfParam(values, column)}`; return import_sql.sql`${column} <@ ${array}`; } return import_sql.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 = import_sql.sql`${bindIfParam(values, column)}`; return import_sql.sql`${column} && ${array}`; } return import_sql.sql`${column} && ${bindIfParam(values, column)}`; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { 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.cjs.map