'use strict'; /** * Operator symbols to be used when querying data * * @see {@link Model#where} * * @property eq * @property ne * @property gte * @property gt * @property lte * @property lt * @property not * @property is * @property in * @property notIn * @property like * @property notLike * @property iLike * @property notILike * @property regexp * @property notRegexp * @property iRegexp * @property notIRegexp * @property between * @property notBetween * @property overlap * @property contains * @property contained * @property adjacent * @property strictLeft * @property strictRight * @property noExtendRight * @property noExtendLeft * @property and * @property or * @property any * @property all * @property values * @property col * @property placeholder * @property join */ const Op = { eq: Symbol.for('eq'), ne: Symbol.for('ne'), gte: Symbol.for('gte'), gt: Symbol.for('gt'), lte: Symbol.for('lte'), lt: Symbol.for('lt'), not: Symbol.for('not'), is: Symbol.for('is'), in: Symbol.for('in'), notIn: Symbol.for('notIn'), like: Symbol.for('like'), notLike: Symbol.for('notLike'), iLike: Symbol.for('iLike'), notILike: Symbol.for('notILike'), regexp: Symbol.for('regexp'), notRegexp: Symbol.for('notRegexp'), iRegexp: Symbol.for('iRegexp'), notIRegexp: Symbol.for('notIRegexp'), between: Symbol.for('between'), notBetween: Symbol.for('notBetween'), overlap: Symbol.for('overlap'), contains: Symbol.for('contains'), contained: Symbol.for('contained'), adjacent: Symbol.for('adjacent'), strictLeft: Symbol.for('strictLeft'), strictRight: Symbol.for('strictRight'), noExtendRight: Symbol.for('noExtendRight'), noExtendLeft: Symbol.for('noExtendLeft'), and: Symbol.for('and'), or: Symbol.for('or'), any: Symbol.for('any'), all: Symbol.for('all'), values: Symbol.for('values'), col: Symbol.for('col'), placeholder: Symbol.for('placeholder'), join: Symbol.for('join'), raw: Symbol.for('raw') //deprecated remove by v5.0 }; const Aliases = { $eq: Op.eq, $ne: Op.ne, $gte: Op.gte, $gt: Op.gt, $lte: Op.lte, $lt: Op.lt, $not: Op.not, $in: Op.in, $notIn: Op.notIn, $is: Op.is, $like: Op.like, $notLike: Op.notLike, $iLike: Op.iLike, $notILike: Op.notILike, $regexp: Op.regexp, $notRegexp: Op.notRegexp, $iRegexp: Op.iRegexp, $notIRegexp: Op.notIRegexp, $between: Op.between, $notBetween: Op.notBetween, $overlap: Op.overlap, $contains: Op.contains, $contained: Op.contained, $adjacent: Op.adjacent, $strictLeft: Op.strictLeft, $strictRight: Op.strictRight, $noExtendRight: Op.noExtendRight, $noExtendLeft: Op.noExtendLeft, $and: Op.and, $or: Op.or, $any: Op.any, $all: Op.all, $values: Op.values, $col: Op.col, $raw: Op.raw //deprecated remove by v5.0 }; const LegacyAliases = { //deprecated remove by v5.0 'ne': Op.ne, 'not': Op.not, 'in': Op.in, 'notIn': Op.notIn, 'gte': Op.gte, 'gt': Op.gt, 'lte': Op.lte, 'lt': Op.lt, 'like': Op.like, 'ilike': Op.iLike, '$ilike': Op.iLike, 'nlike': Op.notLike, '$notlike': Op.notLike, 'notilike': Op.notILike, '..': Op.between, 'between': Op.between, '!..': Op.notBetween, 'notbetween': Op.notBetween, 'nbetween': Op.notBetween, 'overlap': Op.overlap, '&&': Op.overlap, '@>': Op.contains, '<@': Op.contained }; Op.Aliases = Aliases; Op.LegacyAliases = Object.assign({}, LegacyAliases, Aliases); module.exports = Op;