UNPKG

@ucast/mongo

Version:

git@github.com:stalniy/ucast.git

2 lines 3.5 kB
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};let n=require(`@ucast/core`);var r=t({$all:()=>p,$and:()=>i,$elemMatch:()=>l,$eq:()=>b,$exists:()=>h,$gt:()=>_,$gte:()=>g,$in:()=>d,$lt:()=>v,$lte:()=>y,$mod:()=>m,$ne:()=>x,$nin:()=>f,$nor:()=>o,$not:()=>c,$options:()=>C,$or:()=>a,$regex:()=>S,$size:()=>u,$where:()=>w});const i={type:`compound`,validate:E,parse(e,t,r){let i=s(e,t,r);return(0,n.optimizedCompoundCondition)(e.name,i)}},a=i,o={type:`compound`,validate:E,parse(e,t,r){let i=s(e,t,r);return new n.CompoundCondition(e.name,i)}};function s(e,t,n){let r=Array(t.length);for(let i=0;i<t.length;i++){let a=t[i];k(e,a,i),r[i]=n.parse(a)}return r}const c={type:`field`,validate(e,t){if(!(t&&(t instanceof RegExp||t.constructor===Object)))throw Error(`"${e.name}" expects to receive either regular expression or object of field operators`)},parse(e,t,r){let i=t instanceof RegExp?new n.FieldCondition(`regex`,r.field,t):r.parse(t,r);return new n.CompoundCondition(e.name,[i])}},l={type:`field`,validate(e,t){if(!t||t.constructor!==Object)throw Error(`"${e.name}" expects to receive an object with nested query or field level operators`)},parse(e,t,{parse:r,field:i,hasOperators:a}){let o=a(t)?r(t,{field:n.ITSELF}):r(t);return new n.FieldCondition(e.name,i,o)}},u={type:`field`,validate:O(`number`)},d={type:`field`,validate:T},f=d,p=d,m={type:`field`,validate(e,t){if(!Array.isArray(t)||t.length!==2)throw Error(`"${e.name}" expects an array with 2 numeric elements`)}},h={type:`field`,validate:O(`boolean`)},g={type:`field`,validate:D},_=g,v=_,y=_,b={type:`field`},x=b,S={type:`field`,validate(e,t){if(!(t instanceof RegExp)&&typeof t!=`string`)throw Error(`"${e.name}" expects value to be a regular expression or a string that represents regular expression`)},parse(e,t,r){let i=typeof t==`string`?new RegExp(t,r.query.$options||``):t;return new n.FieldCondition(e.name,r.field,i)}},C={type:`field`,parse:()=>n.NULL_CONDITION},w={type:`document`,validate:O(`function`)};function T(e,t){if(!Array.isArray(t))throw Error(`"${e.name}" expects value to be an array`)}function E(e,t){if(T(e,t),!t.length)throw Error(`"${e.name}" expects to have at least one element in array`)}function D(e,t){if(!(typeof t==`string`||typeof t==`number`||t instanceof Date))throw Error(`"${e.name}" expects value to be comparable (i.e., string, number or date)`)}function O(e){return(t,n)=>{if(typeof n!==e)throw Error(`"${t.name}" expects value to be a "${e}"`)}}function k(e,t,n){let r=t;if(!r||r.constructor!==Object)throw Error(`"${e.name}" expects item at index ${n} to be an object`)}var A=class extends n.ObjectQueryParser{constructor(e){super(e,{defaultOperatorName:`$eq`,operatorToConditionName:e=>e.slice(1)})}parse(e,t){return t&&t.field?(0,n.buildAnd)(this.parseFieldOperators(t.field,e)):super.parse(e)}};const j=r;exports.$all=p,exports.$and=i,exports.$elemMatch=l,exports.$eq=b,exports.$exists=h,exports.$gt=_,exports.$gte=g,exports.$in=d,exports.$lt=v,exports.$lte=y,exports.$mod=m,exports.$ne=x,exports.$nin=f,exports.$nor=o,exports.$not=c,exports.$options=C,exports.$or=a,exports.$regex=S,exports.$size=u,exports.$where=w,exports.MongoQueryParser=A,exports.allParsingInstructions=j,Object.defineProperty(exports,`defaultParsers`,{enumerable:!0,get:function(){return n.defaultInstructionParsers}}); //# sourceMappingURL=index.js.map