dropkiq
Version:
Liquid Expressions Simplified
1 lines • 3.59 kB
JavaScript
;var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},__generator=this&&this.__generator||function(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}};Object.defineProperty(exports,"__esModule",{value:!0});var capturedContext,capturedRendered,tokenToCapture,liquid_options_1=require("./liquidjs/src/liquid-options"),render_1=require("./liquidjs/src/render/render"),context_1=require("./liquidjs/src/context/context"),async_1=require("./liquidjs/src/util/async"),output_1=require("./liquidjs/src/template/output"),underscore_1=require("./liquidjs/src/util/underscore");output_1.Output.prototype.render=function(e,t){var r,n;return __generator(this,(function(o){switch(o.label){case 0:return this.token===tokenToCapture&&(capturedContext=JSON.parse(JSON.stringify(e))),[4,this.value.value(e)];case 1:return r=o.sent(),n=underscore_1.stringify(async_1.toValue(r)),t.write(n),this.token===tokenToCapture&&(capturedRendered=n),[2]}}))};var ScopeCapture=function(){function e(e,t,r){this.templates=e,this.caretToken=t,this.renderer=new render_1.Render,this.dataSchema=r}return e.prototype.optionsFromScope=function(){var e=this,t={};this.capture();var r=this.getCapturedContext()||{scopes:[]},n=r.scopes.shift()||{};return Object.keys(n).forEach((function(r){t[r]={type:e.classifyDataType(n[r]),foreign_table_name:null}})),r.scopes.forEach((function(e){delete e.forloop,Object.keys(e).forEach((function(r){var n=e[r];t[r]={type:"ColumnTypes::HasOne",foreign_table_name:n._table_name}}))})),t},e.prototype.getCapturedContext=function(){return capturedContext},e.prototype.getCapturedRendered=function(){return capturedRendered},e.prototype.capture=function(e){void 0===e&&(e=this.dataSchema.constructedScope);var t={},r=liquid_options_1.applyDefault(liquid_options_1.normalize(t));tokenToCapture=this.caretToken;var n=__assign(__assign({},r),liquid_options_1.normalize(t)),o=new context_1.Context(e,n,!0);try{async_1.toValue(this.renderer.renderTemplates(this.templates,o))}catch(e){if("RenderError"===e.name)return capturedRendered="Liquid Render Error",!0;throw e}},e.prototype.classifyDataType=function(e){switch(typeof e){case"string":return"ColumnTypes::String";case"boolean":return"ColumnTypes::Boolean";case"number":return"ColumnTypes::Numeric";case"object":return"ColumnTypes::YAML";default:throw new Error("Unknown assigns variable type for "+e)}},e}();exports.ScopeCapture=ScopeCapture;