72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
| * vue v3.5.21
 | |
| * (c) 2018-present Yuxi (Evan) You and Vue contributors
 | |
| * @license MIT
 | |
| **/
 | |
| 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, genCacheKey, extend, generateCodeFrame } from '@vue/shared';
 | |
| 
 | |
| function initDev() {
 | |
|   {
 | |
|     initCustomFormatter();
 | |
|   }
 | |
| }
 | |
| 
 | |
| if (!!(process.env.NODE_ENV !== "production")) {
 | |
|   initDev();
 | |
| }
 | |
| const compileCache = /* @__PURE__ */ Object.create(null);
 | |
| function compileToFunction(template, options) {
 | |
|   if (!isString(template)) {
 | |
|     if (template.nodeType) {
 | |
|       template = template.innerHTML;
 | |
|     } else {
 | |
|       !!(process.env.NODE_ENV !== "production") && warn(`invalid template option: `, template);
 | |
|       return NOOP;
 | |
|     }
 | |
|   }
 | |
|   const key = genCacheKey(template, options);
 | |
|   const cached = compileCache[key];
 | |
|   if (cached) {
 | |
|     return cached;
 | |
|   }
 | |
|   if (template[0] === "#") {
 | |
|     const el = document.querySelector(template);
 | |
|     if (!!(process.env.NODE_ENV !== "production") && !el) {
 | |
|       warn(`Template element not found or is empty: ${template}`);
 | |
|     }
 | |
|     template = el ? el.innerHTML : ``;
 | |
|   }
 | |
|   const opts = extend(
 | |
|     {
 | |
|       hoistStatic: true,
 | |
|       onError: !!(process.env.NODE_ENV !== "production") ? onError : void 0,
 | |
|       onWarn: !!(process.env.NODE_ENV !== "production") ? (e) => onError(e, true) : NOOP
 | |
|     },
 | |
|     options
 | |
|   );
 | |
|   if (!opts.isCustomElement && typeof customElements !== "undefined") {
 | |
|     opts.isCustomElement = (tag) => !!customElements.get(tag);
 | |
|   }
 | |
|   const { code } = compile(template, opts);
 | |
|   function onError(err, asWarning = false) {
 | |
|     const message = asWarning ? err.message : `Template compilation error: ${err.message}`;
 | |
|     const codeFrame = err.loc && generateCodeFrame(
 | |
|       template,
 | |
|       err.loc.start.offset,
 | |
|       err.loc.end.offset
 | |
|     );
 | |
|     warn(codeFrame ? `${message}
 | |
| ${codeFrame}` : message);
 | |
|   }
 | |
|   const render = new Function("Vue", code)(runtimeDom);
 | |
|   render._rc = true;
 | |
|   return compileCache[key] = render;
 | |
| }
 | |
| registerRuntimeCompiler(compileToFunction);
 | |
| 
 | |
| export { compileToFunction as compile };
 |