2 lines
1.4 KiB
JavaScript
2 lines
1.4 KiB
JavaScript
import*as runtimeDom from"@vue/runtime-dom";import{initCustomFormatter,registerRuntimeCompiler,warn}from"@vue/runtime-dom";export*from"@vue/runtime-dom";import{compile}from"@vue/compiler-dom";import{isString,NOOP,extend,generateCodeFrame,EMPTY_OBJ}from"@vue/shared";function initDev(){initCustomFormatter()}"production"!==process.env.NODE_ENV&&initDev();const compileCache=new WeakMap;function getCache(e){let o=compileCache.get(null!=e?e:EMPTY_OBJ);return o||(o=Object.create(null),compileCache.set(null!=e?e:EMPTY_OBJ,o)),o}function compileToFunction(t,e){if(!isString(t)){if(!t.nodeType)return"production"!==process.env.NODE_ENV&&warn("invalid template option: ",t),NOOP;t=t.innerHTML}var o=t;const n=getCache(e);var r=n[o];if(r)return r;"#"===t[0]&&(r=document.querySelector(t),"production"===process.env.NODE_ENV||r||warn("Template element not found or is empty: "+t),t=r?r.innerHTML:"");const i=extend({hoistStatic:!0,onError:"production"!==process.env.NODE_ENV?m:void 0,onWarn:"production"!==process.env.NODE_ENV?e=>m(e,!0):NOOP},e);i.isCustomElement||"undefined"==typeof customElements||(i.isCustomElement=e=>!!customElements.get(e));r=compile(t,i).code;function m(e,o=!1){o=o?e.message:"Template compilation error: "+e.message,e=e.loc&&generateCodeFrame(t,e.loc.start.offset,e.loc.end.offset);warn(e?o+`
|
|
`+e:o)}const c=new Function("Vue",r)(runtimeDom);return c._rc=!0,n[o]=c}registerRuntimeCompiler(compileToFunction);export{compileToFunction as compile}; |