UNPKG

@chief-editor/flow

Version:

Old核心数据流

1 lines 5.38 kB
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var r,t=1,n=arguments.length;t<n;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e}).apply(this,arguments)},__spreadArrays=this&&this.__spreadArrays||function(){for(var e=0,r=0,t=arguments.length;r<t;r++)e+=arguments[r].length;var n=Array(e),o=0;for(r=0;r<t;r++)for(var s=arguments[r],i=0,a=s.length;i<a;i++,o++)n[o]=s[i];return n};Object.defineProperty(exports,"__esModule",{value:!0});var base_1=require("@chief-editor/base"),interpolation_1=require("@co-hooks/interpolation"),nest_watcher_1=require("@co-hooks/nest-watcher"),util_1=require("@co-hooks/util"),keys_1=require("./keys");function wrapInterpolation(e,r){try{var t=interpolation_1.transformExpression(e,exports.interpolationOptions),n=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.getByExpression.apply(r,e)};return{watchers:t.watchers,func:function(o){try{return t.func.call(null,n,r,o)}catch(t){return console.error("execute interpolation failed:\n expr = "+e+"\n error = "+t.message+"\n path = "+keys_1.getAbsoluteKey(r)+"\n relativePath = "+keys_1.getRelativeKey(r)+"\n "),console.error(t),console.error(r),console.error("end execute interpolation failed"),null}}}}catch(t){return console.error("compile failed:\n expr = "+e+"\n error = "+t.message+"\n path = "+keys_1.getAbsoluteKey(r)+"\n relativePath = "+keys_1.getRelativeKey(r)+"\n "),console.error(t),console.error(r),console.error("end compile failed:"),{watchers:[],func:function(){return null}}}}function wrapJson(e,r){var t={};try{var n=__assign(__assign({},exports.interpolationOptions),{objectBinding:{key:"__bind__",process:function(e,n){if(e.bindType===base_1.BindType.CONST)return interpolation_1.transformExpression(JSON.stringify(e.data),exports.interpolationOptions);if(e.bindType===base_1.BindType.EXPRESSION)return interpolation_1.transformExpression(e.bindJs,exports.interpolationOptions);if(e.bindType===base_1.BindType.VAR)return interpolation_1.transformExpression(e.bindKey,exports.interpolationOptions);var o=e.func,s=e.async,i=e.watchKeys;if(!s)return interpolation_1.transformExpression("$hooks."+o+"()",exports.interpolationOptions);var a=r.getHook(o),l=util_1.guid();return null==a&&(console.error("invalid hook func name ",o),a=function(){}),t[l]={watchers:wrapWatcher(i.split("\n"),r),func:wrapFunction(a,r)},interpolation_1.transformExpression("$input['"+l+"']",exports.interpolationOptions)}}}),o=interpolation_1.transformJson(e,n,[]),s=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.getByExpression.apply(r,e)};return{watchers:o.watchers,func:function(t){try{return o.func.call(null,s,r,t,r.datasource)}catch(t){return console.error("execute interpolation failed:\n data = "+JSON.stringify(e)+"\n error = "+t.message+"\n path = "+keys_1.getAbsoluteKey(r)+"\n relativePath = "+keys_1.getRelativeKey(r)+"\n "),console.error(t),console.error(r),console.error("end execute interpolation failed"),null}},asyncMap:t}}catch(n){return console.error("compile json failed:\n data = "+JSON.stringify(e)+"\n error = "+n.message+"\n path = "+keys_1.getAbsoluteKey(r)+"\n relativePath = "+keys_1.getRelativeKey(r)+"\n "),console.error(n),console.error(r),console.error("end compile json failed"),{watchers:[],func:function(){return null},asyncMap:t}}}function wrapWatcher(e,r){e.map((function(e){return nest_watcher_1.NestWatcher.splitKey(e)})).filter((function(e){return"hooks"!==e[0]&&"input"!==e[0]}));return e.forEach((function(e){/^\$/.test(e)&&(e=e.slice(1));var t=nest_watcher_1.NestWatcher.splitKey(e),n=t[0];t.slice(1);if("context"===n)return e;if(/^scope(\d+)?/.test(n)){var o=keys_1.getAbsoluteKeys(r.getNode().parentNode||r.getOwnerTemplate().getNode());return nest_watcher_1.NestWatcher.combineKeys(__spreadArrays([r.getOwnerModel().name],o))}var s=r.getOwnerModel();if(/^model(\d+)?/.test(e[0])){var i=+RegExp.$1||0;s=s.getParentModel(i)}else{if("root"!==e[0])throw new Error("unexpect type:"+e[0]);s=s.getRootModel()}return[s.name].concat(e.slice(1)).join(".")})),[]}function wrapFunction(e,r){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];try{var o=e.call.apply(e,__spreadArrays([r,t[0],r],t.slice(1)));return null!=o&&"object"==typeof o&&"function"==typeof o.then?o:Promise.resolve(o)}catch(e){return Promise.reject(e)}}}exports.interpolationOptions={symbols:[{symbol:"models",direct:!1,level:!1},{symbol:"path",direct:!0,level:!1},{symbol:"brick",direct:!0,level:!1},{symbol:"datasource",direct:!0,level:!1},{symbol:"scope",direct:!1,level:!0},{symbol:"model",direct:!1,level:!0},{symbol:"root",direct:!1,level:!1},{symbol:"input",direct:!0,level:!1},{symbol:"context",direct:!1,level:!1},{symbol:"hooks",direct:!1,level:!1}],call:"hooks",dollar:"models",default:"scope"},exports.wrapInterpolation=wrapInterpolation,exports.wrapJson=wrapJson,exports.wrapWatcher=wrapWatcher,exports.wrapFunction=wrapFunction;