odata-filter-builder
Version:
OData Filter Builder
2 lines (1 loc) • 3.72 kB
JavaScript
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n=n||self).ODataFilterBuilder={})}(this,function(n){"use strict";var t=Object.freeze({__proto__:null,get canonicalFunction(){return f},get contains(){return r},get startsWith(){return e},get endsWith(){return s},get toLower(){return d},get toUpper(){return a},get trim(){return h},get substring(){return l},get concat(){return g},get length(){return _},get indexOf(){return p}});function u(n){return"function"==typeof n&&(n=n(new w)),n&&n.toString()}function i(n,t){var r,e;return void 0===t&&(t=!1),"string"!=typeof n&&(n=1===n.rules.length?i(n.rules[0]):(r=n.rules,e=n.condition,r.map(function(n){return i(n,!0)}).join(" "+e+" "))),t?"("+n+")":n}function c(n){return"function"==typeof n?n(t):n}function o(n){return"string"==typeof n?"'"+n+"'":"object"==typeof(t=n)&&"[object Date]"===Object.prototype.toString.call(t)?n.toISOString():n;var t}function f(n,t,r,e,i){return void 0===e&&(e=!0),void 0===i&&(i=!1),t=c(t),void 0===r?r=[]:Array.isArray(r)||(r=[r]),0===r.length?n+"("+t+")":(e&&(r=r.map(o)),n+"("+(i?[].concat(r,[t]):[t].concat(r)).join(", ")+")")}function r(n,t){return f("contains",n,t)}function e(n,t){return f("startswith",n,t)}function s(n,t){return f("endswith",n,t)}function d(n){return f("tolower",n)}function a(n){return f("toupper",n)}function h(n){return f("trim",n)}function l(n){for(var t=arguments.length,r=new Array(1<t?t-1:0),e=1;e<t;e++)r[e-1]=arguments[e];return f("substring",n,r)}function g(n,t,r){return f("concat",n,[t],r)}function _(n){return f("length",n)}function p(n,t){return f("indexof",n,[t])}function v(n){var t=u(n);if(t)return"not ("+t+")"}function y(n,t,r,e){return void 0===e&&(e=!0),n=c(n),e&&(r=o(r)),n+" "+t+" "+r}function j(n,t,r){return y(n,"eq",t,r)}function m(n,t){return n.join(" "+t+" ")}function b(n,t,r){return m((e=n,i="eq",void 0===(o=r)&&(o=!0),(u=t)?(e=c(e),Array.isArray(u)?u.map(function(n){return y(e,i,n,o)}):[y(e,i,u,o)]):[]),"or");var e,i,u,o}var w=function(){function t(n){if(void 0===n&&(n="and"),!(this instanceof t))return new t(n);this._condition=n,this._source={condition:n,rules:[]}}var n=t.prototype;return n._add=function(n,t){var r,e,i;return void 0===t&&(t=this._condition),this._source=(r=this._source,e=u(n),i=t,e&&(i&&r.condition!==i&&(r={condition:i,rules:1<r.rules.length?[r]:r.rules}),r.rules.push(e)),r),this},n.and=function(n){return this._add(n,"and")},n.or=function(n){return this._add(n,"or")},n.not=function(n){return this._add(v(n))},n.eq=function(n,t,r){return this._add(j(n,t,r))},n.ne=function(n,t,r){return this._add(y(n,"ne",t,r))},n.gt=function(n,t,r){return this._add(y(n,"gt",t,r))},n.ge=function(n,t,r){return this._add(y(n,"ge",t,r))},n.lt=function(n,t,r){return this._add(y(n,"lt",t,r))},n.le=function(n,t,r){return this._add(y(n,"le",t,r))},n.in=function(n,t,r){return this._add(b(n,t,r))},n.compareAll=function(n,t){return this._add((r=n,e=t,m(Object.keys(r).filter(function(n){return void 0!==r[n]}).map(function(n){var t=r[n];return Array.isArray(t)?"("+b(n,t,e)+")":j(n,t,e)}),"and")));var r,e},n.notIn=function(n,t,r){return this._add(v(b(n,t,r)))},n.contains=function(n,t){return this._add(r(n,t))},n.startsWith=function(n,t){return this._add(e(n,t))},n.endsWith=function(n,t){return this._add(s(n,t))},n.fn=function(n,t,r,e,i){return this._add(f(n,t,r,e,i))},n.isEmpty=function(){return 0===this._source.rules.length},n.toString=function(){return i(this._source)},t}();w.and=function(){return new w("and")},w.or=function(){return new w("or")},w.functions=t,n.ODataFilterBuilder=w,n.canonicalFunctions=t,n.default=w,Object.defineProperty(n,"__esModule",{value:!0})});