dropkiq
Version:
Liquid Expressions Simplified
1 lines • 3.07 kB
JavaScript
;var __generator=this&&this.__generator||function(e,r){var t,n,i,s,l={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(s){return function(o){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;l;)try{if(t=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return l.label++,{value:s[1],done:!1};case 5:l.label++,n=s[1],s=[0];continue;case 7:s=l.ops.pop(),l.trys.pop();continue;default:if(!(i=(i=l.trys).length>0&&i[i.length-1])&&(6===s[0]||2===s[0])){l=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){l.label=s[1];break}if(6===s[0]&&l.label<i[1]){l.label=i[1],i=s;break}if(i&&l.label<i[2]){l.label=i[2],l.ops.push(s);break}i[2]&&l.ops.pop(),l.trys.pop();continue}s=r.call(e,l)}catch(e){s=[6,e],n=0}finally{t=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,o])}}},__values=this&&this.__values||function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(exports,"__esModule",{value:!0});var expression_1=require("../render/expression"),filter_1=require("./filter/filter"),Value=function(){function e(r,t){this.filters=[];var n=e.tokenize(r);this.strictFilters=t,this.initial=n[0],this.parseFilters(n,1)}return e.prototype.parseFilters=function(e,r){for(var t=r;t<e.length;)if("|"===e[t]){for(var n=++t;t<e.length&&"|"!==e[t];)t++;this.parseFilter(e,n,t)}else t++},e.prototype.parseFilter=function(e,r,t){for(var n,i,s=e[r],l=[],o=r+1;o<t+1;o++)o===t||","===e[o]?((n||i)&&l.push(n?[n,i]:i),i=n=void 0):":"===e[o]?(n=i,i=void 0):void 0===i&&(i=e[o]);this.filters.push(new filter_1.Filter(s,l,this.strictFilters))},e.prototype.value=function(e){var r,t,n,i,s,l;return __generator(this,(function(o){switch(o.label){case 0:return[4,new expression_1.Expression(this.initial).evaluate(e)];case 1:r=o.sent(),o.label=2;case 2:o.trys.push([2,7,8,9]),t=__values(this.filters),n=t.next(),o.label=3;case 3:return n.done?[3,6]:[4,n.value.render(r,e)];case 4:r=o.sent(),o.label=5;case 5:return n=t.next(),[3,3];case 6:return[3,9];case 7:return i=o.sent(),s={error:i},[3,9];case 8:try{n&&!n.done&&(l=t.return)&&l.call(t)}finally{if(s)throw s.error}return[7];case 9:return[2,r]}}))},e.tokenize=function(e){for(var r=[],t=0;t<e.length;){var n=e[t];if('"'===n||"'"===n){var i=t;for(t+=2;t<e.length&&e[t-1]!==n;++t);r.push(e.slice(i,t))}else if(/\s/.test(n))t++;else if(/[|,:]/.test(n))r.push(e[t++]);else{i=t++;for(var s=void 0;t<e.length&&!/[|,:\s]/.test(s=e[t]);++t)if('"'===s||"'"===s)for(t+=2;t<e.length&&e[t-1]!==s;++t);r.push(e.slice(i,t))}}return r},e}();exports.Value=Value;