@vtj/coder 0.7.15 → 0.7.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,44 +1,45 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@vtj/base"),k=require("prettier/standalone"),Q=require("prettier/plugins/html"),z=require("prettier/plugins/babel"),G=require("prettier/plugins/postcss"),H=require("prettier/plugins/estree");function w(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,s.get?s:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const U=w(Q),T=w(z),q=w(G),B=w(H);/**!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@vtj/base"),_=require("prettier/standalone"),Q=require("prettier/plugins/html"),z=require("prettier/plugins/babel"),G=require("prettier/plugins/postcss"),H=require("prettier/plugins/estree");function S(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,r.get?r:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const U=S(Q),T=S(z),q=S(G),B=S(H);/**!
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/coder
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.7.15
5
+ * @version 0.7.17
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
- */const X="0.7.15";/**!
7
+ */const X="0.7.17";/**!
8
8
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
9
9
  * @name @vtj/core
10
10
  * @author CHC chenhuachun1549@dingtalk.com
11
- * @version 0.7.15
11
+ * @version 0.7.17
12
12
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
13
- */const Y=["slot","template","component","img","div","p","h1","h2","h3","span","a"];l.mitt();const x={arrowParens:"always",bracketSpacing:!0,bracketSameLine:!0,endOfLine:"lf",htmlWhitespaceSensitivity:"css",insertPragma:!1,jsxBracketSameLine:!0,jsxSingleQuote:!0,printWidth:80,proseWrap:"preserve",quoteProps:"as-needed",requirePragma:!1,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"none",useTabs:!1,vueIndentScriptAndStyle:!0};async function J(t,e){return e?t:await k.format(t,{parser:"vue",...x,plugins:[U,T,B,q]})}async function Z(t,e){return e?t:await k.format(t,{parser:"babel-ts",...x,plugins:[T,B]})}async function W(t,e){return e?t:k.format(t,{parser:"scss",...x,plugins:[q]})}function C(t){return t&&t.type==="JSExpression"}function P(t){return typeof t=="object"&&t&&t.type==="JSFunction"}function b(t){return C(t)||P(t)}function A(t){return t.replace(new RegExp("this.","g"),"")}function I(t){return t.replace(/this\.context\??\./g,"")}function u(t,e=!0,r=!0){const s=b(t)?t.value:e?JSON.stringify(t):t;return r?A(I(s)):I(s)}function j(t,e=[]){let r=t;for(const s of e)r=r.replace(new RegExp(`this.${s}.value`,"g"),`this.${s}`);return r}function L(t){let e=t.trim();if(e=/^\((\(|async|function)/.test(e)?e.substring(1,e.length-1):e,e.startsWith("{"))return e;if(e.startsWith("async function"))e=e.replace(/^async function/,"async");else if(e.startsWith("function"))e=e.replace(/^function/,"");else{const i=/^(async\s)?\([\w]*\)\s+\=\>\s([\w\W]+)/,n=e.match(i);n&&n[2]&&(n[2].startsWith("{")||(e=e.replace(n[2],`{ return ${n[2]} }`))),e=e.replace("=>","")}return e}function K(t={}){return Object.entries(t).map(([e,r])=>`"${e}": ${u(r)}`)}function M(t={},e=!1){const r=Object.keys(t);return e?r.map(s=>"."+s):r}function ee(t){let e="";for(var r in t)if(t.hasOwnProperty(r)){var s=t[r];e+=r+": "+s+";"}return e}class te{constructor(e,r){this.dsl=e,this.dependencies=r,this.libraryRegex=this.collectLibrary(),this.walk(e),this.walkNodes(e),this.members=this.getLibraryMember()}imports={};context={};style={};members=[];libraryRegex=[];collectLibrary(){return this.dependencies.filter(e=>!!e.library).map(e=>new RegExp(`(this.\\$libs.${e.library}.([\\w]+))`,"g"))}collectImport(e){const r=e.split(".");if(r.length===4){const s=r.pop(),i=r.join(".")+".",n=r.pop();if(s&&n){const o=this.dependencies.find(a=>a.library===n)?.package;o&&(this.imports[o]||(this.imports[o]=new Set)).add(s)}return{name:s,path:i,library:n}}return null}replaceLibraryPath(e){const{libraryRegex:r}=this;let s=e.value;for(const i of r){const n=e.value.match(i)||[];for(const o of n){const a=this.collectImport(o);if(a){const c=a.path.replace(/\$/g,"\\$");s=s.replace(new RegExp(c,"g"),"")}}}return s}walk(e){const r=s=>{if(!s||typeof s!="object")return;if(Array.isArray(s)){for(let n of s)r(n);return}const i=Object.values(s);for(const n of i)b(n)?n.value=this.replaceLibraryPath(n):r(n)};r(e)}getLibraryMember(e=[]){let r=[...e];for(const s of Object.values(this.imports))r=r.concat(Array.from(s));return l.dedupArray(r)}collectContext(e,r){const s=new Set(r?.id?this.context[r.id]:[]),i=(e.directives||[]).find(a=>a.name==="vFor");let n=new Set(Array.from(s));if(i){const{item:a="item",index:c="index"}=i.iterator||{};n=new Set([a,c,...Array.from(n)])}const o=e.slot;if(o){const a=typeof o=="string"?[]:o.params||[],c=a.length?a:[`scope_${r?.id}`];n=new Set([...c,...Array.from(n)])}this.context[e.id]=n}collectStyle(e){e.id&&e.props?.style&&(this.style[`.${e.name}_${e.id}`]=e.props.style)}walkNodes(e){const r=(s,i)=>{this.collectContext(s,i),this.collectStyle(s),Array.isArray(s.children)&&s.children.forEach(n=>r(n,s))};Array.isArray(e.nodes)&&e.nodes.forEach(s=>r(s))}}function re(t={}){return Object.entries(t).map(([e,r])=>{const s=u(r,!1);return`${e}:${s}`})}function se(t=[]){return t.map(e=>`${e.name}: {
13
+ */const Y=["slot","template","component","img","div","p","h1","h2","h3","span","a"];l.mitt();const x={arrowParens:"always",bracketSpacing:!0,bracketSameLine:!0,endOfLine:"lf",htmlWhitespaceSensitivity:"css",insertPragma:!1,jsxBracketSameLine:!0,jsxSingleQuote:!0,printWidth:80,proseWrap:"preserve",quoteProps:"as-needed",requirePragma:!1,semi:!0,singleQuote:!0,tabWidth:2,trailingComma:"none",useTabs:!1,vueIndentScriptAndStyle:!0};async function J(t,e){return e?t:await _.format(t,{parser:"vue",...x,plugins:[U,T,B,q]})}async function Z(t,e){return e?t:await _.format(t,{parser:"babel-ts",...x,plugins:[T,B]})}async function W(t,e){return e?t:_.format(t,{parser:"scss",...x,plugins:[q]})}function C(t){return t&&t.type==="JSExpression"}function P(t){return typeof t=="object"&&t&&t.type==="JSFunction"}function v(t){return C(t)||P(t)}function A(t){return t.replace(new RegExp("this.","g"),"")}function I(t){return t.replace(/this\.context\??\./g,"")}function u(t,e=!0,s=!0){const r=v(t)?t.value:e?JSON.stringify(t):t;return s?A(I(r)):I(r)}function j(t,e=[]){let s=t;for(const r of e)s=s.replace(new RegExp(`this.${r}.value`,"g"),`this.${r}`);return s}function L(t){let e=t.trim();if(e=/^\((\(|async|function)/.test(e)?e.substring(1,e.length-1):e,e.startsWith("{"))return e;if(e.startsWith("async function"))e=e.replace(/^async function/,"async");else if(e.startsWith("function"))e=e.replace(/^function/,"");else{const i=/^(async\s)?\([\w]*\)\s+\=\>\s([\w\W]+)/,n=e.match(i);n&&n[2]&&(n[2].startsWith("{")||(e=e.replace(n[2],`{ return ${n[2]} }`))),e=e.replace("=>","")}return e}function K(t={}){return Object.entries(t).map(([e,s])=>`"${e}": ${u(s)}`)}function M(t={},e=!1){const s=Object.keys(t);return e?s.map(r=>"."+r):s}function ee(t){let e="";for(var s in t)if(t.hasOwnProperty(s)){var r=t[s];e+=s+": "+r+";"}return e}class te{constructor(e,s){this.dsl=e,this.dependencies=s,this.libraryRegex=this.collectLibrary(),this.walk(e),this.walkNodes(e),this.members=this.getLibraryMember()}imports={};context={};style={};members=[];libraryRegex=[];collectLibrary(){return this.dependencies.filter(e=>!!e.library).map(e=>new RegExp(`(this.\\$libs.${e.library}.([\\w]+))`,"g"))}collectImport(e){const s=e.split(".");if(s.length===4){const r=s.pop(),i=s.join(".")+".",n=s.pop();if(r&&n){const o=this.dependencies.find(a=>a.library===n)?.package;o&&(this.imports[o]||(this.imports[o]=new Set)).add(r)}return{name:r,path:i,library:n}}return null}replaceLibraryPath(e){const{libraryRegex:s}=this;let r=e.value;for(const i of s){const n=e.value.match(i)||[];for(const o of n){const a=this.collectImport(o);if(a){const c=a.path.replace(/\$/g,"\\$");r=r.replace(new RegExp(c,"g"),"")}}}return r}walk(e){const s=r=>{if(!r||typeof r!="object")return;if(Array.isArray(r)){for(let n of r)s(n);return}const i=Object.values(r);for(const n of i)v(n)?n.value=this.replaceLibraryPath(n):s(n)};s(e)}getLibraryMember(e=[]){let s=[...e];for(const r of Object.values(this.imports))s=s.concat(Array.from(r));return l.dedupArray(s)}collectContext(e,s){const r=new Set(s?.id?this.context[s.id]:[]),i=(e.directives||[]).find(a=>a.name==="vFor");let n=new Set(Array.from(r));if(i){const{item:a="item",index:c="index"}=i.iterator||{};n=new Set([a,c,...Array.from(n)])}const o=e.slot;if(o){const a=typeof o=="string"?[]:o.params||[],c=a.length?a:[`scope_${s?.id}`];n=new Set([...c,...Array.from(n)])}this.context[e.id]=n}collectStyle(e){e.id&&e.props?.style&&Object.keys(e.props.style).length&&(this.style[`.${e.name}_${e.id}`]=e.props.style)}walkNodes(e){const s=(r,i)=>{this.collectContext(r,i),this.collectStyle(r),Array.isArray(r.children)&&r.children.forEach(n=>s(n,r))};Array.isArray(e.nodes)&&e.nodes.forEach(r=>s(r))}}function se(t={}){return Object.entries(t).map(([e,s])=>{const r=u(s,!1);return`${e}:${r}`})}function re(t=[]){return t.map(e=>`${e.name}: {
14
14
  from: '${e.from||e.name}',
15
15
  default: ${u(e.default,!0,!1)}
16
- }`)}function ne(t=[]){const e=r=>r?`[${l.toArray(r).map(n=>n.replace(/\'|\"/gi,"")).join(",")}]`:void 0;return t.map(r=>typeof r=="string"?`${r}: {}`:`${r.name}: {
17
- type:${e(r.type)},
18
- required: ${r.required},
19
- default: ${u(r.default,!0,!1)}
20
- }`)}function ie(t=[]){return t.map(e=>`'${e}'`)}function v(t={},e=[]){return Object.entries(t).map(([r,s])=>{let i=L(u(s,!1,!1));return i=j(i,e),i.startsWith("async")?`async ${r}${i.replace(/^async/,"")}`:`${r}${i}`})}function oe(t=[],e=[]){const r=t.reduce((n,o)=>(o.id&&P(o.source)&&(n[`watcher_${o.id}`]=o.source),n),{}),s=v(r,e),i=t.map(n=>`watcher_${n.id}: {
16
+ }`)}function ne(t=[]){const e=s=>s?`[${l.toArray(s).map(n=>n.replace(/\'|\"/gi,"")).join(",")}]`:void 0;return t.map(s=>typeof s=="string"?`${s}: {}`:`${s.name}: {
17
+ type:${e(s.type)},
18
+ required: ${s.required},
19
+ default: ${u(s.default,!0,!1)}
20
+ }`)}function ie(t=[]){return t.map(e=>`'${e}'`)}function b(t={},e=[]){return Object.entries(t).map(([s,r])=>{let i=L(u(r,!1,!1));return i=j(i,e),i.startsWith("async")?`async ${s}${i.replace(/^async/,"")}`:`${s}${i}`})}function oe(t=[],e=[]){const s=t.reduce((n,o)=>(o.id&&P(o.source)&&(n[`watcher_${o.id}`]=o.source),n),{}),r=b(s,e),i=t.map(n=>`watcher_${n.id}: {
21
21
  deep: ${n.deep},
22
22
  immediate:${n.immediate},
23
23
  handler${L(n.handler.value)}
24
- }`);return{computed:s,watches:i}}function ae(t={}){return Object.values(t).map(e=>{const r=P(e.transform)&&e.transform.value||"(res) => res";return`async ${e.name}(...args:any[]) {
25
- return await this.provider.apis.${e.ref}.apply(this, args).then(${r});
26
- }`})}function V(t,e,r=[],s={},i){const n=[];let o={},a=[],c=[];return ce(t).forEach(f=>{const y=[];for(const p of f.children){let{id:O,name:m,invisible:g,from:_}=p;if(g)continue;const E=le(m,e,_);E&&a.push(E),ue(_)&&c.push({id:_.id,name:m});const{props:F,events:N,handlers:D}=he(p,O,p.props,p.events,s,r),R=ye(p.directives).join(" "),d=p.children?$e(p.children,r,e,s,p):"";Object.assign(o,D);let $="";typeof d=="string"?$=d:($=(d?.nodes||[]).join(`
24
+ }`);return{computed:r,watches:i}}function ae(t={}){return Object.values(t).map(e=>{const s=P(e.transform)&&e.transform.value||"(res) => res";return`async ${e.name}(...args:any[]) {
25
+ return await this.provider.apis.${e.ref}.apply(this, args).then(${s});
26
+ }`})}function V(t,e,s=[],r={},i){const n=[];let o={},a=[],c=[];return ce(t).forEach(f=>{const y=[];for(const p of f.children){let{id:O,name:m,invisible:g,from:k}=p;if(g)continue;const E=le(m,e,k);E&&a.push(E),ue(k)&&c.push({id:k.id,name:m});const{props:F,events:N,handlers:D}=he(p,O,p.props,p.events,r,s),R=ye(p.directives).join(" "),d=p.children?$e(p.children,s,e,r,p):"";Object.assign(o,D);let $="";typeof d=="string"?$=d:($=(d?.nodes||[]).join(`
27
27
  `),Object.assign(o,d?.methods||{}),a=a.concat(d?.components||[]),c=c.concat(d?.importBlocks||[])),y.push(m==="img"?`<${m} ${R} ${F} ${N} />
28
28
  `:`<${m} ${R} ${F} ${N}>${$?`
29
- `+$.trim():""}</${m}>`)}const S=ve(f.slot,y.join(`
30
- `),i?.id);n.push(S)}),{nodes:n,methods:o,components:l.dedupArray(a),importBlocks:l.dedupArray(c,"id")}}function ce(t=[]){const e=new Map;for(const r of t){const s=typeof r.slot=="string"?r.slot:r.slot?.name,i=e.get(s);i?i.children.push(r):e.set(s,{slot:r.slot,children:[r]})}return e}function le(t,e,r){if(Y.includes(t))return null;const s=e.get(t);if(s&&s.alias){const i=s.parent?`${s.parent}.${s.alias}`:s.alias;return`${t}: ${i}`}return r||s?t:null}function ue(t){return!!t&&typeof t=="object"&&t.type==="Schema"}function pe(t,e,r=[]){return t==="style"?"":t==="__class"&&b(e)?`:class="${u({...e,value:j(e.value,r)})}"`:typeof e=="string"?`${t}="${e}"`:b(e)?`:${t}="${u({...e,value:j(e.value,r)})}"`:l.isPlainObject(e)?`:${t}='{${K(e).join(", ")}}'`:`:${t}='${JSON.stringify(e)}'`}function fe(t,e={},r=[]){if(!!Object.keys(e.style||{}).length){const i=`${t.name}_${t.id}`;e.class?typeof e.class=="string"?e.class=[e.class,i].join(" "):(e.__class=e.class,e.class=i):(e.class=i,delete e.style)}return Object.entries(e).map(([i,n])=>pe(i,n,r))}function me(t,e,r,s){const i=M(e.modifiers,!0);return s&&s.length>0?`@${t}${i.join("")}="(...args:any[]) => ${r}"`:`@${t}${i.join("")}="${r}"`}function de(t,e={},r={}){const s={},i=Array.from(r[t]||new Set([])),n=i.length?`({${i.join(", ")}}, args)`:"";return{binders:Object.entries(e).map(([a,c])=>{const h=c.handler.value.startsWith("this."),f=h?A(c.handler.value):`${l.camelCase(a)}_handler_${t}${n}`;return h||(s[f]=i.length?{type:"JSFunction",value:`{
29
+ `+$.trim():""}</${m}>
30
+ `)}const w=be(f.slot,y.join(`
31
+ `),i?.id);n.push(w)}),{nodes:n,methods:o,components:l.dedupArray(a),importBlocks:l.dedupArray(c,"id")}}function ce(t=[]){const e=new Map;for(const s of t){const r=typeof s.slot=="string"?s.slot:s.slot?.name,i=e.get(r);i?i.children.push(s):e.set(r,{slot:s.slot,children:[s]})}return e}function le(t,e,s){if(Y.includes(t))return null;const r=e.get(t);if(r&&r.alias){const i=r.parent?`${r.parent}.${r.alias}`:r.alias;return`${t}: ${i}`}return s||r?t:null}function ue(t){return!!t&&typeof t=="object"&&t.type==="Schema"}function pe(t,e,s=[]){return t==="style"?"":t==="__class"&&v(e)?`:class="${u({...e,value:j(e.value,s)})}"`:typeof e=="string"?`${t}="${e}"`:v(e)?`:${t}="${u({...e,value:j(e.value,s)})}"`:l.isPlainObject(e)?`:${t}='{${K(e).join(", ")}}'`:`:${t}='${JSON.stringify(e)}'`}function fe(t,e={},s=[]){if(!!Object.keys(e.style||{}).length){const i=`${t.name}_${t.id}`;e.class?typeof e.class=="string"?e.class=[e.class,i].join(" "):(e.__class=e.class,e.class=i):(e.class=i,delete e.style)}return Object.entries(e).map(([i,n])=>pe(i,n,s))}function me(t,e,s,r){const i=M(e.modifiers,!0);return r&&r.length>0?`@${t}${i.join("")}="(...args:any[]) => ${s}"`:`@${t}${i.join("")}="${s}"`}function de(t,e={},s={}){const r={},i=Array.from(s[t]||new Set([])),n=i.length?`({${i.join(", ")}}, args)`:"";return{binders:Object.entries(e).map(([a,c])=>{const h=c.handler.value.startsWith("this."),f=h?A(c.handler.value):`${l.camelCase(a)}_handler_${t}${n}`;return h||(r[f]=i.length?{type:"JSFunction",value:`{
31
32
  return (${c.handler.value}).apply(this, args);
32
- }`}:c.handler),me(a,c,f,i)}),handlers:s}}function he(t,e,r={},s={},i={},n){const{binders:o,handlers:a}=de(e,s,i);return{props:fe(t,r,n).join(" "),handlers:a,binders:o,events:o.join(" ")}}function ye(t=[]){const e=[],{vIf:r,vShow:s,vModels:i,vFor:n}=ge(t);if(r&&e.push(`v-if="${u(r.value)}"`),s&&e.push(`v-show="${u(s.value)}"`),i.forEach(o=>{const a=M(o.modifiers,!0),c=o.arg?C(o.arg)?`:[${u(o.arg)}]`:`:${o.arg}`:"";e.push(`v-model${c}${a}="${u(o.value)}"`)}),n){const{item:o,index:a}={item:"item",index:"index",...n.iterator};e.push(`v-for="(${o}, ${a}) in ${u(n.value)}"`)}return e}function ge(t=[]){const e=t.find(o=>l.camelCase(o.name)==="vIf"),r=t.find(o=>l.camelCase(o.name)==="vFor"),s=t.find(o=>l.camelCase(o.name)==="vShow"),i=t.find(o=>l.camelCase(o.name)==="vBind"),n=t.filter(o=>l.camelCase(o.name)==="vModel");return{vIf:e,vFor:r,vShow:s,vModels:n,vBind:i}}function $e(t,e,r,s,i){if(typeof t=="string")return t;if(C(t)){let n=u(t,!1);return n=j(n,e),n=A(n),`{{ ${n} }}`}return Array.isArray(t)?V(t,r,e,s,i):""}function ve(t,e,r){if(!t)return e;const s=typeof t=="string"?{name:t,params:[]}:{params:[],...t};return`<template ${`#${s.name}="${s.params?.length>0?`{${s.params?.join(",")}}`:`scope_${r}`}"`}>
33
+ }`}:c.handler),me(a,c,f,i)}),handlers:r}}function he(t,e,s={},r={},i={},n){const{binders:o,handlers:a}=de(e,r,i);return{props:fe(t,s,n).join(" "),handlers:a,binders:o,events:o.join(" ")}}function ye(t=[]){const e=[],{vIf:s,vShow:r,vModels:i,vFor:n}=ge(t);if(s&&e.push(`v-if="${u(s.value)}"`),r&&e.push(`v-show="${u(r.value)}"`),i.forEach(o=>{const a=M(o.modifiers,!0),c=o.arg?C(o.arg)?`:[${u(o.arg)}]`:`:${o.arg}`:"";e.push(`v-model${c}${a}="${u(o.value)}"`)}),n){const{item:o,index:a}={item:"item",index:"index",...n.iterator};e.push(`v-for="(${o}, ${a}) in ${u(n.value)}"`)}return e}function ge(t=[]){const e=t.find(o=>l.camelCase(o.name)==="vIf"),s=t.find(o=>l.camelCase(o.name)==="vFor"),r=t.find(o=>l.camelCase(o.name)==="vShow"),i=t.find(o=>l.camelCase(o.name)==="vBind"),n=t.filter(o=>l.camelCase(o.name)==="vModel");return{vIf:e,vFor:s,vShow:r,vModels:n,vBind:i}}function $e(t,e,s,r,i){if(typeof t=="string")return t;if(C(t)){let n=u(t,!1);return n=j(n,e),n=A(n),`{{ ${n} }}`}return Array.isArray(t)?V(t,s,e,r,i):""}function be(t,e,s){if(!t)return e;const r=typeof t=="string"?{name:t,params:[]}:{params:[],...t};return`<template ${`#${r.name}="${r.params?.length>0?`{${r.params?.join(",")}}`:`scope_${s}`}"`}>
33
34
  ${e}
34
- </template>`}function be(t,e=[],r=[],s={}){const i={vue:["defineComponent","reactive"]};for(const n of e){const o=t.get(n.split(":")[0]);o&&o.package&&(i[o.package]??(i[o.package]=[])).push(o.parent||(o.alias||"").split(".")[0]||o.name)}for(const[n,o]of Object.entries(s))(i[n]??(i[n]=[])).push(...Array.from(o));return Object.entries(i).filter(([n,o])=>!!o.length).map(([n,o])=>`import { ${l.dedupArray(o).join(",")}} from '${n}';`).concat(r)}function je(t={}){const e=[];for(const[r,s]of Object.entries(t))e.push(`
35
- ${r} {
36
- ${ee(s)}
35
+ </template>`}function ve(t,e=[],s=[],r={}){const i={vue:["defineComponent","reactive"]};for(const n of e){const o=t.get(n.split(":")[0]);o&&o.package&&(i[o.package]??(i[o.package]=[])).push(o.parent||(o.alias||"").split(".")[0]||o.name)}for(const[n,o]of Object.entries(r))(i[n]??(i[n]=[])).push(...Array.from(o));return Object.entries(i).filter(([n,o])=>!!o.length).map(([n,o])=>`import { ${l.dedupArray(o).join(",")}} from '${n}';`).concat(s)}function je(t={}){const e=[];for(const[s,r]of Object.entries(t))e.push(`
36
+ ${s} {
37
+ ${ee(r)}
37
38
  }
38
39
  `);return e.join(`
39
- `)}function we(t,e){const{dsl:r}=t,s=Object.keys(r.computed||{}),i=v(r.lifeCycles,s),n=v(r.computed,s),o=oe(r.watch,s),a=ae(r.dataSources),{methods:c,nodes:h,components:f,importBlocks:y}=V(r.nodes||[],e,s,t.context),S=[...n,...o.computed],p=v({...c,...r.methods||{}},s),O=y.map(g=>`import ${g.name} from './${g.id}.vue';`),m=be(e,f,O,t.imports);return{id:r.id,version:r.__VERSION__,name:r.name,state:re(r.state).join(","),inject:se(r.inject).join(","),props:ne(r.props).join(","),emits:ie(r.emits).join(","),watch:o.watches.join(","),lifeCycles:i.join(","),computed:S.join(","),methods:[...a,...p].join(","),imports:m.join(`
40
+ `)}function Se(t,e){const{dsl:s}=t,r=Object.keys(s.computed||{}),i=b(s.lifeCycles,r),n=b(s.computed,r),o=oe(s.watch,r),a=ae(s.dataSources),{methods:c,nodes:h,components:f,importBlocks:y}=V(s.nodes||[],e,r,t.context),w=[...n,...o.computed],p=b({...c,...s.methods||{}},r),O=y.map(g=>`import ${g.name} from './${g.id}.vue';`),m=ve(e,f,O,t.imports);return{id:s.id,version:s.__VERSION__,name:s.name,state:se(s.state).join(","),inject:re(s.inject).join(","),props:ne(s.props).join(","),emits:ie(s.emits).join(","),watch:o.watches.join(","),lifeCycles:i.join(","),computed:w.join(","),methods:[...a,...p].join(","),imports:m.join(`
40
41
  `),components:f.join(","),returns:t.members.join(","),template:h.join(`
41
- `),css:r.css||"",style:je(t.style)}}const Se=`
42
+ `),css:s.css||"",style:je(t.style)}}const we=`
42
43
  <%= imports %>
43
44
  import { useProvider } from '@vtj/renderer';
44
45
  export default defineComponent({
@@ -75,7 +76,7 @@ export default defineComponent({
75
76
  <%= css %>
76
77
  <%= style %>
77
78
  </style>
78
- `,_e=l.template(Se),ke=l.template(Oe);async function xe(t,e=new Map,r=[],s){const i=new te(l.cloneDeep(t),r),n=we(i,e),o=_e(n),a=ke({template:n.template,css:await W(n.css,s),script:await Z(o,s),style:await W(n.style,s)});return await J(a,s)}async function Ce(t){const e=`
79
+ `,ke=l.template(we),_e=l.template(Oe);async function xe(t,e=new Map,s=[],r){const i=new te(l.cloneDeep(t),s),n=Se(i,e),o=ke(n),a=_e({template:n.template,css:await W(n.css,r),script:await Z(o,r),style:await W(n.style,r)});return await J(a,r)}async function Ce(t){const e=`
79
80
  <template>
80
81
  <div>
81
82
  <h3>源码模式页面</h3>
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { mitt as z, dedupArray as j, toArray as G, camelCase as d, isPlainObject as H, template as B, cloneDeep as U } from "@vtj/base";
1
+ import { mitt as z, dedupArray as j, toArray as G, camelCase as h, isPlainObject as H, template as B, cloneDeep as U } from "@vtj/base";
2
2
  import { format as O } from "prettier/standalone";
3
3
  import * as X from "prettier/plugins/html";
4
4
  import * as J from "prettier/plugins/babel";
@@ -8,15 +8,15 @@ import * as T from "prettier/plugins/estree";
8
8
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
9
9
  * @name @vtj/coder
10
10
  * @author CHC chenhuachun1549@dingtalk.com
11
- * @version 0.7.15
11
+ * @version 0.7.17
12
12
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
13
13
  */
14
- const Pt = "0.7.15";
14
+ const Pt = "0.7.17";
15
15
  /**!
16
16
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
17
17
  * @name @vtj/core
18
18
  * @author CHC chenhuachun1549@dingtalk.com
19
- * @version 0.7.15
19
+ * @version 0.7.17
20
20
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
21
21
  */
22
22
  const Y = [
@@ -222,7 +222,7 @@ class et {
222
222
  this.context[t.id] = n;
223
223
  }
224
224
  collectStyle(t) {
225
- t.id && t.props?.style && (this.style[`.${t.name}_${t.id}`] = t.props.style);
225
+ t.id && t.props?.style && Object.keys(t.props.style).length && (this.style[`.${t.name}_${t.id}`] = t.props.style);
226
226
  }
227
227
  walkNodes(t) {
228
228
  const s = (r, i) => {
@@ -293,7 +293,7 @@ function D(e, t, s = [], r = {}, i) {
293
293
  continue;
294
294
  const A = lt(f, t, k);
295
295
  A && a.push(A), ut(k) && c.push({ id: k.id, name: f });
296
- const { props: F, events: N, handlers: Q } = ht(
296
+ const { props: F, events: N, handlers: Q } = dt(
297
297
  u,
298
298
  x,
299
299
  u.props,
@@ -313,7 +313,8 @@ function D(e, t, s = [], r = {}, i) {
313
313
  `), Object.assign(o, m?.methods || {}), a = a.concat(m?.components || []), c = c.concat(m?.importBlocks || [])), y.push(
314
314
  f === "img" ? `<${f} ${R} ${F} ${N} />
315
315
  ` : `<${f} ${R} ${F} ${N}>${g ? `
316
- ` + g.trim() : ""}</${f}>`
316
+ ` + g.trim() : ""}</${f}>
317
+ `
317
318
  );
318
319
  }
319
320
  const S = vt(p.slot, y.join(`
@@ -369,12 +370,12 @@ function mt(e, t, s, r) {
369
370
  const i = M(t.modifiers, !0);
370
371
  return r && r.length > 0 ? `@${e}${i.join("")}="(...args:any[]) => ${s}"` : `@${e}${i.join("")}="${s}"`;
371
372
  }
372
- function dt(e, t = {}, s = {}) {
373
+ function ht(e, t = {}, s = {}) {
373
374
  const r = {}, i = Array.from(s[e] || /* @__PURE__ */ new Set([])), n = i.length ? `({${i.join(", ")}}, args)` : "";
374
375
  return {
375
376
  binders: Object.entries(t).map(([a, c]) => {
376
- const h = c.handler.value.startsWith("this."), p = h ? E(c.handler.value) : `${d(a)}_handler_${e}${n}`;
377
- return h || (r[p] = i.length ? {
377
+ const d = c.handler.value.startsWith("this."), p = d ? E(c.handler.value) : `${h(a)}_handler_${e}${n}`;
378
+ return d || (r[p] = i.length ? {
378
379
  type: "JSFunction",
379
380
  value: `{
380
381
  return (${c.handler.value}).apply(this, args);
@@ -384,8 +385,8 @@ function dt(e, t = {}, s = {}) {
384
385
  handlers: r
385
386
  };
386
387
  }
387
- function ht(e, t, s = {}, r = {}, i = {}, n) {
388
- const { binders: o, handlers: a } = dt(t, r, i);
388
+ function dt(e, t, s = {}, r = {}, i = {}, n) {
389
+ const { binders: o, handlers: a } = ht(t, r, i);
389
390
  return {
390
391
  props: ft(e, s, n).join(" "),
391
392
  handlers: a,
@@ -405,7 +406,7 @@ function yt(e = []) {
405
406
  return t;
406
407
  }
407
408
  function $t(e = []) {
408
- const t = e.find((o) => d(o.name) === "vIf"), s = e.find((o) => d(o.name) === "vFor"), r = e.find((o) => d(o.name) === "vShow"), i = e.find((o) => d(o.name) === "vBind"), n = e.filter((o) => d(o.name) === "vModel");
409
+ const t = e.find((o) => h(o.name) === "vIf"), s = e.find((o) => h(o.name) === "vFor"), r = e.find((o) => h(o.name) === "vShow"), i = e.find((o) => h(o.name) === "vBind"), n = e.filter((o) => h(o.name) === "vModel");
409
410
  return {
410
411
  vIf: t,
411
412
  vFor: s,
@@ -457,7 +458,7 @@ function bt(e = {}) {
457
458
  `);
458
459
  }
459
460
  function wt(e, t) {
460
- const { dsl: s } = e, r = Object.keys(s.computed || {}), i = v(s.lifeCycles, r), n = v(s.computed, r), o = ot(s.watch, r), a = at(s.dataSources), { methods: c, nodes: h, components: p, importBlocks: y } = D(
461
+ const { dsl: s } = e, r = Object.keys(s.computed || {}), i = v(s.lifeCycles, r), n = v(s.computed, r), o = ot(s.watch, r), a = at(s.dataSources), { methods: c, nodes: d, components: p, importBlocks: y } = D(
461
462
  s.nodes || [],
462
463
  t,
463
464
  r,
@@ -490,7 +491,7 @@ function wt(e, t) {
490
491
  `),
491
492
  components: p.join(","),
492
493
  returns: e.members.join(","),
493
- template: h.join(`
494
+ template: d.join(`
494
495
  `),
495
496
  css: s.css || "",
496
497
  style: bt(e.style)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vtj/coder",
3
3
  "private": false,
4
- "version": "0.7.15",
4
+ "version": "0.7.17",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "vue-tsc && vite build",
@@ -11,11 +11,11 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@vtj/base": "^0.7.6",
14
- "@vtj/core": "^0.7.15",
14
+ "@vtj/core": "^0.7.17",
15
15
  "prettier": "~3.2.1"
16
16
  },
17
17
  "devDependencies": {
18
- "@vtj/cli": "^0.7.11"
18
+ "@vtj/cli": "^0.7.13"
19
19
  },
20
20
  "exports": {
21
21
  ".": {
@@ -31,7 +31,7 @@
31
31
  "dist",
32
32
  "types"
33
33
  ],
34
- "gitHead": "cbb81a983f9271342f987a2507923ef7c2e55369",
34
+ "gitHead": "50302d6266d79b759097242ed206587f76fb0276",
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  }
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2024, VTJ.PRO All rights reserved.
3
3
  * @name @vtj/coder
4
4
  * @author CHC chenhuachun1549@dingtalk.com
5
- * @version 0.7.14
5
+ * @version 0.7.16
6
6
  * @license <a href="https://vtj.pro/license.html">MIT License</a>
7
7
  */
8
- export declare const version = "0.7.14";
8
+ export declare const version = "0.7.16";