babel-preset-dlight
Advanced tools
Comparing version 0.10.4 to 0.10.5
@@ -1,2 +0,2 @@ | ||
if(typeof process==="undefined")window.process={env:{}};import{declare as be}from"@babel/helper-plugin-utils";function z(a,t){let s=[];a.forEach((i,r)=>{(Array.isArray(i)?i[0]:i)===t&&s.unshift(r)});for(let i of s)a.splice(i,1)}var G=be((a,t)=>{a.assertVersion(7);let{disallowAmbiguousJSXLike:s,dts:i}=t??{},{isTSX:r}=t??{};return{name:"syntax-typescript",manipulateOptions(o,n){let{plugins:p}=n;z(p,"flow"),z(p,"jsx"),p.push("objectRestSpread","classProperties"),r&&p.push("jsx"),n.plugins.push(["typescript",{disallowAmbiguousJSXLike:s,dts:i}])}}});import Ee from"@babel/plugin-syntax-do-expressions";import he from"@babel/plugin-syntax-decorators";import*as y from"@babel/types";import*as l from"@babel/types";function Q(a,t,s,i){i.body.includes(s)||i.body.unshift(s),s.value.properties.unshift(l.objectProperty(l.identifier(a),l.arrayExpression(t.map(r=>l.stringLiteral(r)))))}var ge=["escape","$"];function ve(a,t){let s=!1,i=a.parentPath;for(;i&&i.node!==t;){let r=i.node;if(l.isCallExpression(r)&&l.isIdentifier(r.callee)&&ge.includes(r.callee.name)){s=!0;break}i=i.parentPath}return s}function De(a,t){let s=!1,i=a.parentPath;for(;i&&i.node!==t;){let r=i.node,o=i.parentPath?.node;if((l.isArrowFunctionExpression(r)||l.isFunctionExpression(r))&&l.isCallExpression(o)&&l.isIdentifier(o.callee)&&o.callee.name==="manual"){s=!0;break}i=i.parentPath}return s}function Se(a){let t=a.parentPath.node;return l.isAssignmentExpression(t)&&t.left===a.node}function K(a,t){return!De(a,t)&&!ve(a,t)}function Y(a){a.value=l.arrowFunctionExpression([],a.value)}function T(a,t){return l.isMemberExpression(a)&&!a.computed&&a.property===t}function B(a,t){return l.isObjectProperty(a)&&a.key===t}function Z(a,t){t.length!==0&&a.body.unshift(l.classMethod("constructor",l.identifier("constructor"),[],l.blockStatement([l.expressionStatement(l.callExpression(l.super(),[])),...t.map(s=>l.expressionStatement(l.assignmentExpression("=",l.memberExpression(l.thisExpression(),l.identifier(s)),l.callExpression(l.memberExpression(l.memberExpression(l.thisExpression(),l.identifier(s)),l.identifier("bind")),[l.thisExpression()]))))])))}function M(a){let t=a.node;return(t.decorators??[]).find(r=>l.isIdentifier(r.expression,{name:"View"}))&&(t.superClass=l.identifier("View"),t.decorators=t.decorators?.filter(r=>!l.isIdentifier(r.expression,{name:"View"}))),l.isIdentifier(t.superClass,{name:"View"})}function ee(a,t){let s=a;return t.scope.traverse(t.node,{ClassProperty(i){if(i.node!==a)return;let r=a.value.body,o=l.isExpression(r)?l.blockStatement([l.returnStatement(r)]):r,n=l.classMethod("method",a.key,a.value.params,o);s=n,i.replaceWith(n)}}),s}function U(a,t,s,i){let r=[],o=[];return a.scope.traverse(t,{MemberExpression(n){Se(n)?o.push(n.node.property.name):i.includes(n.node.property.name)&&l.isThisExpression(n.node.object)&&K(n,s)&&r.push(n.node.property.name)}}),{deps:r,assignDeps:o}}function te(a,t,s,i){let r=t.filter(u=>!i.includes(u)),n=a.value.properties.reduce((u,v)=>{let P=v.key.name,w=v.value.elements.map(C=>C.value);return u[P]=w,u},{}),p=new Set,d=new Set;function f(u){if(!d.has(u)){d.add(u),p.add(u);for(let v of n[u]??[])f(v)}}for(let u of s)f(u);return r.filter(u=>!p.has(u))}import*as m from"@babel/types";import{parseBody as J}from"@dlightjs/view-parser";import*as x from"@babel/types";import{isAHtmlTag as $e}from"@dlightjs/view-parser";function ie(a){let t=a.tag;return typeof t=="string"?!1:x.isIdentifier(t)&&$e(t.name)?(a.tag=x.stringLiteral(t.name),!0):x.isCallExpression(t)&&t.callee.name==="htmlTag"?(a.tag=t.arguments[0],!0):!1}function re(a,t){let s=t.tag;return!x.isMemberExpression(s)||!x.isThisExpression(s.object)?!1:!!a.includes(s.property.name)}function se(a){let t=a.tag;if(typeof t=="string")return!1;if(x.isCallExpression(t)&&t.callee.name==="tag")return a.tag=t.arguments[0],!0}function H(a,t){return x.isIdentifier(a.tag)&&a.tag.name===t}function R(){return Math.random().toString(20).slice(2,8)}function V(a){return x.variableDeclaration("const",[x.variableDeclarator(x.identifier("_"),a)])}function ne(a,t,s,i=[]){let r=[];return a.scope.traverse(V(t),{MemberExpression(o){s.includes(o.node.property.name)&&x.isThisExpression(o.node.object)&&K(o)&&r.push(x.stringLiteral(o.node.property.name))}}),r=[...new Set([...r,...i])],r}function oe(a,t,s,i=[]){let r=[];return a.scope.traverse(V(t),{Identifier(o){for(let{ids:n,propNames:p}of s)n.includes(o.node.name)&&r.push(...p)}}),r=[...new Set([...r,...i])],r}function X(a,t){if(x.isIdentifier(t))return[t.name];let s=[];return a.scope.traverse(t,{Identifier(i){x.isObjectProperty(i.parentPath.node)||s.push(i.node.name)},ObjectProperty(i){s.push(i.node.value.name)}}),[...new Set(s)]}function ae(a,t,s,i){let r=X(a,s);a.scope.traverse(x.functionDeclaration(null,[],t),{Identifier(o){if(r.includes(o.node.name)&&!T(o.parentPath.node,o.node)&&!B(o.parentPath.node,o.node)){let n=x.memberExpression(x.identifier(i),x.identifier(o.node.name));o.replaceWith(n),o.skip()}}})}function q(a){if(!x.isMemberExpression(a))return!1;for(;a.property;){if(!x.isMemberExpression(a.property)&&!x.isIdentifier(a.property))return!1;a=a.property}return!0}import*as e from"@babel/types";function F(a,t,s){return e.variableDeclaration("const",[e.variableDeclarator(e.identifier(a),e.newExpression(e.memberExpression(e.identifier("DLight"),t),s))])}var j=class{depChain;subViews;idDepsArr=[];usedProperties=[];path;constructor(t,s,i,r=[]){this.path=t,this.depChain=s,this.subViews=i,this.idDepsArr=r}generate(t){let s=[];for(let[i,r]of t.entries())s.push(...this.resolveParserNode(r,i));return s.push(e.returnStatement(e.arrayExpression(t.map((i,r)=>i.attr.isSubView?e.spreadElement(e.identifier(`_$node${r}`)):e.identifier(`_$node${r}`))))),this.usedProperties=[...new Set(this.usedProperties)],e.blockStatement(s)}geneDeps(t){let s=[...new Set([...ne(this.path,t,this.depChain),...oe(this.path,t,this.idDepsArr)])];return this.usedProperties.push(...s.filter(i=>e.isStringLiteral(i)).map(i=>i.value)),s}resolveParserNode(t,s){return re(this.subViews,t)?this.resolveSubView(t,s):H(t,"_")?this.resolveExpression(t,s):H(t,"env")?this.resolveEnv(t,s):t.tag==="if"?this.resolveIf(t,s):t.tag==="for"?this.resolveFor(t,s):t.tag==="_$text"?this.resolveText(t,s):ie(t)?this.resolveHTML(t,s):(se(t),this.resolveCustom(t,s))}resolveIf(t,s){let i=[],r=`_$node${s}`;i.push(F(r,e.identifier("IfNode"),[]));for(let o of t.attr.conditions){let n=this.geneDeps(o.condition);if(n.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addCond")),[e.arrowFunctionExpression([],o.condition),e.arrowFunctionExpression([],this.generate(o.parserNodes)),e.thisExpression(),e.arrayExpression(n)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addCond")),[e.arrowFunctionExpression([],o.condition),e.arrowFunctionExpression([],this.generate(o.parserNodes))])))}return i}resolveFor(t,s){let i=[],r=t.attr.key,o=t.attr.item,n=t.attr.array,p=`_$node${s}`;i.push(F(p,e.identifier("ForNode"),[]));let d=this.geneDeps(n);if(d.length>0){let f=X(this.path,o),v=`_$valuedItem${R()}`,P=new j(this.path,this.depChain,this.subViews,[...this.idDepsArr,{ids:f,propNames:d}]),w=P.generate(t.children);this.usedProperties.push(...P.usedProperties);let C,k;e.isIdentifier(o)?(C=[e.variableDeclaration("let",[e.variableDeclarator(o,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))])],k=e.variableDeclaration("const",[e.variableDeclarator(e.identifier("updateFunc"),e.arrowFunctionExpression([],e.assignmentExpression("=",o,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))))])):(ae(this.path,w,o,v),C=[e.variableDeclaration("const",[e.variableDeclarator(o,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))]),e.variableDeclaration("const",[e.variableDeclarator(e.identifier(v),e.objectExpression(f.map(L=>e.objectProperty(e.identifier(L),e.identifier(L),void 0,!0))))])],k=e.variableDeclaration("const",[e.variableDeclarator(e.identifier("updateFunc"),e.arrowFunctionExpression([],e.blockStatement([e.variableDeclaration("const",[e.variableDeclarator(o,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))]),...f.map(L=>e.expressionStatement(e.assignmentExpression("=",e.memberExpression(e.identifier(v),e.identifier(L)),e.identifier(L))))])))])),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addNodeFunc")),[e.arrowFunctionExpression([e.identifier("_$key"),e.identifier("_$idx"),e.identifier("node_for")],e.blockStatement([...C,k,e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(d),e.identifier("updateFunc")])),...w.body.slice(0,-1),e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$deleteDeps")),[e.arrayExpression(d),e.identifier("updateFunc"),e.conditionalExpression(e.callExpression(e.memberExpression(e.identifier("Array"),e.identifier("isArray")),[e.identifier("_$node0")]),e.memberExpression(e.identifier("_$node0"),e.numericLiteral(0),!0),e.identifier("_$node0"))])),w.body[w.body.length-1]]))]))),r&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addKeyFunc")),[e.arrowFunctionExpression([],e.blockStatement([e.variableDeclaration("const",[e.variableDeclarator(e.identifier("keys"),e.arrayExpression())]),e.forOfStatement(e.variableDeclaration("const",[e.variableDeclarator(o)]),n,e.blockStatement([e.expressionStatement(e.callExpression(e.memberExpression(e.identifier("keys"),e.identifier("push")),[r]))])),e.returnStatement(e.identifier("keys"))]))]))),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addArrayFunc")),[e.thisExpression(),e.arrowFunctionExpression([],n),e.arrayExpression(d)])))}else i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addNodess")),[e.arrowFunctionExpression([],e.callExpression(e.memberExpression(e.callExpression(e.memberExpression(e.identifier("Array"),e.identifier("from")),[n]),e.identifier("map")),[e.arrowFunctionExpression([o],this.generate(t.children))]))])));return i}resolveText(t,s){let i=t.attr._$content,r=this.geneDeps(i),o=`_$node${s}`,n=[];return r.length>0?n.push(F(o,e.identifier("TextNode"),[e.arrowFunctionExpression([],i),e.thisExpression(),e.arrayExpression(r)])):n.push(F(o,e.identifier("TextNode"),[i])),n}resolveHTML(t,s){let i=[],r=`_$node${s}`;i.push(F(r,e.identifier("HtmlNode"),[t.tag]));for(let{key:o,value:n,nodes:p}of t.attr.props){if(this.parsePropNodes(n,p),o==="do"){i.push(e.expressionStatement(e.callExpression(n,[e.identifier(r)])));continue}if(o==="forwardProps"){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("forwardProps")),[e.identifier(r)])));continue}if(["willAppear","didAppear","willDisappear","didDisappear"].includes(o)){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addLifeCycle")),[n,e.stringLiteral(o)])));continue}if(o.startsWith("on")){let f=o.slice(2);i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addEvent")),[e.stringLiteral(f),n])));continue}if(o==="addEvents"){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addEvents")),[n])));continue}o==="_$content"&&(o="innerText");let d=this.geneDeps(n);if(o==="element"){e.isMemberExpression(n)&&e.isThisExpression(n.object)&&e.isIdentifier(n.property)&&(d=d.filter(f=>!e.isStringLiteral(f)||e.isStringLiteral(f)&&f.value!==n.property.name)),q(n)?i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.conditionalExpression(e.binaryExpression("===",e.unaryExpression("typeof",n),e.stringLiteral("function")),e.callExpression(n,[e.memberExpression(e.identifier(r),e.identifier("_$el"))]),e.assignmentExpression("=",n,e.memberExpression(e.identifier(r),e.identifier("_$el"))))))])):i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.callExpression(n,[e.memberExpression(e.identifier(r),e.identifier("_$el"))])))])),i.push(e.expressionStatement(e.callExpression(e.identifier(`${r}Element`),[]))),d.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(d),e.identifier(`${r}Element`),e.identifier(r)])));continue}if(o==="setAttributes"){if(d.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addAttributes")),[e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(d)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addAttributes")),[n])));continue}if(o==="style"){if(d.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addStyle")),[e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(d)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addStyle")),[n])));continue}if(o==="className"){if(d.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addClassName")),[e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(d)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addClassName")),[n])));continue}if(d.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addProp")),[e.stringLiteral(o),e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(d)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addProp")),[e.stringLiteral(o),n])))}return t.children.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addNodes")),[e.callExpression(e.arrowFunctionExpression([],this.generate(t.children)),[])]))),i}resolveCustom(t,s){let i=[],r=`_$node${s}`;i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(r),e.newExpression(t.tag,[]))]));for(let{key:o,value:n,nodes:p}of t.attr.props){if(n=this.parsePropNodes(n,p),o==="do"){i.push(e.expressionStatement(e.callExpression(n,[e.identifier(r)])));continue}if(o==="forwardProps"){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("forwardProps")),[e.identifier(r)])));continue}if(["willMount","didMount","willUnmount","didUnmount"].includes(o)){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addLifeCycle")),[n,e.stringLiteral(o)])));continue}let d=this.geneDeps(n);if(o==="element"){e.isMemberExpression(n)&&e.isThisExpression(n.object)&&e.isIdentifier(n.property)&&(d=d.filter(u=>!e.isStringLiteral(u)||e.isStringLiteral(u)&&u.value!==n.property.name)),q(n)?i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.conditionalExpression(e.binaryExpression("===",e.unaryExpression("typeof",n),e.stringLiteral("function")),e.callExpression(n,[e.memberExpression(e.identifier(r),e.identifier("_$el"))]),e.assignmentExpression("=",n,e.memberExpression(e.identifier(r),e.identifier("_$el"))))))])):i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.callExpression(n,[e.memberExpression(e.identifier(r),e.identifier("_$el"))])))])),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addLifeCycle")),[e.identifier(`${r}Element`),e.stringLiteral("didMount")]))),d.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(d),e.identifier(`${r}Element`),e.identifier(r)])));continue}let f=o==="_$content"?"_$addDefaultProp":"_$addProp";if(d.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(f)),[e.stringLiteral(o),e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(d)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(f)),[e.stringLiteral(o),n])))}return t.children.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addChildren")),[e.arrowFunctionExpression([],this.generate(t.children))]))),i}resolveSubView(t,s){t.attr.isSubView=!0;let i=`_$node${s}`,r=[],o=t.attr.props.map(({key:d,value:f,nodes:u})=>(f=this.parsePropNodes(f,u),{key:d,value:f})),n=R(),p=[];for(let{key:d,value:f}of o){d==="_$content"&&(d="content");let u=`${d}_${n}`,v=this.geneDeps(f);r.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(u),e.objectExpression([e.objectProperty(e.identifier("value"),f),e.objectProperty(e.identifier("deps"),e.arrayExpression(v))]))])),v.length>0&&(r.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${d}UpdateFunc${s}`),e.arrowFunctionExpression([],e.assignmentExpression("=",e.memberExpression(e.identifier(u),e.identifier("value")),f)))])),r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(v),e.identifier(`${d}UpdateFunc${s}`)])))),p.push({key:d,keyWithId:u,listenDeps:v})}r.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(i),e.callExpression(t.tag,[e.objectExpression(p.map(({key:d,keyWithId:f})=>e.objectProperty(e.identifier(d),e.identifier(f))))]))]));for(let{key:d,listenDeps:f}of p)f.length>0&&r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$deleteDeps")),[e.arrayExpression(f),e.identifier(`${d}UpdateFunc${s}`),e.memberExpression(e.identifier(i),e.numericLiteral(0),!0)])));return r}resolveEnv(t,s){let i=`_$node${s}`,r=[];r.push(F(i,e.identifier("EnvNode"),[])),t.children.length>0&&r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(i),e.identifier("_$addNodes")),[e.callExpression(e.arrowFunctionExpression([],this.generate(t.children)),[])])));for(let{key:o,value:n,nodes:p}of t.attr.props){n=this.parsePropNodes(n,p);let d=this.geneDeps(n);if(d.length>0){r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(i),e.identifier("_$addProp")),[e.stringLiteral(o),e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(d)])));continue}r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(i),e.identifier("_$addProp")),[e.stringLiteral(o),n])))}return r}resolveExpression(t,s){let i=[],r=`_$node${s}`;for(let{key:o,value:n,nodes:p}of t.attr.props){if(n=this.parsePropNodes(n,p),o==="_$content"){let f=this.geneDeps(n);f.length>0?i.push(F(r,e.identifier("ExpressionNode"),[e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(f)])):i.push(F(r,e.identifier("ExpressionNode"),[n]));continue}if(o==="onUpdateNodes"){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$onUpdateNodes")),[n])));continue}let d=this.geneDeps(n);if(d.length>0&&!["willAppear","didAppear","willDisappear","didDisappear"].includes(o)){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addProp")),[e.stringLiteral(o),e.arrowFunctionExpression([],n),e.thisExpression(),e.arrayExpression(d)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addProp")),[e.stringLiteral(o),n])))}return i}parsePropNodes(t,s){let i=t,r=this.generate.bind(this);return this.path.scope.traverse(V(t),{StringLiteral(o){let n=o.node.value,p=s[n];if(!p)return;let d=e.callExpression(e.arrowFunctionExpression([],r(p)),[]);t===o.node&&(i=d),o.replaceWith(d),o.skip()}}),i}};function W(a,t,s,i,r=[]){let o=new j(a,s,i,r);return{code:o.generate(t),useProperties:o.usedProperties}}function pe(a,t,s,i,r=!1){let o,n,p=[...a.body.directives,...a.body.body];if(r){let d=a.params[0];if(!d||!m.isObjectPattern(d)){let f=W(i,J(p,i),t,s);o=f.code,n=f.useProperties}else{let u=d.properties.map(P=>P.key.name).map(P=>({ids:[P],propNames:[m.arrayExpression([m.spreadElement(m.logicalExpression("??",m.optionalMemberExpression(m.identifier(P),m.identifier("deps"),!1,!0),m.arrayExpression()))]).elements[0]]})),v=W(i,J(p,i),t,s,u);o=v.code,n=v.useProperties}}else{let d=W(i,J(p,i),t,s);o=d.code,n=d.useProperties}return a.body=o,n}function Pe(a,t){let s=a.params[0];if(!s||!m.isObjectPattern(s))return;let i=[];for(let r of s.properties){let o=r.key.name;i.push(o),m.isAssignmentPattern(r.value)&&(r.value.right=m.objectExpression([m.objectProperty(m.identifier("value"),r.value.right),m.objectProperty(m.identifier("deps"),m.arrayExpression())]))}t.scope.traverse(m.functionDeclaration(null,[],a.body),{Identifier(r){i.includes(r.node.name)&&!T(r.parentPath.node,r.node)&&!B(r.parentPath.node,r.node)&&(r.replaceWith(m.optionalMemberExpression(m.identifier(r.node.name),m.identifier("value"),!1,!0)),r.skip())}})}function de(a,t,s){let i=[],r,o=[];for(let p of a.body){if(m.isClassProperty(p)){let u=p.value;for(;m.isTSAsExpression(u);)u=u.expression;if(p.value=u,!m.isArrowFunctionExpression(p.value))continue}let d=p.decorators?.find(u=>m.isIdentifier(u.expression)&&u.expression.name==="View"),f=p.key.name==="Body";!d&&!f||(m.isClassProperty(p)&&(p=ee(p,s)),d&&(p.decorators=null,o.push(p)),r=p)}let n=o.map(p=>p.key.name);for(let p of o)Pe(p,s),i.push(...pe(p,t,n,s,!0));return i.push(...pe(r,t,n,s)),i}import*as c from"@babel/types";function le(a,t){let s=a.key.name;a.key.name=`_$$${s}`;let i=t.body.indexOf(a),r=c.classProperty(c.identifier(`_$$${s}Deps`),c.newExpression(c.identifier("Set"),[])),o=c.classMethod("get",c.identifier(s),[],c.blockStatement([c.returnStatement(c.memberExpression(c.thisExpression(),c.identifier(`_$$${s}`)))])),n=c.classMethod("set",c.identifier(s),[c.identifier("value")],c.blockStatement([c.expressionStatement(c.callExpression(c.memberExpression(c.thisExpression(),c.identifier("_$updateProperty")),[c.stringLiteral(s),c.identifier("value")]))]));t.body.splice(i+1,0,r,o,n)}function ce(a,t,s,i){let r=t.body.indexOf(a),o=s.toLowerCase(),n=c.classProperty(c.identifier(`_$$$${i}`),c.stringLiteral(o));t.body.splice(r,0,n)}function fe(a,t,s){if(t.body.find(o=>c.isClassProperty(o)&&o.key.name==="_$defaultProp"))return;let i=t.body.indexOf(a),r=c.classProperty(c.identifier("_$defaultProp"),c.stringLiteral(s));t.body.splice(i,0,r)}function ue(a,t,s){let i=t.body.indexOf(a),r=c.classMethod("get",c.identifier(s),[],c.blockStatement([c.returnStatement(c.callExpression(c.memberExpression(c.thisExpression(),c.identifier("_$childrenFuncs")),[]))]));t.body.splice(i,1,r)}function me(a,t,s){let i=t.body.indexOf(a),r=c.classProperty(c.identifier(`_$$${s}`),c.stringLiteral("Watcher"));t.body.splice(i,0,r)}import{minimatch as xe}from"minimatch";function ye(a,t){let{files:s="**/*.{js,jsx,ts,tsx}",excludeFiles:i="**/{dist,node_modules,lib}/*.{js,ts}"}=t,r=Array.isArray(s)?s:[s],o=Array.isArray(i)?i:[i],n=null,p=null,d=null,f=[],u={},v=[],P=[],w;function C(){let b=de(p,f.filter(D=>!v.includes(D)),w),g=Object.entries(u).find(([,{propOrEnv:D,isContent:E}])=>E&&D==="Prop")?.[0]??"",S=Object.entries(u).reverse();for(let[D,{node:E,derivedFrom:$,assignDeps:_,isStatic:I,isChildren:h,propOrEnv:O,isWatcher:A}]of S){if(y.isClassProperty(E)&&!E.value&&(E.value=y.identifier("undefined")),h){ue(E,p,D);continue}if($.length!==0){let N=te(d,$,_,v);b.push(...N),Q(D,N,d,p),A?me(E,p,D):Y(E)}O&&(ce(E,p,O,D),g===D&&fe(E,p,D)),!I&&b.includes(D)&&le(E,p)}Z(p,P),L()}function k(b){let g=b.node;n=g,p=g.body,d=y.classProperty(y.identifier("_$derivedPairs"),y.objectExpression([])),f=p.body.filter(S=>y.isClassProperty(S)).map(S=>S.key.name),v=p.body.filter(S=>{if(!y.isClassProperty(S))return!1;let D=S.decorators?.map(E=>E.expression.name)??[];return D.includes("Static")||D.includes("Children")}).map(S=>S.key.name),u={},w=b,this.addDLightImport()}function L(){n=null,p=null,d=null,f=[],v=[],P=[],u={}}return{visitor:{Program(b,g){if(g.filename){for(let E of r)if(xe(g.filename,E)){this.enter=!0;break}for(let E of o)if(xe(g.filename,E)){this.enter=!1;break}}else this.enter=!0;this.didAddDLightImport=!1;let D=b.node.body.filter(y.isImportDeclaration).filter(E=>E.source.value==="@dlightjs/dlight");D.length===0&&(this.enter=!1),this.addDLightImport=()=>{if(this.didAddDLightImport||D.length===0)return;let E=!1;for(let $ of D)if($.specifiers.find(_=>y.isImportDefaultSpecifier(_))){E=!0;break}E||D[0].specifiers.unshift(y.importDefaultSpecifier(y.identifier("DLight"))),this.didAddDLightImport=!0}},ClassDeclaration:{enter(b){this.enter&&M(b)&&k.call(this,b)},exit(b){this.enter&&M(b)&&C()}},ClassExpression:{enter(b){this.enter&&M(b)&&k.call(this,b)},exit(b){this.enter&&M(b)&&C()}},ClassMethod(b){if(!this.enter||!n||!y.isIdentifier(b.node.key))return;let g=b.node,S=b.node.key.name;if(S==="Body"||(P.push(S),g.decorators?.find(h=>y.isIdentifier(h.expression)&&h.expression.name==="View")))return;let E=h=>y.isIdentifier(h.expression)&&h.expression.name==="Watch",$=g.decorators?.find(E),_=h=>y.isCallExpression(h.expression)&&y.isIdentifier(h.expression.callee)&&h.expression.callee.name==="Watch",I=g.decorators?.find(_);if($??I){let{deps:h,assignDeps:O}=U(b,g,n,f);if(I){let A=I.expression.arguments[0];y.isArrayExpression(A)&&(h=A.elements.filter(N=>y.isStringLiteral(N)).map(N=>N.value))}u[S]={node:g,isWatcher:!0,derivedFrom:[...new Set(h)],assignDeps:[...new Set(O)]},g.decorators=g.decorators?.filter(A=>!(E(A)||_(A)))}},ClassProperty(b){if(!this.enter||!n)return;let g=b.node,S=g.key.name;if(S==="Body"||g.decorators?.find(h=>y.isIdentifier(h.expression)&&h.expression.name==="View"))return;let E=["Static","Prop","Env","Content","Children"],$=g.decorators?.filter(h=>y.isIdentifier(h.expression)&&E.includes(h.expression.name)).map(h=>h.expression.name)??[],_=[],I=[];if(!($.includes("Prop")||$.includes("Env"))){let h=U(b,g,n,f);_=h.deps,I=h.assignDeps}u[S]={node:g,isStatic:$.includes("Static"),isContent:$.includes("Content"),isChildren:$.includes("Children"),propOrEnv:$.includes("Prop")?"Prop":$.includes("Env")?"Env":void 0,derivedFrom:[...new Set(_)],assignDeps:[...new Set(I)]},g.decorators=g.decorators?.filter(h=>!(y.isIdentifier(h.expression)&&E.includes(h.expression.name)))}}}}function Je(a,t){return{plugins:[G,Ee.default??Ee,[he.default??he,{legacy:!0}],[ye,t]]}}export{Je as default}; | ||
if(typeof process==="undefined")window.process={env:{}};import{declare as be}from"@babel/helper-plugin-utils";function z(a,t){let s=[];a.forEach((i,r)=>{(Array.isArray(i)?i[0]:i)===t&&s.unshift(r)});for(let i of s)a.splice(i,1)}var G=be((a,t)=>{a.assertVersion(7);let{disallowAmbiguousJSXLike:s,dts:i}=t??{},{isTSX:r}=t??{};return{name:"syntax-typescript",manipulateOptions(n,o){let{plugins:p}=o;z(p,"flow"),z(p,"jsx"),p.push("objectRestSpread","classProperties"),r&&p.push("jsx"),o.plugins.push(["typescript",{disallowAmbiguousJSXLike:s,dts:i}])}}});import Ee from"@babel/plugin-syntax-do-expressions";import he from"@babel/plugin-syntax-decorators";import*as y from"@babel/types";import*as d from"@babel/types";function Q(a,t,s,i){i.body.includes(s)||i.body.unshift(s),s.value.properties.unshift(d.objectProperty(d.identifier(a),d.arrayExpression(t.map(r=>d.stringLiteral(r)))))}var ge=["escape","$"];function ve(a,t){let s=!1,i=a.parentPath;for(;i&&i.node!==t;){let r=i.node;if(d.isCallExpression(r)&&d.isIdentifier(r.callee)&&ge.includes(r.callee.name)){s=!0;break}i=i.parentPath}return s}function De(a,t){let s=!1,i=a.parentPath;for(;i&&i.node!==t;){let r=i.node,n=i.parentPath?.node;if((d.isArrowFunctionExpression(r)||d.isFunctionExpression(r))&&d.isCallExpression(n)&&d.isIdentifier(n.callee)&&n.callee.name==="manual"){s=!0;break}i=i.parentPath}return s}function Se(a){let t=a.parentPath.node;return d.isAssignmentExpression(t)&&t.left===a.node}function K(a,t){return!De(a,t)&&!ve(a,t)}function Y(a){a.value=d.arrowFunctionExpression([],a.value)}function T(a,t){return d.isMemberExpression(a)&&!a.computed&&a.property===t}function B(a,t){return d.isObjectProperty(a)&&a.key===t}function Z(a,t){t.length!==0&&a.body.unshift(d.classMethod("constructor",d.identifier("constructor"),[],d.blockStatement([d.expressionStatement(d.callExpression(d.super(),[])),...t.map(s=>d.expressionStatement(d.assignmentExpression("=",d.memberExpression(d.thisExpression(),d.identifier(s)),d.callExpression(d.memberExpression(d.memberExpression(d.thisExpression(),d.identifier(s)),d.identifier("bind")),[d.thisExpression()]))))])))}function M(a){let t=a.node;return(t.decorators??[]).find(r=>d.isIdentifier(r.expression,{name:"View"}))&&(t.superClass=d.identifier("View"),t.decorators=t.decorators?.filter(r=>!d.isIdentifier(r.expression,{name:"View"}))),d.isIdentifier(t.superClass,{name:"View"})}function ee(a,t){let s=a;return t.scope.traverse(t.node,{ClassProperty(i){if(i.node!==a)return;let r=a.value.body,n=d.isExpression(r)?d.blockStatement([d.returnStatement(r)]):r,o=d.classMethod("method",a.key,a.value.params,n);s=o,i.replaceWith(o)}}),s}function U(a,t,s,i){let r=[],n=[];return a.scope.traverse(t,{MemberExpression(o){Se(o)?n.push(o.node.property.name):i.includes(o.node.property.name)&&d.isThisExpression(o.node.object)&&K(o,s)&&r.push(o.node.property.name)}}),{deps:r,assignDeps:n}}function te(a,t,s,i){let r=t.filter(f=>!i.includes(f)),o=a.value.properties.reduce((f,b)=>{let P=b.key.name,w=b.value.elements.map(C=>C.value);return f[P]=w,f},{}),p=new Set,l=new Set;function u(f){if(!l.has(f)){l.add(f),p.add(f);for(let b of o[f]??[])u(b)}}for(let f of s)u(f);return r.filter(f=>!p.has(f))}import*as m from"@babel/types";import{parseBody as J}from"@dlightjs/view-parser";import*as x from"@babel/types";import{isAHtmlTag as $e}from"@dlightjs/view-parser";function ie(a){let t=a.tag;return typeof t=="string"?!1:x.isIdentifier(t)&&$e(t.name)?(a.tag=x.stringLiteral(t.name),!0):x.isCallExpression(t)&&t.callee.name==="htmlTag"?(a.tag=t.arguments[0],!0):!1}function re(a,t){let s=t.tag;return!x.isMemberExpression(s)||!x.isThisExpression(s.object)?!1:!!a.includes(s.property.name)}function se(a){let t=a.tag;if(typeof t=="string")return!1;if(x.isCallExpression(t)&&t.callee.name==="tag")return a.tag=t.arguments[0],!0}function H(a,t){return x.isIdentifier(a.tag)&&a.tag.name===t}function R(){return Math.random().toString(20).slice(2,8)}function V(a){return x.variableDeclaration("const",[x.variableDeclarator(x.identifier("_"),a)])}function ne(a,t,s,i=[]){let r=[];return a.scope.traverse(V(t),{MemberExpression(n){s.includes(n.node.property.name)&&x.isThisExpression(n.node.object)&&K(n)&&r.push(x.stringLiteral(n.node.property.name))}}),r=[...new Set([...r,...i])],r}function oe(a,t,s,i=[]){let r=[];return a.scope.traverse(V(t),{Identifier(n){for(let{ids:o,propNames:p}of s)o.includes(n.node.name)&&r.push(...p)}}),r=[...new Set([...r,...i])],r}function X(a,t){if(x.isIdentifier(t))return[t.name];let s=[];return a.scope.traverse(t,{Identifier(i){x.isObjectProperty(i.parentPath.node)||s.push(i.node.name)},ObjectProperty(i){s.push(i.node.value.name)}}),[...new Set(s)]}function ae(a,t,s,i){let r=X(a,s);a.scope.traverse(x.functionDeclaration(null,[],t),{Identifier(n){if(r.includes(n.node.name)&&!T(n.parentPath.node,n.node)&&!B(n.parentPath.node,n.node)){let o=x.memberExpression(x.identifier(i),x.identifier(n.node.name));n.replaceWith(o),n.skip()}}})}function q(a){if(!x.isMemberExpression(a))return!1;for(;a.property;){if(!x.isMemberExpression(a.property)&&!x.isIdentifier(a.property))return!1;a=a.property}return!0}import*as e from"@babel/types";function F(a,t,s){return e.variableDeclaration("const",[e.variableDeclarator(e.identifier(a),e.newExpression(e.memberExpression(e.identifier("DLight"),t),s))])}var j=class{depChain;subViews;idDepsArr=[];usedProperties=[];path;constructor(t,s,i,r=[]){this.path=t,this.depChain=s,this.subViews=i,this.idDepsArr=r}generate(t){let s=[];for(let[i,r]of t.entries())s.push(...this.resolveParserNode(r,i));return s.push(e.returnStatement(e.arrayExpression(t.map((i,r)=>i.attr.isSubView?e.spreadElement(e.identifier(`_$node${r}`)):e.identifier(`_$node${r}`))))),this.usedProperties=[...new Set(this.usedProperties)],e.blockStatement(s)}geneDeps(t){let s=[...new Set([...ne(this.path,t,this.depChain),...oe(this.path,t,this.idDepsArr)])];return this.usedProperties.push(...s.filter(i=>e.isStringLiteral(i)).map(i=>i.value)),s}resolveParserNode(t,s){return re(this.subViews,t)?this.resolveSubView(t,s):H(t,"_")?this.resolveExpression(t,s):H(t,"env")?this.resolveEnv(t,s):t.tag==="if"?this.resolveIf(t,s):t.tag==="for"?this.resolveFor(t,s):t.tag==="_$text"?this.resolveText(t,s):ie(t)?this.resolveHTML(t,s):(se(t),this.resolveCustom(t,s))}resolveIf(t,s){let i=[],r=`_$node${s}`;i.push(F(r,e.identifier("IfNode"),[]));for(let n of t.attr.conditions){let o=this.geneDeps(n.condition);if(o.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addCond")),[e.arrowFunctionExpression([],n.condition),e.arrowFunctionExpression([],this.generate(n.parserNodes)),e.thisExpression(),e.arrayExpression(o)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addCond")),[e.arrowFunctionExpression([],n.condition),e.arrowFunctionExpression([],this.generate(n.parserNodes))])))}return i}resolveFor(t,s){let i=[],r=t.attr.key,n=t.attr.item,o=t.attr.array,p=`_$node${s}`;i.push(F(p,e.identifier("ForNode"),[]));let l=this.geneDeps(o);if(l.length>0){let u=X(this.path,n),b=`_$valuedItem${R()}`,P=new j(this.path,this.depChain,this.subViews,[...this.idDepsArr,{ids:u,propNames:l}]),w=P.generate(t.children);this.usedProperties.push(...P.usedProperties);let C,A;e.isIdentifier(n)?(C=[e.variableDeclaration("let",[e.variableDeclarator(n,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))])],A=e.variableDeclaration("const",[e.variableDeclarator(e.identifier("updateFunc"),e.arrowFunctionExpression([],e.assignmentExpression("=",n,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))))])):(ae(this.path,w,n,b),C=[e.variableDeclaration("const",[e.variableDeclarator(n,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))]),e.variableDeclaration("const",[e.variableDeclarator(e.identifier(b),e.objectExpression(u.map(L=>e.objectProperty(e.identifier(L),e.identifier(L),void 0,!0))))])],A=e.variableDeclaration("const",[e.variableDeclarator(e.identifier("updateFunc"),e.arrowFunctionExpression([],e.blockStatement([e.variableDeclaration("const",[e.variableDeclarator(n,e.callExpression(e.memberExpression(e.identifier("node_for"),e.identifier("_$getItem")),[e.identifier("_$key"),e.identifier("_$idx")]))]),...u.map(L=>e.expressionStatement(e.assignmentExpression("=",e.memberExpression(e.identifier(b),e.identifier(L)),e.identifier(L))))])))])),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addNodeFunc")),[e.arrowFunctionExpression([e.identifier("_$key"),e.identifier("_$idx"),e.identifier("node_for")],e.blockStatement([...C,A,e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(l),e.identifier("updateFunc")])),...w.body.slice(0,-1),e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$deleteDeps")),[e.arrayExpression(l),e.identifier("updateFunc"),e.conditionalExpression(e.callExpression(e.memberExpression(e.identifier("Array"),e.identifier("isArray")),[e.identifier("_$node0")]),e.memberExpression(e.identifier("_$node0"),e.numericLiteral(0),!0),e.identifier("_$node0"))])),w.body[w.body.length-1]]))]))),r&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addKeyFunc")),[e.arrowFunctionExpression([],e.blockStatement([e.variableDeclaration("const",[e.variableDeclarator(e.identifier("keys"),e.arrayExpression())]),e.forOfStatement(e.variableDeclaration("const",[e.variableDeclarator(n)]),o,e.blockStatement([e.expressionStatement(e.callExpression(e.memberExpression(e.identifier("keys"),e.identifier("push")),[r]))])),e.returnStatement(e.identifier("keys"))]))]))),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addArrayFunc")),[e.thisExpression(),e.arrowFunctionExpression([],o),e.arrayExpression(l)])))}else i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(p),e.identifier("_$addNodess")),[e.arrowFunctionExpression([],e.callExpression(e.memberExpression(e.callExpression(e.memberExpression(e.identifier("Array"),e.identifier("from")),[o]),e.identifier("map")),[e.arrowFunctionExpression([n],this.generate(t.children))]))])));return i}resolveText(t,s){let i=t.attr._$content,r=this.geneDeps(i),n=`_$node${s}`,o=[];return r.length>0?o.push(F(n,e.identifier("TextNode"),[e.arrowFunctionExpression([],i),e.thisExpression(),e.arrayExpression(r)])):o.push(F(n,e.identifier("TextNode"),[i])),o}resolveHTML(t,s){let i=[],r=`_$node${s}`;i.push(F(r,e.identifier("HtmlNode"),[t.tag]));for(let{key:n,value:o,nodes:p}of t.attr.props){if(this.parsePropNodes(o,p),n==="do"){i.push(e.expressionStatement(e.callExpression(o,[e.identifier(r)])));continue}if(n==="forwardProps"){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("forwardProps")),[e.identifier(r)])));continue}if(["willAppear","didAppear","willDisappear","didDisappear"].includes(n)){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addLifeCycle")),[o,e.stringLiteral(n)])));continue}let l=this.geneDeps(o);if(n==="element"){e.isMemberExpression(o)&&e.isThisExpression(o.object)&&e.isIdentifier(o.property)&&(l=l.filter(b=>!e.isStringLiteral(b)||e.isStringLiteral(b)&&b.value!==o.property.name)),q(o)?i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.conditionalExpression(e.binaryExpression("===",e.unaryExpression("typeof",o),e.stringLiteral("function")),e.callExpression(o,[e.memberExpression(e.identifier(r),e.identifier("_$el"))]),e.assignmentExpression("=",o,e.memberExpression(e.identifier(r),e.identifier("_$el"))))))])):i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.callExpression(o,[e.memberExpression(e.identifier(r),e.identifier("_$el"))])))])),i.push(e.expressionStatement(e.callExpression(e.identifier(`${r}Element`),[]))),l.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(l),e.identifier(`${r}Element`),e.identifier(r)])));continue}n==="_$content"&&(n="innerText");let u={addEvents:"_$addEvents",setAttributes:"_$addAttributes",style:"_$addStyle",className:"_$addClassName"},f="_$addProp";if(Object.keys(u).includes(n)){if(f=u[n],l.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(f)),[e.arrowFunctionExpression([],o),e.thisExpression(),e.arrayExpression(l)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(f)),[o])));continue}if(n.startsWith("on")&&(n=n.slice(2),f="_$addEvent"),l.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(f)),[e.stringLiteral(n),e.arrowFunctionExpression([],o),e.thisExpression(),e.arrayExpression(l)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(f)),[e.stringLiteral(n),o])))}return t.children.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addNodes")),[e.callExpression(e.arrowFunctionExpression([],this.generate(t.children)),[])]))),i}resolveCustom(t,s){let i=[],r=`_$node${s}`;i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(r),e.newExpression(t.tag,[]))]));for(let{key:n,value:o,nodes:p}of t.attr.props){if(o=this.parsePropNodes(o,p),n==="do"){i.push(e.expressionStatement(e.callExpression(o,[e.identifier(r)])));continue}if(n==="forwardProps"){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("forwardProps")),[e.identifier(r)])));continue}if(["willMount","didMount","willUnmount","didUnmount"].includes(n)){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addLifeCycle")),[o,e.stringLiteral(n)])));continue}let l=this.geneDeps(o);if(n==="element"){e.isMemberExpression(o)&&e.isThisExpression(o.object)&&e.isIdentifier(o.property)&&(l=l.filter(f=>!e.isStringLiteral(f)||e.isStringLiteral(f)&&f.value!==o.property.name)),q(o)?i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.conditionalExpression(e.binaryExpression("===",e.unaryExpression("typeof",o),e.stringLiteral("function")),e.callExpression(o,[e.memberExpression(e.identifier(r),e.identifier("_$el"))]),e.assignmentExpression("=",o,e.memberExpression(e.identifier(r),e.identifier("_$el"))))))])):i.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${r}Element`),e.arrowFunctionExpression([],e.callExpression(o,[e.memberExpression(e.identifier(r),e.identifier("_$el"))])))])),i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addLifeCycle")),[e.identifier(`${r}Element`),e.stringLiteral("didMount")]))),l.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(l),e.identifier(`${r}Element`),e.identifier(r)])));continue}let u=n==="_$content"?"_$addDefaultProp":"_$addProp";if(l.length>0){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(u)),[e.stringLiteral(n),e.arrowFunctionExpression([],o),e.thisExpression(),e.arrayExpression(l)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier(u)),[e.stringLiteral(n),o])))}return t.children.length>0&&i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addChildren")),[e.arrowFunctionExpression([],this.generate(t.children))]))),i}resolveSubView(t,s){t.attr.isSubView=!0;let i=`_$node${s}`,r=[],n=t.attr.props.map(({key:l,value:u,nodes:f})=>(u=this.parsePropNodes(u,f),{key:l,value:u})),o=R(),p=[];for(let{key:l,value:u}of n){l==="_$content"&&(l="content");let f=`${l}_${o}`,b=this.geneDeps(u);r.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(f),e.objectExpression([e.objectProperty(e.identifier("value"),u),e.objectProperty(e.identifier("deps"),e.arrayExpression(b))]))])),b.length>0&&(r.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(`${l}UpdateFunc${s}`),e.arrowFunctionExpression([],e.assignmentExpression("=",e.memberExpression(e.identifier(f),e.identifier("value")),u)))])),r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$addDeps")),[e.arrayExpression(b),e.identifier(`${l}UpdateFunc${s}`)])))),p.push({key:l,keyWithId:f,listenDeps:b})}r.push(e.variableDeclaration("const",[e.variableDeclarator(e.identifier(i),e.callExpression(t.tag,[e.objectExpression(p.map(({key:l,keyWithId:u})=>e.objectProperty(e.identifier(l),e.identifier(u))))]))]));for(let{key:l,listenDeps:u}of p)u.length>0&&r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.thisExpression(),e.identifier("_$deleteDeps")),[e.arrayExpression(u),e.identifier(`${l}UpdateFunc${s}`),e.memberExpression(e.identifier(i),e.numericLiteral(0),!0)])));return r}resolveEnv(t,s){let i=`_$node${s}`,r=[];r.push(F(i,e.identifier("EnvNode"),[])),t.children.length>0&&r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(i),e.identifier("_$addNodes")),[e.callExpression(e.arrowFunctionExpression([],this.generate(t.children)),[])])));for(let{key:n,value:o,nodes:p}of t.attr.props){o=this.parsePropNodes(o,p);let l=this.geneDeps(o);if(l.length>0){r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(i),e.identifier("_$addProp")),[e.stringLiteral(n),e.arrowFunctionExpression([],o),e.thisExpression(),e.arrayExpression(l)])));continue}r.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(i),e.identifier("_$addProp")),[e.stringLiteral(n),o])))}return r}resolveExpression(t,s){let i=[],r=`_$node${s}`;for(let{key:n,value:o,nodes:p}of t.attr.props){if(o=this.parsePropNodes(o,p),n==="_$content"){let u=this.geneDeps(o);u.length>0?i.push(F(r,e.identifier("ExpressionNode"),[e.arrowFunctionExpression([],o),e.thisExpression(),e.arrayExpression(u)])):i.push(F(r,e.identifier("ExpressionNode"),[o]));continue}if(n==="onUpdateNodes"){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$onUpdateNodes")),[o])));continue}let l=this.geneDeps(o);if(l.length>0&&!["willAppear","didAppear","willDisappear","didDisappear"].includes(n)){i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addProp")),[e.stringLiteral(n),e.arrowFunctionExpression([],o),e.thisExpression(),e.arrayExpression(l)])));continue}i.push(e.expressionStatement(e.callExpression(e.memberExpression(e.identifier(r),e.identifier("_$addProp")),[e.stringLiteral(n),o])))}return i}parsePropNodes(t,s){let i=t,r=this.generate.bind(this);return this.path.scope.traverse(V(t),{StringLiteral(n){let o=n.node.value,p=s[o];if(!p)return;let l=e.callExpression(e.arrowFunctionExpression([],r(p)),[]);t===n.node&&(i=l),n.replaceWith(l),n.skip()}}),i}};function W(a,t,s,i,r=[]){let n=new j(a,s,i,r);return{code:n.generate(t),useProperties:n.usedProperties}}function pe(a,t,s,i,r=!1){let n,o,p=[...a.body.directives,...a.body.body];if(r){let l=a.params[0];if(!l||!m.isObjectPattern(l)){let u=W(i,J(p,i),t,s);n=u.code,o=u.useProperties}else{let f=l.properties.map(P=>P.key.name).map(P=>({ids:[P],propNames:[m.arrayExpression([m.spreadElement(m.logicalExpression("??",m.optionalMemberExpression(m.identifier(P),m.identifier("deps"),!1,!0),m.arrayExpression()))]).elements[0]]})),b=W(i,J(p,i),t,s,f);n=b.code,o=b.useProperties}}else{let l=W(i,J(p,i),t,s);n=l.code,o=l.useProperties}return a.body=n,o}function Pe(a,t){let s=a.params[0];if(!s||!m.isObjectPattern(s))return;let i=[];for(let r of s.properties){let n=r.key.name;i.push(n),m.isAssignmentPattern(r.value)&&(r.value.right=m.objectExpression([m.objectProperty(m.identifier("value"),r.value.right),m.objectProperty(m.identifier("deps"),m.arrayExpression())]))}t.scope.traverse(m.functionDeclaration(null,[],a.body),{Identifier(r){i.includes(r.node.name)&&!T(r.parentPath.node,r.node)&&!B(r.parentPath.node,r.node)&&(r.replaceWith(m.optionalMemberExpression(m.identifier(r.node.name),m.identifier("value"),!1,!0)),r.skip())}})}function de(a,t,s){let i=[],r,n=[];for(let p of a.body){if(m.isClassProperty(p)){let f=p.value;for(;m.isTSAsExpression(f);)f=f.expression;if(p.value=f,!m.isArrowFunctionExpression(p.value))continue}let l=p.decorators?.find(f=>m.isIdentifier(f.expression)&&f.expression.name==="View"),u=p.key.name==="Body";!l&&!u||(m.isClassProperty(p)&&(p=ee(p,s)),l&&(p.decorators=null,n.push(p)),r=p)}let o=n.map(p=>p.key.name);for(let p of n)Pe(p,s),i.push(...pe(p,t,o,s,!0));return i.push(...pe(r,t,o,s)),i}import*as c from"@babel/types";function le(a,t){let s=a.key.name;a.key.name=`_$$${s}`;let i=t.body.indexOf(a),r=c.classProperty(c.identifier(`_$$${s}Deps`),c.newExpression(c.identifier("Set"),[])),n=c.classMethod("get",c.identifier(s),[],c.blockStatement([c.returnStatement(c.memberExpression(c.thisExpression(),c.identifier(`_$$${s}`)))])),o=c.classMethod("set",c.identifier(s),[c.identifier("value")],c.blockStatement([c.expressionStatement(c.callExpression(c.memberExpression(c.thisExpression(),c.identifier("_$updateProperty")),[c.stringLiteral(s),c.identifier("value")]))]));t.body.splice(i+1,0,r,n,o)}function ce(a,t,s,i){let r=t.body.indexOf(a),n=s.toLowerCase(),o=c.classProperty(c.identifier(`_$$$${i}`),c.stringLiteral(n));t.body.splice(r,0,o)}function fe(a,t,s){if(t.body.find(n=>c.isClassProperty(n)&&n.key.name==="_$defaultProp"))return;let i=t.body.indexOf(a),r=c.classProperty(c.identifier("_$defaultProp"),c.stringLiteral(s));t.body.splice(i,0,r)}function ue(a,t,s){let i=t.body.indexOf(a),r=c.classMethod("get",c.identifier(s),[],c.blockStatement([c.returnStatement(c.callExpression(c.memberExpression(c.thisExpression(),c.identifier("_$childrenFuncs")),[]))]));t.body.splice(i,1,r)}function me(a,t,s){let i=t.body.indexOf(a),r=c.classProperty(c.identifier(`_$$${s}`),c.stringLiteral("Watcher"));t.body.splice(i,0,r)}import{minimatch as xe}from"minimatch";function ye(a,t){let{files:s="**/*.{js,jsx,ts,tsx}",excludeFiles:i="**/{dist,node_modules,lib}/*.{js,ts}"}=t,r=Array.isArray(s)?s:[s],n=Array.isArray(i)?i:[i],o=null,p=null,l=null,u=[],f={},b=[],P=[],w;function C(){let g=de(p,u.filter(D=>!b.includes(D)),w),v=Object.entries(f).find(([,{propOrEnv:D,isContent:E}])=>E&&D==="Prop")?.[0]??"",S=Object.entries(f).reverse();for(let[D,{node:E,derivedFrom:$,assignDeps:_,isStatic:I,isChildren:h,propOrEnv:O,isWatcher:k}]of S){if(y.isClassProperty(E)&&!E.value&&(E.value=y.identifier("undefined")),h){ue(E,p,D);continue}if($.length!==0){let N=te(l,$,_,b);g.push(...N),Q(D,N,l,p),k?me(E,p,D):Y(E)}O&&(ce(E,p,O,D),v===D&&fe(E,p,D)),!I&&g.includes(D)&&le(E,p)}Z(p,P),L()}function A(g){let v=g.node;o=v,p=v.body,l=y.classProperty(y.identifier("_$derivedPairs"),y.objectExpression([])),u=p.body.filter(S=>y.isClassProperty(S)).map(S=>S.key.name),b=p.body.filter(S=>{if(!y.isClassProperty(S))return!1;let D=S.decorators?.map(E=>E.expression.name)??[];return D.includes("Static")||D.includes("Children")}).map(S=>S.key.name),f={},w=g,this.addDLightImport()}function L(){o=null,p=null,l=null,u=[],b=[],P=[],f={}}return{visitor:{Program(g,v){if(v.filename){for(let E of r)if(xe(v.filename,E)){this.enter=!0;break}for(let E of n)if(xe(v.filename,E)){this.enter=!1;break}}else this.enter=!0;this.didAddDLightImport=!1;let D=g.node.body.filter(y.isImportDeclaration).filter(E=>E.source.value==="@dlightjs/dlight");D.length===0&&(this.enter=!1),this.addDLightImport=()=>{if(this.didAddDLightImport||D.length===0)return;let E=!1;for(let $ of D)if($.specifiers.find(_=>y.isImportDefaultSpecifier(_))){E=!0;break}E||D[0].specifiers.unshift(y.importDefaultSpecifier(y.identifier("DLight"))),this.didAddDLightImport=!0}},ClassDeclaration:{enter(g){this.enter&&M(g)&&A.call(this,g)},exit(g){this.enter&&M(g)&&C()}},ClassExpression:{enter(g){this.enter&&M(g)&&A.call(this,g)},exit(g){this.enter&&M(g)&&C()}},ClassMethod(g){if(!this.enter||!o||!y.isIdentifier(g.node.key))return;let v=g.node,S=g.node.key.name;if(S==="Body"||(P.push(S),v.decorators?.find(h=>y.isIdentifier(h.expression)&&h.expression.name==="View")))return;let E=h=>y.isIdentifier(h.expression)&&h.expression.name==="Watch",$=v.decorators?.find(E),_=h=>y.isCallExpression(h.expression)&&y.isIdentifier(h.expression.callee)&&h.expression.callee.name==="Watch",I=v.decorators?.find(_);if($??I){let{deps:h,assignDeps:O}=U(g,v,o,u);if(I){let k=I.expression.arguments[0];y.isArrayExpression(k)&&(h=k.elements.filter(N=>y.isStringLiteral(N)).map(N=>N.value))}f[S]={node:v,isWatcher:!0,derivedFrom:[...new Set(h)],assignDeps:[...new Set(O)]},v.decorators=v.decorators?.filter(k=>!(E(k)||_(k)))}},ClassProperty(g){if(!this.enter||!o)return;let v=g.node,S=v.key.name;if(S==="Body"||v.decorators?.find(h=>y.isIdentifier(h.expression)&&h.expression.name==="View"))return;let E=["Static","Prop","Env","Content","Children"],$=v.decorators?.filter(h=>y.isIdentifier(h.expression)&&E.includes(h.expression.name)).map(h=>h.expression.name)??[],_=[],I=[];if(!($.includes("Prop")||$.includes("Env"))){let h=U(g,v,o,u);_=h.deps,I=h.assignDeps}f[S]={node:v,isStatic:$.includes("Static"),isContent:$.includes("Content"),isChildren:$.includes("Children"),propOrEnv:$.includes("Prop")?"Prop":$.includes("Env")?"Env":void 0,derivedFrom:[...new Set(_)],assignDeps:[...new Set(I)]},v.decorators=v.decorators?.filter(h=>!(y.isIdentifier(h.expression)&&E.includes(h.expression.name)))}}}}function Je(a,t){return{plugins:[G,Ee.default??Ee,[he.default??he,{legacy:!0}],[ye,t]]}}export{Je as default}; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "babel-preset-dlight", | ||
"version": "0.10.4", | ||
"version": "0.10.5", | ||
"description": "DLight transpiler for babel", | ||
@@ -5,0 +5,0 @@ "author": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
277819
223