@torpor/view 0.3.0 → 0.3.2
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/CHANGELOG.md +15 -0
- package/dist/Component-C6Y3UwGs.d.cts +11 -0
- package/dist/Component-C6Y3UwGs.d.cts.map +1 -0
- package/dist/ServerSlotRender-COS6H8Yk.d.cts +41 -0
- package/dist/ServerSlotRender-COS6H8Yk.d.cts.map +1 -0
- package/dist/compile.cjs +3735 -0
- package/dist/compile.cjs.map +1 -0
- package/dist/compile.d.cts +216 -0
- package/dist/compile.d.cts.map +1 -0
- package/dist/compile.d.ts +6 -0
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +128 -76
- package/dist/compile.js.map +1 -1
- package/dist/formatText-B0FXBdFT.js.map +1 -1
- package/dist/formatText-DufG5l83.cjs +500 -0
- package/dist/formatText-DufG5l83.cjs.map +1 -0
- package/dist/index.cjs +906 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +411 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/ssr.cjs +40 -0
- package/dist/ssr.cjs.map +1 -0
- package/dist/ssr.d.cts +19 -0
- package/dist/ssr.d.cts.map +1 -0
- package/package.json +7 -4
- package/src/compile/build/client/buildAwaitNode.ts +15 -7
- package/src/compile/build/client/buildCode.ts +8 -1
- package/src/compile/build/client/buildIfNode.ts +11 -5
- package/src/compile/build/client/buildSwitchNode.ts +12 -5
- package/src/compile/buildType.ts +11 -12
- package/src/compile/parse/ParseComponentStatus.ts +6 -0
- package/src/compile/parse/parseCode.ts +61 -7
- package/src/compile/parse/parseTag.ts +7 -0
- package/src/types/TemplateComponent.ts +6 -0
- package/src/watch/checkEffect.ts +2 -0
- package/test/attributes/components/output/Attributes-client.ts +3 -0
- package/test/attributes/components/output/Attributes-types.ts +10 -0
- package/test/attributes/components/temp/{Attributes-client-9b2935d7824ba501776fdc6c48861422c15b6a12.ts → Attributes-client-ffbdd4d85a50436c1a51a4499921304098c1b396.ts} +3 -0
- package/test/attributes/components/temp/Attributes-types-5892927754ac19a8b3a8560fa1c78ce653e5f318.ts +10 -0
- package/test/attributes/errors.test.ts +35 -0
- package/test/await/components/output/Await-client.ts +12 -5
- package/test/await/components/output/Await-types.ts +10 -0
- package/test/await/components/temp/{Await-client-e969f4bd0712acf259ddfaa5a3b3448307201fd2.ts → Await-client-4d2c318baf00e6fb8fea11e34189817ca8002a1f.ts} +12 -5
- package/test/await/components/temp/Await-types-355b335acd1c17a2271920d51e542ce1fc61eeef.ts +10 -0
- package/test/bench/components/output/Bench-client.ts +3 -0
- package/test/bench/components/output/Bench-types.ts +10 -0
- package/test/bench/components/temp/{Bench-client-7f31596dafc8077370d8d90b1bb9b6e0208154e7.ts → Bench-client-33b5a23562f6a00687449c5ffe72dc42ac7f766e.ts} +3 -0
- package/test/bench/components/temp/Bench-types-a798f6c7b7ec235754ff5fdd5d7020633253b042.ts +10 -0
- package/test/bind/components/output/BindComponent-client.ts +5 -0
- package/test/bind/components/output/BindComponent-types.ts +10 -0
- package/test/bind/components/output/BindText-client.ts +3 -0
- package/test/bind/components/output/BindText-types.ts +10 -0
- package/test/bind/components/temp/{BindComponent-client-22eccb5354a2b0267841e015f3a2a0baf534bf89.ts → BindComponent-client-eb816edf9f83c19641ced9ecb1c2c5fc87e8e32c.ts} +5 -0
- package/test/bind/components/temp/BindComponent-types-8a10f6efddd92990ed5390f3c89ba17db179d801.ts +10 -0
- package/test/bind/components/temp/{BindText-client-7692ae1570533cc17e2186e9c7d4768529e4a2fe.ts → BindText-client-63e98b4407a8f0f22f4766d029567ac0aac7dba8.ts} +3 -0
- package/test/bind/components/temp/BindText-types-5892d9ef33c61a0de524b74323ba135accee8175.ts +10 -0
- package/test/build-server/components/output/IfNested-client.ts +17 -8
- package/test/build-server/components/output/IfNested-types.ts +10 -0
- package/test/build-server/components/temp/{IfNested-client-eefdd449fa700b2e7326bc72df8b32ddcadf9d21.ts → IfNested-client-2af78cceff5dbce510db31fd5b8bb4da5d30d53a.ts} +17 -8
- package/test/build-server/components/temp/IfNested-types-692d58ca98f3534102193a44aa358994f798ca7b.ts +10 -0
- package/test/buildOutputFiles.ts +16 -4
- package/test/child-component/components/output/ParentChild-client.ts +5 -0
- package/test/child-component/components/output/ParentChild-types.ts +10 -0
- package/test/child-component/components/temp/{ParentChild-client-2dfd600f7d409630d429a1d2d18c038bd08b08da.ts → ParentChild-client-93ca4d2ac521ef996a6548bfacb3e36f6f71fcf9.ts} +5 -0
- package/test/child-component/components/temp/ParentChild-types-4d26850ef18600f398f7aa9c4502071349bf5624.ts +10 -0
- package/test/class/components/output/Class-client.ts +5 -0
- package/test/class/components/output/Class-types.ts +10 -0
- package/test/class/components/temp/{Class-client-5af6a50cd454ae019b2aa79457ba7ead83b8c056.ts → Class-client-284ac46628b2d3d6b4a4edbdbfd1700626d3fed0.ts} +5 -0
- package/test/class/components/temp/Class-types-38567e85c9ec17739c7c97e12281fc1818267190.ts +10 -0
- package/test/component/components/output/Component-client.ts +3 -0
- package/test/component/components/output/Component-types.ts +10 -0
- package/test/component/components/output/Header-client.ts +3 -0
- package/test/component/components/output/Header-types.ts +10 -0
- package/test/component/components/temp/{Component-client-fdc327499be0a01f987d0f2897baf022a247c77c.ts → Component-client-3cb873dd1782874af78544c1d8886bbfa4bef11b.ts} +3 -0
- package/test/component/components/temp/Component-types-3ef4f140ba29c98357caf0f2618785437b5804de.ts +10 -0
- package/test/component/components/temp/{Header-client-6beb5770e68e6b19595e53e20bc906765fc6c260.ts → Header-client-cb780b85ee6e0587eca3d9ad7a8b8c947075e394.ts} +3 -0
- package/test/component/components/temp/Header-types-c56a108c6fb5a22b8ae156936bc05e58eef199c2.ts +10 -0
- package/test/console/components/output/Console-client.ts +3 -0
- package/test/console/components/output/Console-types.ts +10 -0
- package/test/console/components/temp/{Console-client-2b58290ac407ebbe89a0613d64eb9cd141b99887.ts → Console-client-b0feb868a912138e8af01bd06902d28c536ebb87.ts} +3 -0
- package/test/console/components/temp/Console-types-93ad3f25ddc6280fcff2cf4db7c2913d3a474912.ts +10 -0
- package/test/const/components/output/Const-client.ts +3 -0
- package/test/const/components/output/Const-types.ts +10 -0
- package/test/const/components/temp/{Const-client-d1037557e7ef75a8fe06f56816e65883047e9421.ts → Const-client-149dbc44ee609c54a99bacb715d04034a1d33c9c.ts} +3 -0
- package/test/const/components/temp/Const-types-afba269310bd143aa325752d3cc7e0c598fd0de2.ts +10 -0
- package/test/context/components/output/ChildA-client.ts +3 -0
- package/test/context/components/output/ChildA-types.ts +10 -0
- package/test/context/components/output/ChildB-client.ts +3 -0
- package/test/context/components/output/ChildB-types.ts +10 -0
- package/test/context/components/{temp/Parent-client-9898b2e521527c86d69905053b6727ea8fd28166.ts → output/Parent-client.ts} +3 -0
- package/test/context/components/output/Parent-types.ts +10 -0
- package/test/context/components/temp/{ChildA-client-9dea3e29ffcb82ca1779f6ff671e19b1c106fc4a.ts → ChildA-client-b9ad03bb0c64e9fb27a38b85792df79dc3ebf7f1.ts} +3 -0
- package/test/context/components/temp/ChildA-types-2ee15b25e68166d1574582f08e2280cbae948e5d.ts +10 -0
- package/test/context/components/temp/{ChildB-client-4b801099936c8aa013a1220f291375f67eba1acb.ts → ChildB-client-f4e1a447378a9a9be05aa37c8b3eae7ca6be8411.ts} +3 -0
- package/test/context/components/temp/ChildB-types-531f67cfda5bd04468e827c14f9358a431853fc5.ts +10 -0
- package/test/context/components/temp/Parent-client-2ecf387911773f5cd74c7bf1d04f98da08bc4450.ts +44 -0
- package/test/context/components/temp/Parent-types-e6be7d1cf118d7a8927af59db780010392966d01.ts +10 -0
- package/test/effects/components/output/For-client.ts +3 -0
- package/test/effects/components/output/For-types.ts +10 -0
- package/test/effects/components/output/If-client.ts +10 -4
- package/test/effects/components/output/If-types.ts +10 -0
- package/test/effects/components/output/NestedIf-client.ts +17 -8
- package/test/effects/components/output/NestedIf-types.ts +10 -0
- package/test/effects/components/temp/{For-client-7c7d7c0dba2547f816b9bd9c6a95d6873ec00ffd.ts → For-client-af16b99099e237c988932845b79500dfc28c6642.ts} +3 -0
- package/test/effects/components/temp/For-types-cfec41b41b054674bf8b01ce0e0003c8a6640a82.ts +10 -0
- package/test/effects/components/temp/{If-client-f0480a98f80b32612d12765c6838ff6db5982e82.ts → If-client-7f0b171f29a1f1ff969b21c33b241cd35eb1ce0e.ts} +10 -4
- package/test/effects/components/temp/If-types-7b245b6e531e122e0d0cfb72903bb88223b98793.ts +10 -0
- package/test/effects/components/temp/{NestedIf-client-702deffd158f219c5da4199b563a62cd54385a7f.ts → NestedIf-client-e2dd594c8f77f5ce53265b234e72b7c2f29ba76d.ts} +17 -8
- package/test/effects/components/temp/NestedIf-types-0912466d777f52f3616557823a7e47f5901cb755.ts +10 -0
- package/test/events/components/output/Increment-client.ts +3 -0
- package/test/events/components/output/Increment-types.ts +10 -0
- package/test/events/components/temp/{Increment-client-84c09711baf098c82ee226598ba7a36913616b75.ts → Increment-client-aeee696f3a4363c5c4c1ecf86de8ec071342ba22.ts} +3 -0
- package/test/events/components/temp/Increment-types-f259dd221aa967b0426746303f1f2c33aeeaf068.ts +10 -0
- package/test/for/components/output/For-client.ts +3 -0
- package/test/for/components/output/For-types.ts +10 -0
- package/test/for/components/output/ForEscape-client.ts +3 -0
- package/test/for/components/output/ForEscape-types.ts +10 -0
- package/test/for/components/output/ForIn-client.ts +3 -0
- package/test/for/components/output/ForIn-types.ts +10 -0
- package/test/for/components/output/ForOf-client.ts +3 -0
- package/test/for/components/output/ForOf-types.ts +10 -0
- package/test/for/components/temp/{For-client-2f6b4b81670b0ba31b01176b4f61ebf321e945bb.ts → For-client-bc23ebc49e3cf710762bce7cd1b73244c94a3abb.ts} +3 -0
- package/test/for/components/temp/For-types-8bcd17ab2e0faebb340a19f56e052cc94820a29a.ts +10 -0
- package/test/for/components/temp/{ForEscape-client-8d0fcc940851e687173b6a9129c3d83e0fc771ef.ts → ForEscape-client-a475ec9bdab5d57d30c27124fcf9ce38110ddf75.ts} +3 -0
- package/test/for/components/temp/ForEscape-types-bb4f3457b02c2ad97a7b6cbc66f9097a37728ed2.ts +10 -0
- package/test/for/components/temp/{ForIn-client-fa0614a1c7b8aa6e8819ed91a518479fd80453ae.ts → ForIn-client-890cee3ac35ede73eafad4e935eefd2fe7ecb9e2.ts} +3 -0
- package/test/for/components/temp/ForIn-types-fb4f7b02e23a40d27376760b7e1d06f8ecaa13ba.ts +10 -0
- package/test/for/components/temp/{ForOf-client-11006c4239d9018363e582dc5b54b50477d652e7.ts → ForOf-client-309297e25afd249f1a3e27126af23b7329c5c727.ts} +3 -0
- package/test/for/components/temp/ForOf-types-6e2fbcd0fbfd3c0a2c3d8c458fdda7b05c2a19b1.ts +10 -0
- package/test/function/components/output/Function-client.ts +3 -0
- package/test/function/components/output/Function-types.ts +10 -0
- package/test/function/components/temp/{Function-client-ec5fe7d599d6099bdfab78c2a0c8edf77a23cd9b.ts → Function-client-8423f53837e6503cdcc0d997684dd3e208b5dd13.ts} +3 -0
- package/test/function/components/temp/Function-types-5479cb46b9bef3251b7961fb6e99a8c30cd4220f.ts +10 -0
- package/test/html/components/output/Html-client.ts +3 -0
- package/test/html/components/output/Html-types.ts +10 -0
- package/test/html/components/temp/{Html-client-82ff34dcdcbdf4be1112bcb1baac8027cdc32de7.ts → Html-client-83b1a1be5c4b8e9cc06a616acf8418c786804255.ts} +3 -0
- package/test/html/components/temp/Html-types-c5dc816f932e3fb021c006f266a7c9a2f2fb5353.ts +10 -0
- package/test/if/components/IfCache.torp +14 -0
- package/test/if/components/output/IfAfterIf-client.ts +17 -8
- package/test/if/components/output/IfAfterIf-types.ts +10 -0
- package/test/if/components/output/IfCache-client.ts +70 -0
- package/test/if/components/output/IfCache-server.ts +22 -0
- package/test/if/components/output/IfCache-types.ts +10 -0
- package/test/if/components/output/IfElse-client.ts +10 -4
- package/test/if/components/output/IfElse-types.ts +10 -0
- package/test/if/components/output/IfElseIf-client.ts +12 -5
- package/test/if/components/output/IfElseIf-types.ts +10 -0
- package/test/if/components/output/IfFalse-client.ts +10 -4
- package/test/if/components/output/IfFalse-types.ts +10 -0
- package/test/if/components/output/IfNested-client.ts +17 -8
- package/test/if/components/output/IfNested-types.ts +10 -0
- package/test/if/components/temp/{IfAfterIf-client-c1cfd21a6ace4945703ba8f46aada923a60265d9.ts → IfAfterIf-client-5aa5aac7099224e0ec1e8bff6162d729f89267ec.ts} +17 -8
- package/test/if/components/temp/IfAfterIf-types-c4bd4f93c103a618889f40c77d55fa7de454f70b.ts +10 -0
- package/test/if/components/temp/IfCache-client-8433b3b239bc225d616f12e8904c4f2ba530efb4.ts +70 -0
- package/test/if/components/temp/IfCache-server-8b35e6a2009d72083013cfb01b187a1d027fdcc9.ts +22 -0
- package/test/if/components/temp/IfCache-types-02f467ce9ebc23ae68c9e5f33c90ecc96b666452.ts +10 -0
- package/test/if/components/temp/{IfElse-client-06dfcacd3a5225dcb0947587bcd4fae9ec3d3c1e.ts → IfElse-client-8bd2aa123e050847fdf28172479f0cc1a3ddb01c.ts} +10 -4
- package/test/if/components/temp/IfElse-types-e81080227f8f69ac1d81141d97a07e0a0e9391c1.ts +10 -0
- package/test/if/components/temp/{IfElseIf-client-26df9a728c9cb712d5ac0235b4c99885f25545b8.ts → IfElseIf-client-a17e2408252495ef0e90ba303a2d9e076867b6fd.ts} +12 -5
- package/test/if/components/temp/IfElseIf-types-a492d2b6e8517f598befca7127cd514244239984.ts +10 -0
- package/test/if/components/temp/{IfFalse-client-de6fc8e9eb222153608490e6d172e9aae9000aa1.ts → IfFalse-client-00a24a722347d2c711064dd504db9443747e5099.ts} +10 -4
- package/test/if/components/temp/IfFalse-types-1d512c6d82e2af9efe0221a9929b05ad62fd97fb.ts +10 -0
- package/test/if/components/temp/{IfNested-client-eefdd449fa700b2e7326bc72df8b32ddcadf9d21.ts → IfNested-client-2af78cceff5dbce510db31fd5b8bb4da5d30d53a.ts} +17 -8
- package/test/if/components/temp/IfNested-types-692d58ca98f3534102193a44aa358994f798ca7b.ts +10 -0
- package/test/if/if-cache.test.ts +68 -0
- package/test/mount/components/output/Mount-client.ts +3 -0
- package/test/mount/components/output/Mount-types.ts +10 -0
- package/test/mount/components/temp/{Mount-client-29896228d7d0ef3692a9d13065c1bbfbe3198cdc.ts → Mount-client-f4dd3d5a21d287d3d22a797805816fe09528dfb6.ts} +3 -0
- package/test/mount/components/temp/Mount-types-2d88616243f860d43b8b7d74a6bbeff9b2c6f27b.ts +10 -0
- package/test/on-mount/components/output/OnMount-client.ts +3 -0
- package/test/on-mount/components/output/OnMount-types.ts +10 -0
- package/test/on-mount/components/temp/{OnMount-client-038f8c6bbcf0278406909d6ba5394f311924fda9.ts → OnMount-client-8afb8473b51815e9b0ba994f3476217506b41b1d.ts} +3 -0
- package/test/on-mount/components/temp/OnMount-types-d0f834addb351520cc75a589cb9ec5b6a5a787b4.ts +10 -0
- package/test/party/components/output/AnswerButton-client.ts +3 -0
- package/test/party/components/output/AnswerButton-types.ts +10 -0
- package/test/party/components/output/AnswerButtonApp-client.ts +3 -0
- package/test/party/components/output/AnswerButtonApp-types.ts +10 -0
- package/test/party/components/output/ColorSelect-client.ts +3 -0
- package/test/party/components/output/ColorSelect-types.ts +10 -0
- package/test/party/components/output/Colors-client.ts +3 -0
- package/test/party/components/output/Colors-types.ts +10 -0
- package/test/party/components/output/Counter-client.ts +3 -0
- package/test/party/components/output/Counter-types.ts +10 -0
- package/test/party/components/output/CssStyle-client.ts +3 -0
- package/test/party/components/output/CssStyle-types.ts +10 -0
- package/test/party/components/output/DoubleCount-client.ts +3 -0
- package/test/party/components/output/DoubleCount-types.ts +10 -0
- package/test/party/components/output/FunnyButton-client.ts +3 -0
- package/test/party/components/output/FunnyButton-types.ts +10 -0
- package/test/party/components/output/FunnyButtonApp-client.ts +3 -0
- package/test/party/components/output/FunnyButtonApp-types.ts +10 -0
- package/test/party/components/output/HelloWorld-client.ts +3 -0
- package/test/party/components/output/HelloWorld-types.ts +10 -0
- package/test/party/components/output/InputFocused-client.ts +3 -0
- package/test/party/components/output/InputFocused-types.ts +10 -0
- package/test/party/components/output/InputHello-client.ts +3 -0
- package/test/party/components/output/InputHello-types.ts +10 -0
- package/test/party/components/output/IsAvailable-client.ts +3 -0
- package/test/party/components/output/IsAvailable-types.ts +10 -0
- package/test/party/components/output/Name-client.ts +3 -0
- package/test/party/components/output/Name-types.ts +10 -0
- package/test/party/components/output/NameUpdate-client.ts +3 -0
- package/test/party/components/output/NameUpdate-types.ts +10 -0
- package/test/party/components/output/PageTitle-client.ts +3 -0
- package/test/party/components/output/PageTitle-types.ts +10 -0
- package/test/party/components/output/PickPill-client.ts +3 -0
- package/test/party/components/output/PickPill-types.ts +10 -0
- package/test/party/components/output/Time-client.ts +3 -0
- package/test/party/components/output/Time-types.ts +10 -0
- package/test/party/components/output/TrafficLight-client.ts +14 -6
- package/test/party/components/output/TrafficLight-types.ts +10 -0
- package/test/party/components/output/UserProfile-client.ts +3 -0
- package/test/party/components/output/UserProfile-types.ts +15 -0
- package/test/party/components/output/UserProfileApp-client.ts +3 -0
- package/test/party/components/output/UserProfileApp-types.ts +10 -0
- package/test/party/components/output/UserProfileContext-client.ts +3 -0
- package/test/party/components/output/UserProfileContext-types.ts +10 -0
- package/test/party/components/output/UserProfileContextApp-client.ts +3 -0
- package/test/party/components/output/UserProfileContextApp-types.ts +10 -0
- package/test/party/components/temp/{AnswerButton-client-df895c3e7a88fd7ede9f951fc9de2ed75c27a5cb.ts → AnswerButton-client-2119fa9523949bca3e8ef264eff7e72611d70bac.ts} +3 -0
- package/test/party/components/temp/AnswerButton-types-7dc4d046e52be1e6cb46d6235ce7540bd3e7b2a5.ts +10 -0
- package/test/party/components/temp/{AnswerButtonApp-client-4c05ef36b1c0e93370fb463643419928717fa701.ts → AnswerButtonApp-client-87979b0578066e637c4257d6a7dbc2bfa1542515.ts} +3 -0
- package/test/party/components/temp/AnswerButtonApp-types-10a6f55029e859366f9a3a73cdcdb3f63e89dbeb.ts +10 -0
- package/test/party/components/temp/{ColorSelect-client-5db8d1b0924361fdb5efb867c14491402ec9668c.ts → ColorSelect-client-d7eb9276031b613439d7bd6212c76b4a972ebcad.ts} +3 -0
- package/test/party/components/temp/ColorSelect-types-e652a36ebdd98e8c23a8de3156c4499023f09301.ts +10 -0
- package/test/party/components/temp/{Colors-client-6d3ac693e85bdda50b8742282915997063a32769.ts → Colors-client-42c890154b9a132ebd784cccc4f4f9962f400b3e.ts} +3 -0
- package/test/party/components/temp/Colors-types-075975e9b9074b49f96f99d660f0ee580546a630.ts +10 -0
- package/test/party/components/temp/{Counter-client-0c604a107c5b84cdbf725f307dfe29d34f8a2cc8.ts → Counter-client-ad5e891eaea79548afabef156b87fee5317319b2.ts} +3 -0
- package/test/party/components/temp/Counter-types-206b0704ee2e25f5f3198d716fa524295581c075.ts +10 -0
- package/test/party/components/temp/{CssStyle-client-2a642d115ad52539f97c051c34687b8d6d12b324.ts → CssStyle-client-5078b4c735f6273e2565c7d7688c41afa026a2c3.ts} +3 -0
- package/test/party/components/temp/CssStyle-types-f1ce4f0b03d404c70704f271ce9bfc5d5107346c.ts +10 -0
- package/test/party/components/temp/{DoubleCount-client-8c85c3af12c471ea23bb702bbf5a3e240420f3ec.ts → DoubleCount-client-9406fd993ae8d0efa1f87848ae6e952591b20c3d.ts} +3 -0
- package/test/party/components/temp/DoubleCount-types-436bd75fe7808c3a30389aeb1740aea361aa8681.ts +10 -0
- package/test/party/components/temp/{FunnyButton-client-850dd3da0fa803c1bce5c53e88fcd2d48d279eb8.ts → FunnyButton-client-f8dea087fd6e3f2d7d0697cd3c87444c6866daf5.ts} +3 -0
- package/test/party/components/temp/FunnyButton-types-7780d5c5dfe3ff2369f8e3c505616036cfcd3759.ts +10 -0
- package/test/party/components/temp/{FunnyButtonApp-client-00300846d11a3d0a5a620c2ade87b935b7f0ebf8.ts → FunnyButtonApp-client-22aa2ee00b25a3ee0bda442372da843828231242.ts} +3 -0
- package/test/party/components/temp/FunnyButtonApp-types-ea73d641565a4478759166f462206dd97c92cedd.ts +10 -0
- package/test/party/components/temp/{HelloWorld-client-890b311ad9a3919379acdc1d52807ea36cc9f489.ts → HelloWorld-client-84fa7bd70d75149892044f4a15fdbf9ac8c7fcff.ts} +3 -0
- package/test/party/components/temp/HelloWorld-types-3c153ac7af343dbce6cb081f1ae1b4f85d7f0b10.ts +10 -0
- package/test/party/components/temp/{InputFocused-client-03527f9ceb52f66ac53887dbc884a0aa83bb7a23.ts → InputFocused-client-504b10731a6c96079a0abd7bb4a8381634ff4a0d.ts} +3 -0
- package/test/party/components/temp/InputFocused-types-33da14c13216ca00edaa8f02508db21f5cd32d31.ts +10 -0
- package/test/party/components/temp/{InputHello-client-f65a477624975b68b7aaa3614fbf198d4476480f.ts → InputHello-client-b9dd846c4cc129749781955f645327cc3c0956ac.ts} +3 -0
- package/test/party/components/temp/InputHello-types-ab629048402441fde9a292bc2d376c0deea482a8.ts +10 -0
- package/test/party/components/temp/{IsAvailable-client-8767437fd92cf79713de5b00828e1502e38d79e3.ts → IsAvailable-client-3bd6d53a45c3dcda3e958bb4b5000fef78301b04.ts} +3 -0
- package/test/party/components/temp/IsAvailable-types-23d4e196c659901c347a7b3e5c9e4a6668234adb.ts +10 -0
- package/test/party/components/temp/{Name-client-08903a8df8bdff5288170d3c89658192956587a9.ts → Name-client-b2cd160fc076bb34c0421a673358e7b7f61e4b49.ts} +3 -0
- package/test/party/components/temp/Name-types-06f89338c785a1fd352ed7de3ebe02b30722760d.ts +10 -0
- package/test/party/components/temp/{NameUpdate-client-d65b2476c3721d2efddf9385a61433e2a2dd0d72.ts → NameUpdate-client-f2dfcab63d80c25681aa6b15a61c547a0aab2f96.ts} +3 -0
- package/test/party/components/temp/NameUpdate-types-9c69805006d2d3bb457c5d4d87db8baeb431aeb6.ts +10 -0
- package/test/party/components/temp/{PageTitle-client-c006df9a3e662488a1db089de53fd485c6b923e4.ts → PageTitle-client-f4094f4b23126a99a211f804ed7c4a97a34733b3.ts} +3 -0
- package/test/party/components/temp/PageTitle-types-dfb55ea9b607c89167dbd7538523a484a6eec300.ts +10 -0
- package/test/party/components/temp/{PickPill-client-af8357daf3f6633c7f451d0bddd72fefe786d5c3.ts → PickPill-client-0a4e095bc2c963a2f091ae2f69c8d075f7d9b5a5.ts} +3 -0
- package/test/party/components/temp/PickPill-types-526e2bb4c36ec1bed87eaf5722093a0eaefcd9d3.ts +10 -0
- package/test/party/components/temp/{Time-client-94380d45de7275a5cec98e5f58c15b74b13e9c3e.ts → Time-client-95ee134377911d1c1cddbf074b8f943cdcf2a966.ts} +3 -0
- package/test/party/components/temp/Time-types-2bf6facfbb2d6e7de472d18760029afaefbb93e1.ts +10 -0
- package/test/party/components/temp/{TrafficLight-client-12b20962b4146ef08fe0c37597441533c7699408.ts → TrafficLight-client-dc0248dc967afbbbce4873cd37677cd97cc4933c.ts} +14 -6
- package/test/party/components/temp/TrafficLight-types-d301a2317da01a215fc8e5222dc6ff87226fa250.ts +10 -0
- package/test/party/components/temp/{UserProfile-client-e5330b2c96bd8b225cb6291bc8b1d9f35c93307e.ts → UserProfile-client-352291dcaf115cc563ae3a07ec6aed901fcc2bc1.ts} +3 -0
- package/test/party/components/temp/UserProfile-types-412089462c8dcc757d2f53e7ff8030296d3100c2.ts +15 -0
- package/test/party/components/temp/{UserProfileApp-client-4c86e4f9a0d042f4f4811868f0146e872b17353c.ts → UserProfileApp-client-18ad0243fd853dac3c3f71bea21b021bbd5b35f4.ts} +3 -0
- package/test/party/components/temp/UserProfileApp-types-3e70c106e03c68b4aa06c2fe21dfeceffe7cc313.ts +10 -0
- package/test/party/components/temp/{UserProfileContext-client-424131db3cc89ae4babe127b9108ffc5696c9e1d.ts → UserProfileContext-client-a3f521facb10ae64007c362e34bce41d8144bf96.ts} +3 -0
- package/test/party/components/temp/UserProfileContext-types-076b9fa0a87d3ca098884a003284050b36172cc6.ts +10 -0
- package/test/party/components/temp/{UserProfileContextApp-client-5f94a7ccf3e4542ea40d8046ad75eeb21005c55f.ts → UserProfileContextApp-client-cccb3b8e819279cd7f729af61b84ad9801213597.ts} +3 -0
- package/test/party/components/temp/UserProfileContextApp-types-d04199ab7d43ecc12ceccb7a0bef7ff38ac1e8b1.ts +10 -0
- package/test/props/components/output/Reactive-client.ts +5 -0
- package/test/props/components/output/Reactive-types.ts +10 -0
- package/test/props/components/temp/{Reactive-client-9bc3643675fc563f96efb00bc3c4b843ba4b7f2e.ts → Reactive-client-644526502a3c5db2be797056d127a124f76976d5.ts} +5 -0
- package/test/props/components/temp/Reactive-types-bd642939107f1be06666bfce1ad97a94ccc21ee1.ts +10 -0
- package/test/replace/components/output/Replace-client.ts +3 -0
- package/test/replace/components/output/Replace-types.ts +10 -0
- package/test/replace/components/temp/{Replace-client-6f21ff3eb303bd5488d211087dc35fcf998d4e2a.ts → Replace-client-b80bc4591f8638cf125e8de9c1b25ea840dc75e9.ts} +3 -0
- package/test/replace/components/temp/Replace-types-9aedaa79e9b616ea1780ea97306f3428faa5d477.ts +10 -0
- package/test/slots/components/output/Article-client.ts +3 -0
- package/test/slots/components/output/Article-types.ts +10 -0
- package/test/slots/components/output/Basic-client.ts +3 -0
- package/test/slots/components/output/Basic-types.ts +10 -0
- package/test/slots/components/output/Header-client.ts +3 -0
- package/test/slots/components/output/Header-types.ts +10 -0
- package/test/slots/components/output/Let-client.ts +3 -0
- package/test/slots/components/output/Let-types.ts +10 -0
- package/test/slots/components/output/List-client.ts +3 -0
- package/test/slots/components/output/List-types.ts +10 -0
- package/test/slots/components/output/Named-client.ts +3 -0
- package/test/slots/components/output/Named-types.ts +10 -0
- package/test/slots/components/output/Unused-client.ts +3 -0
- package/test/slots/components/output/Unused-types.ts +10 -0
- package/test/slots/components/temp/{Article-client-0b674ee98ae7f85021bfb8b912f28e3c4b35e877.ts → Article-client-df86e549f8681f2329bffb4bc6bdf8ef60659d82.ts} +3 -0
- package/test/slots/components/temp/Article-types-d3d960fbab7644ec2d90dfe39d908fbb65abaaa2.ts +10 -0
- package/test/slots/components/temp/{Basic-client-196f7f0244dca0baeffb547eec55c089a108283d.ts → Basic-client-5bf137a656d5bc8739443df8e6876ac6ffdaeddd.ts} +3 -0
- package/test/slots/components/temp/Basic-types-709765786c453e34088db3e894a59fb3332d3ed1.ts +10 -0
- package/test/slots/components/temp/{Header-client-e5c784d60469523803898ee4d8b85fb82a7b7c0b.ts → Header-client-89439803e4de9b44da53fc051088ded2b4816a83.ts} +3 -0
- package/test/slots/components/temp/Header-types-c56a108c6fb5a22b8ae156936bc05e58eef199c2.ts +10 -0
- package/test/slots/components/temp/{Let-client-645271fcd63cd500001c75740b22b1b387330657.ts → Let-client-1e404c72bae5fe99bdced72d497dc3700d001112.ts} +3 -0
- package/test/slots/components/temp/Let-types-3d05614de77a23df63a3cc1873b27ce1b0148c58.ts +10 -0
- package/test/slots/components/temp/{List-client-ee6047ac396dc0b6fce5e38af51c38093fae83a2.ts → List-client-73ebb1a2d1364d807ca67c2b3008efb73e5bc74f.ts} +3 -0
- package/test/slots/components/temp/List-types-fd59ad7d85c06e67ee766a2cf14a637dd129569e.ts +10 -0
- package/test/slots/components/temp/{Named-client-559988562c5de1ae6017d2ad6de063f4363064b6.ts → Named-client-fae857376ae748995be367ea0b78c86cb778dcee.ts} +3 -0
- package/test/slots/components/temp/Named-types-ed10fb6338eb9bd67281b9658bd7b10b572d346a.ts +10 -0
- package/test/slots/components/temp/{Unused-client-52d1828bd28ebf7046a2e948a369563c0ea83b98.ts → Unused-client-715ddd9fa963f8185b11dd3725849dddc9b4a8e0.ts} +3 -0
- package/test/slots/components/temp/Unused-types-88f7e38611b4cae1067969cf702cde41422837ae.ts +10 -0
- package/test/source-maps/components/output/Source-client.ts +10 -4
- package/test/source-maps/components/output/Source-types.ts +10 -0
- package/test/source-maps/components/temp/{Source-client-ae8c4811ff658c13ee8c9b9e0e53fff1b83b178b.ts → Source-client-ea4254d629d7270203bf98ffae915e9b753a2fe2.ts} +10 -4
- package/test/source-maps/components/temp/Source-types-69770c124317e0a0fd6aeb3d4f331b50231452fa.ts +10 -0
- package/test/special-component/components/output/BigTitle-client.ts +3 -0
- package/test/special-component/components/output/BigTitle-types.ts +10 -0
- package/test/special-component/components/output/Component-client.ts +3 -0
- package/test/special-component/components/output/Component-types.ts +10 -0
- package/test/special-component/components/output/SmallTitle-client.ts +3 -0
- package/test/special-component/components/output/SmallTitle-types.ts +10 -0
- package/test/special-component/components/temp/{BigTitle-client-cb3055f809aaf17bd1fa82748d039ac3730a8d44.ts → BigTitle-client-d46e785f86a5daee62360043056359ca3e1cb7a0.ts} +3 -0
- package/test/special-component/components/temp/BigTitle-types-cb6363da78f853772d3408240f32030d5e826859.ts +10 -0
- package/test/special-component/components/temp/{Component-client-0eb9553b52acce2dfa564242295a4c57a38bd540.ts → Component-client-bd3af877909777431434a02fb77e751980a0b822.ts} +3 -0
- package/test/special-component/components/temp/Component-types-196e5e5c55f61a9d24837f8de1fb9e9eeb2dd3f1.ts +10 -0
- package/test/special-component/components/temp/{SmallTitle-client-5a65b233be29395e9650f57d9708a33de1279af3.ts → SmallTitle-client-28035d0154e3af173e9e3a1921be3a358e236cc5.ts} +3 -0
- package/test/special-component/components/temp/SmallTitle-types-629b435eb6f9a402ff576511db3e1d150f8c612b.ts +10 -0
- package/test/special-element/components/output/Element-client.ts +3 -0
- package/test/special-element/components/output/Element-types.ts +10 -0
- package/test/special-element/components/temp/{Element-client-745e610fbd5c652d327c8ac349d49d5ee4c8d9ea.ts → Element-client-83bfbaab3d8c85cce6b97675d8955e03ae99ba24.ts} +3 -0
- package/test/special-element/components/temp/Element-types-478aac6fcc8cc71dc587b534bb45ddcde069e2cb.ts +10 -0
- package/test/special-head/components/output/Head-client.ts +3 -0
- package/test/special-head/components/output/Head-types.ts +10 -0
- package/test/special-head/components/temp/{Head-client-bbbb5e712247ee41ca65a7ffd457987de5e99b3e.ts → Head-client-9e828c39f1930711e6c7db1d318b63f195e01e92.ts} +3 -0
- package/test/special-head/components/temp/Head-types-88772e6c9aefe7f65c342350ad45b29e7fa16604.ts +10 -0
- package/test/special-self/components/output/Self-client.ts +10 -4
- package/test/special-self/components/output/Self-types.ts +10 -0
- package/test/special-self/components/temp/{Self-client-dfe57df69e3677e94f7b5f3657c82602054ef19e.ts → Self-client-6846c5e6cdac15947ab4361f2e2b4ec900abd988.ts} +10 -4
- package/test/special-self/components/temp/Self-types-d438955d6f42951942dfa72ec1b79ad4ee95e966.ts +10 -0
- package/test/style/components/output/Style-client.ts +3 -0
- package/test/style/components/output/Style-types.ts +10 -0
- package/test/style/components/temp/{Style-client-9491a5aff97f118df542f976d7f7a21e7cc88c62.ts → Style-client-710dc4eba0e6a6ecbee26adc0d739ffdfb73ef10.ts} +3 -0
- package/test/style/components/temp/Style-types-d7ced2961f74be74eebaedfb98c492c6789d3cb8.ts +10 -0
- package/test/svg/components/output/Shape-client.ts +10 -4
- package/test/svg/components/output/Shape-types.ts +10 -0
- package/test/svg/components/temp/{Shape-client-4cc148d8b70d3750d2982360aad76b74d194b60e.ts → Shape-client-691decdc6064d94b0951c7a08da10feebd087324.ts} +10 -4
- package/test/svg/components/temp/Shape-types-70f9e311a005452b58286636c0dcb67a73e9fab4.ts +10 -0
- package/test/switch/components/Switch.torp +6 -4
- package/test/switch/components/output/Switch-client.ts +18 -9
- package/test/switch/components/output/Switch-server.ts +6 -4
- package/test/switch/components/output/Switch-types.ts +18 -0
- package/test/switch/components/temp/{Switch-client-5fc00f4d41300dc7587b113d8e53a102beca7558.ts → Switch-client-dcb3511bb3db12ad47e2237afc32a788184ad566.ts} +18 -9
- package/test/switch/components/temp/{Switch-server-440f7e852145b79656c0023ddc776e4d1d077d2a.ts → Switch-server-bbb3b40226e88388eb6f016cb0fd4be54f6139e7.ts} +6 -4
- package/test/switch/components/temp/Switch-types-fad2e2b194747eb6c06474c81de5f814c15e06aa.ts +18 -0
- package/test/text/components/output/Text-client.ts +3 -0
- package/test/text/components/output/Text-types.ts +16 -0
- package/test/text/components/temp/{Text-client-6c3be8a1a31a13eff86ce8b5330829cd15b07fab.ts → Text-client-e05d0c431475bf49349b4f6c162c9e78e0577b10.ts} +3 -0
- package/test/text/components/temp/Text-types-f9e6d77cf5a6def5aff78be41ebca3e8e6a54278.ts +16 -0
- package/test/watch-array/components/output/Array-client.ts +3 -0
- package/test/watch-array/components/output/Array-types.ts +10 -0
- package/test/watch-array/components/output/ArrayEntries-client.ts +3 -0
- package/test/watch-array/components/output/ArrayEntries-types.ts +10 -0
- package/test/watch-array/components/output/ArrayIndexes-client.ts +3 -0
- package/test/watch-array/components/output/ArrayIndexes-types.ts +10 -0
- package/test/watch-array/components/output/ArrayUnkeyed-client.ts +3 -0
- package/test/watch-array/components/output/ArrayUnkeyed-types.ts +10 -0
- package/test/watch-array/components/temp/{Array-client-552f81452d33fe6dc715c9f6bb7986f06475d761.ts → Array-client-3110972e940a678cc26316f5f38b9315a27559ee.ts} +3 -0
- package/test/watch-array/components/temp/Array-types-4afcc38999fa0a5d5b28b8c54ea8f25659d91165.ts +10 -0
- package/test/watch-array/components/temp/{ArrayEntries-client-736755fba2492e74812ff9c905202810de54e15a.ts → ArrayEntries-client-7f1e7bf740768a929f21e62f6b8ee31db8a50918.ts} +3 -0
- package/test/watch-array/components/temp/ArrayEntries-types-ae83cd05c68e5e6b7e8d31212035c14ec9ea6b85.ts +10 -0
- package/test/watch-array/components/temp/{ArrayIndexes-client-a496328fa92ffca676ab8893013a0cfec1734ad1.ts → ArrayIndexes-client-9861162934f1d779326d4d268cd95d765155a085.ts} +3 -0
- package/test/watch-array/components/temp/ArrayIndexes-types-5f02ec73d46553fd5730abfe022dba9a76a341f7.ts +10 -0
- package/test/watch-array/components/temp/{ArrayUnkeyed-client-5a2c5cb1fecba52653f7f35cfd07627682930c15.ts → ArrayUnkeyed-client-4ae3d9a74e763f8879458012de2a3c3837956c99.ts} +3 -0
- package/test/watch-array/components/temp/ArrayUnkeyed-types-6f544a6b354c46913b9ee0e843d0a6482af2745d.ts +10 -0
- package/test/watch-object/components/output/Watched-client.ts +3 -0
- package/test/watch-object/components/output/Watched-types.ts +10 -0
- package/test/watch-object/components/temp/{Watched-client-1f0409aa6e2c425d0319a23caec7d10ad313d579.ts → Watched-client-a7ddca317e29ef12d882d90e7b043d9c99a5f355.ts} +3 -0
- package/test/watch-object/components/temp/Watched-types-70c7bde732f624bfbb8e353bf9d1be8dbaea63e1.ts +10 -0
- package/tsdown.config.ts +1 -1
- package/test/attributes/components/Attributes.d.ts +0 -18
- package/test/await/components/Await.d.ts +0 -18
- package/test/bench/components/Bench.d.ts +0 -18
- package/test/bind/components/BindText.d.ts +0 -18
- package/test/child-component/components/ParentChild.d.ts +0 -34
- package/test/class/components/Class.d.ts +0 -18
- package/test/component/components/Component.d.ts +0 -18
- package/test/component/components/Header.d.ts +0 -18
- package/test/console/components/Console.d.ts +0 -18
- package/test/const/components/Const.d.ts +0 -18
- package/test/effects/components/For.d.ts +0 -18
- package/test/effects/components/If.d.ts +0 -18
- package/test/effects/components/NestedIf.d.ts +0 -18
- package/test/events/components/Increment.d.ts +0 -18
- package/test/for/components/For.d.ts +0 -18
- package/test/for/components/ForEscape.d.ts +0 -18
- package/test/for/components/ForIn.d.ts +0 -18
- package/test/for/components/ForOf.d.ts +0 -18
- package/test/function/components/Function.d.ts +0 -18
- package/test/html/components/Html.d.ts +0 -18
- package/test/if/components/IfAfterIf.d.ts +0 -18
- package/test/if/components/IfElse.d.ts +0 -18
- package/test/if/components/IfElseIf.d.ts +0 -18
- package/test/if/components/IfNested.d.ts +0 -18
- package/test/mount/components/Mount.d.ts +0 -18
- package/test/on-mount/components/OnMount.d.ts +0 -18
- package/test/party/components/AnswerButton.d.ts +0 -18
- package/test/party/components/AnswerButtonApp.d.ts +0 -18
- package/test/party/components/ColorSelect.d.ts +0 -18
- package/test/party/components/Colors.d.ts +0 -18
- package/test/party/components/Counter.d.ts +0 -18
- package/test/party/components/CssStyle.d.ts +0 -18
- package/test/party/components/DoubleCount.d.ts +0 -18
- package/test/party/components/FunnyButton.d.ts +0 -18
- package/test/party/components/FunnyButtonApp.d.ts +0 -18
- package/test/party/components/HelloWorld.d.ts +0 -18
- package/test/party/components/InputFocused.d.ts +0 -18
- package/test/party/components/InputHello.d.ts +0 -18
- package/test/party/components/IsAvailable.d.ts +0 -18
- package/test/party/components/Name.d.ts +0 -18
- package/test/party/components/NameUpdate.d.ts +0 -18
- package/test/party/components/PageTitle.d.ts +0 -18
- package/test/party/components/PickPill.d.ts +0 -18
- package/test/party/components/Time.d.ts +0 -18
- package/test/party/components/TrafficLight.d.ts +0 -18
- package/test/party/components/UserProfile.d.ts +0 -23
- package/test/party/components/UserProfileApp.d.ts +0 -18
- package/test/party/components/UserProfileContext.d.ts +0 -18
- package/test/party/components/UserProfileContextApp.d.ts +0 -18
- package/test/replace/components/Replace.d.ts +0 -18
- package/test/slots/components/Article.d.ts +0 -18
- package/test/slots/components/Basic.d.ts +0 -18
- package/test/slots/components/Header.d.ts +0 -18
- package/test/slots/components/Let.d.ts +0 -18
- package/test/slots/components/List.d.ts +0 -18
- package/test/slots/components/Named.d.ts +0 -18
- package/test/slots/components/Unused.d.ts +0 -18
- package/test/special-component/components/BigTitle.d.ts +0 -18
- package/test/special-component/components/Component.d.ts +0 -18
- package/test/special-component/components/SmallTitle.d.ts +0 -18
- package/test/special-element/components/Element.d.ts +0 -18
- package/test/special-head/components/Head.d.ts +0 -18
- package/test/special-self/components/Self.d.ts +0 -18
- package/test/style/components/Style.d.ts +0 -18
- package/test/svg/components/Shape.d.ts +0 -18
- package/test/switch/components/Switch.d.ts +0 -21
- package/test/text/components/Text.d.ts +0 -21
- package/test/watch-array/components/Array.d.ts +0 -18
- package/test/watch-array/components/ArrayEntries.d.ts +0 -18
- package/test/watch-array/components/ArrayIndexes.d.ts +0 -18
- package/test/watch-array/components/ArrayUnkeyed.d.ts +0 -18
- package/test/watch-object/components/Watched.d.ts +0 -18
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { Component } from "./Component-C6Y3UwGs.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/BuildOptions.d.ts
|
|
4
|
+
interface BuildOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Whether to create the component for server side rendering
|
|
7
|
+
*/
|
|
8
|
+
server?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Whether to create source maps.
|
|
11
|
+
*/
|
|
12
|
+
mapped?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* If true, fragments will be built with calls to createElement etc. If
|
|
15
|
+
* false, fragments will be built with innerHTML. Using createElement is a
|
|
16
|
+
* bit slower, but may be useful in the future for rendering to different
|
|
17
|
+
* targets
|
|
18
|
+
*/
|
|
19
|
+
useCreateElement?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* For internal testing and benchmarking
|
|
22
|
+
*/
|
|
23
|
+
renderFolder?: string;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/compile/types/Import.d.ts
|
|
27
|
+
interface Import {
|
|
28
|
+
name: string;
|
|
29
|
+
alias?: string;
|
|
30
|
+
path: string;
|
|
31
|
+
nonDefault: boolean;
|
|
32
|
+
component: boolean;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/compile/types/SourceRange.d.ts
|
|
36
|
+
interface SourceRange {
|
|
37
|
+
start: number;
|
|
38
|
+
end: number;
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/compile/types/ScriptChunk.d.ts
|
|
42
|
+
interface ScriptChunk {
|
|
43
|
+
script: string;
|
|
44
|
+
range: SourceRange;
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/compile/types/nodes/Fragment.d.ts
|
|
48
|
+
interface Fragment {
|
|
49
|
+
number: number;
|
|
50
|
+
text: string;
|
|
51
|
+
ns: boolean;
|
|
52
|
+
effects: {
|
|
53
|
+
functionBody: string;
|
|
54
|
+
ranges: SourceRange[];
|
|
55
|
+
offsets: number[];
|
|
56
|
+
lengths: number[];
|
|
57
|
+
}[];
|
|
58
|
+
events: {
|
|
59
|
+
varName: string;
|
|
60
|
+
eventName: string;
|
|
61
|
+
handler: string;
|
|
62
|
+
}[];
|
|
63
|
+
animations: string[];
|
|
64
|
+
endVarName?: string;
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/compile/types/nodes/NodeType.d.ts
|
|
68
|
+
type NodeType = "root" | "control" | "component" | "element" | "text" | "special";
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/compile/types/nodes/TemplateNode.d.ts
|
|
71
|
+
interface TemplateNode {
|
|
72
|
+
type: NodeType;
|
|
73
|
+
scopeStyles?: boolean;
|
|
74
|
+
varName?: string;
|
|
75
|
+
handled?: boolean;
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region src/compile/types/nodes/ParentNode.d.ts
|
|
79
|
+
interface ParentNode extends TemplateNode {
|
|
80
|
+
type: NodeType;
|
|
81
|
+
children: TemplateNode[];
|
|
82
|
+
}
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/compile/types/nodes/RootNode.d.ts
|
|
85
|
+
interface RootNode extends ParentNode {
|
|
86
|
+
type: "root";
|
|
87
|
+
children: TemplateNode[];
|
|
88
|
+
fragment?: Fragment;
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/compile/types/styles/Attribute.d.ts
|
|
92
|
+
interface Attribute {
|
|
93
|
+
name: string;
|
|
94
|
+
value: string;
|
|
95
|
+
}
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region src/compile/types/styles/StyleBlock.d.ts
|
|
98
|
+
interface StyleBlock {
|
|
99
|
+
selector: string;
|
|
100
|
+
attributes: Attribute[];
|
|
101
|
+
children: StyleBlock[];
|
|
102
|
+
}
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region src/compile/types/styles/Style.d.ts
|
|
105
|
+
interface Style {
|
|
106
|
+
global: boolean;
|
|
107
|
+
blocks: StyleBlock[];
|
|
108
|
+
hash: string;
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/types/TemplateComponent.d.ts
|
|
112
|
+
interface TemplateComponent {
|
|
113
|
+
start?: number;
|
|
114
|
+
/** The component's name */
|
|
115
|
+
name?: string;
|
|
116
|
+
/** Whether the component is exported from the file */
|
|
117
|
+
exported?: boolean;
|
|
118
|
+
/** Whether the component is defined with a default function */
|
|
119
|
+
default?: boolean;
|
|
120
|
+
/** The component's documentation comments */
|
|
121
|
+
documentation?: string;
|
|
122
|
+
/** Params declared by the user in the component's function */
|
|
123
|
+
params?: string;
|
|
124
|
+
markup?: RootNode;
|
|
125
|
+
head?: RootNode;
|
|
126
|
+
style?: Style;
|
|
127
|
+
/** The type or interface that is used for the $props param */
|
|
128
|
+
propsType?: string;
|
|
129
|
+
/** $props that are used in the component's function */
|
|
130
|
+
props?: string[];
|
|
131
|
+
/** $context props that are used in the component's function */
|
|
132
|
+
contextProps?: string[];
|
|
133
|
+
needsContext?: boolean;
|
|
134
|
+
/** $slot props that are used in the component's function */
|
|
135
|
+
slotProps?: string[];
|
|
136
|
+
}
|
|
137
|
+
//#endregion
|
|
138
|
+
//#region src/types/Template.d.ts
|
|
139
|
+
/**
|
|
140
|
+
* The template for a component file, consisting of parts like script, markup and styles
|
|
141
|
+
*/
|
|
142
|
+
interface Template {
|
|
143
|
+
imports: Import[];
|
|
144
|
+
script: ScriptChunk[];
|
|
145
|
+
components: TemplateComponent[];
|
|
146
|
+
}
|
|
147
|
+
//#endregion
|
|
148
|
+
//#region src/compile/types/SourceMapping.d.ts
|
|
149
|
+
interface SourceMapping {
|
|
150
|
+
script: string;
|
|
151
|
+
source: SourceRange;
|
|
152
|
+
compiled: SourceRange;
|
|
153
|
+
}
|
|
154
|
+
//#endregion
|
|
155
|
+
//#region src/compile/types/BuildResult.d.ts
|
|
156
|
+
interface BuildResult {
|
|
157
|
+
code: string;
|
|
158
|
+
styles: {
|
|
159
|
+
style: string;
|
|
160
|
+
hash: string;
|
|
161
|
+
}[];
|
|
162
|
+
map: SourceMapping[];
|
|
163
|
+
}
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/compile/build.d.ts
|
|
166
|
+
/**
|
|
167
|
+
* Builds a component template into code and styles for rendering
|
|
168
|
+
*
|
|
169
|
+
* @param template The component template, possibly including script, markup and styles
|
|
170
|
+
*
|
|
171
|
+
* @returns The component's code and styles
|
|
172
|
+
*/
|
|
173
|
+
declare function build(template: Template, options?: BuildOptions): BuildResult;
|
|
174
|
+
//#endregion
|
|
175
|
+
//#region src/compile/buildType.d.ts
|
|
176
|
+
/**
|
|
177
|
+
* Builds a component template into a d.ts file
|
|
178
|
+
*
|
|
179
|
+
* @param name The name of the component
|
|
180
|
+
* @param template The component template, possibly including script, markup and styles
|
|
181
|
+
*
|
|
182
|
+
* @returns The d.ts file content
|
|
183
|
+
*/
|
|
184
|
+
declare function buildType(template: Template, options?: BuildOptions): string;
|
|
185
|
+
//#endregion
|
|
186
|
+
//#region src/compile/types/CompileError.d.ts
|
|
187
|
+
interface CompileError {
|
|
188
|
+
message: string;
|
|
189
|
+
startIndex: number;
|
|
190
|
+
startLine: number;
|
|
191
|
+
startChar: number;
|
|
192
|
+
endIndex: number;
|
|
193
|
+
endLine: number;
|
|
194
|
+
endChar: number;
|
|
195
|
+
}
|
|
196
|
+
//#endregion
|
|
197
|
+
//#region src/compile/types/ParseResult.d.ts
|
|
198
|
+
interface ParseResult {
|
|
199
|
+
ok: boolean;
|
|
200
|
+
errors: CompileError[];
|
|
201
|
+
template?: Template;
|
|
202
|
+
}
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region src/compile/parse.d.ts
|
|
205
|
+
/**
|
|
206
|
+
* Parses source code into a component template
|
|
207
|
+
*
|
|
208
|
+
* @param source The source code
|
|
209
|
+
*
|
|
210
|
+
* @returns A result indicating whether parsing was ok, and if so, containing
|
|
211
|
+
* the component template's parts such as script, markup and styles
|
|
212
|
+
*/
|
|
213
|
+
declare function parse(source: string): ParseResult;
|
|
214
|
+
//#endregion
|
|
215
|
+
export { type Component, type Template, build, buildType, parse };
|
|
216
|
+
//# sourceMappingURL=compile.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.cts","names":[],"sources":["../src/types/BuildOptions.ts","../src/compile/types/Import.ts","../src/compile/types/SourceRange.ts","../src/compile/types/ScriptChunk.ts","../src/compile/types/nodes/Fragment.ts","../src/compile/types/nodes/NodeType.ts","../src/compile/types/nodes/TemplateNode.ts","../src/compile/types/nodes/ParentNode.ts","../src/compile/types/nodes/RootNode.ts","../src/compile/types/styles/Attribute.ts","../src/compile/types/styles/StyleBlock.ts","../src/compile/types/styles/Style.ts","../src/types/TemplateComponent.ts","../src/types/Template.ts","../src/compile/types/SourceMapping.ts","../src/compile/types/BuildResult.ts","../src/compile/build.ts","../src/compile/buildType.ts","../src/compile/types/CompileError.ts","../src/compile/types/ParseResult.ts","../src/compile/parse.ts"],"sourcesContent":[],"mappings":";;;UAAyB,YAAA;;;;;;;;;;;;;;;EGAI,gBAEJ,CAAA,EAAA,OAAA;;;;ECFI,YAEJ,CAAA,EAAA,MAAA;;;;UHFA,MAAA;;;MDAA,EAAA,MAAA;;;;;;UEAA,WAAA;;;;;;UCEA,WAAA;;OHFA,EGIjB,WHJiB;;;;UIEA,QAAA;;MJFA,EAAA,MAAA;;;;UCAA,EGQf,WHRe,EAAA;;;;QCAA,EAAA;;;;ECAI,CAAA,EAEJ;;;;;;KEFpB,QAAA;;;UCEoB,YAAA;QAClB;aNHkB,CAAA,EAAA,OAAA;;;;;;UOGA,UAAA,SAAmB;MPHnB,EOIlB,QPJkB;YOKd;;;;APLc,UQIA,QAAA,SAAiB,URJjB,CAAA;;YQMd;aAGC;;;;UCTa,SAAA;;;;;;UCEA,UAAA;;YVFA,EUIZ,SVJY,EAAA;YUKd;;;;UCHc,KAAA;;QXFA,EWIhB,UXJgB,EAAA;;;;;UYGA,iBAAA;OZHA,CAAA,EAAA,MAAA;;;;UCAA,CAAA,EAAA,OAAA;;;;eCAA,CAAA,EAAA,MAAA;;;WUef;ETfmB,IAEJ,CAAA,EScjB,QTdiB;USehB;;;ERjBoB;;;;cCAxB,CAAA,EAAA,OAAA;;;;;;;;;UQOoB,QAAA;SZPA,EYQf,MZRe,EAAA;UYShB;cACI;;;;UCRY,aAAA;;QdFA,EcIhB,WdJgB;YcKd;;;;UCHc,WAAA;;QfFA,EAAA;;;;KCAA,EcQnB,adRmB,EAAA;;;;;;;;;;;iBeeD,KAAA,WAAgB,oBAAoB,eAAe;;;;;;;;;;;iBCHnD,SAAA,WAAoB,oBAAoB;;;UCZvC,YAAA;;;WlBAA,EAAA,MAAA;;;;SCAA,EAAA,MAAA;;;;UkBGA,WAAA;MnBHA,OAAA;UmBKhB;aACG;;;;;;;;;;;;iBCKY,KAAA,kBAAuB"}
|
package/dist/compile.d.ts
CHANGED
|
@@ -113,13 +113,19 @@ interface TemplateComponent {
|
|
|
113
113
|
start?: number;
|
|
114
114
|
/** The component's name */
|
|
115
115
|
name?: string;
|
|
116
|
+
/** Whether the component is exported from the file */
|
|
117
|
+
exported?: boolean;
|
|
116
118
|
/** Whether the component is defined with a default function */
|
|
117
119
|
default?: boolean;
|
|
120
|
+
/** The component's documentation comments */
|
|
121
|
+
documentation?: string;
|
|
118
122
|
/** Params declared by the user in the component's function */
|
|
119
123
|
params?: string;
|
|
120
124
|
markup?: RootNode;
|
|
121
125
|
head?: RootNode;
|
|
122
126
|
style?: Style;
|
|
127
|
+
/** The type or interface that is used for the $props param */
|
|
128
|
+
propsType?: string;
|
|
123
129
|
/** $props that are used in the component's function */
|
|
124
130
|
props?: string[];
|
|
125
131
|
/** $context props that are used in the component's function */
|
package/dist/compile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","names":[],"sources":["../src/types/BuildOptions.ts","../src/compile/types/Import.ts","../src/compile/types/SourceRange.ts","../src/compile/types/ScriptChunk.ts","../src/compile/types/nodes/Fragment.ts","../src/compile/types/nodes/NodeType.ts","../src/compile/types/nodes/TemplateNode.ts","../src/compile/types/nodes/ParentNode.ts","../src/compile/types/nodes/RootNode.ts","../src/compile/types/styles/Attribute.ts","../src/compile/types/styles/StyleBlock.ts","../src/compile/types/styles/Style.ts","../src/types/TemplateComponent.ts","../src/types/Template.ts","../src/compile/types/SourceMapping.ts","../src/compile/types/BuildResult.ts","../src/compile/build.ts","../src/compile/buildType.ts","../src/compile/types/CompileError.ts","../src/compile/types/ParseResult.ts","../src/compile/parse.ts"],"sourcesContent":[],"mappings":";;;UAAyB,YAAA;;;;;;;;;;;;;;;EGAI,gBAEJ,CAAA,EAAA,OAAA;;;;ECFI,YAEJ,CAAA,EAAA,MAAA;;;;UHFA,MAAA;;;MDAA,EAAA,MAAA;;;;;;UEAA,WAAA;;;;;;UCEA,WAAA;;OHFA,EGIjB,WHJiB;;;;UIEA,QAAA;;MJFA,EAAA,MAAA;;;;UCAA,EGQf,WHRe,EAAA;;;;QCAA,EAAA;;;;ECAI,CAAA,EAEJ;;;;;;KEFpB,QAAA;;;UCEoB,YAAA;QAClB;aNHkB,CAAA,EAAA,OAAA;;;;;;UOGA,UAAA,SAAmB;MPHnB,EOIlB,QPJkB;YOKd;;;;APLc,UQIA,QAAA,SAAiB,URJjB,CAAA;;YQMd;aAGC;;;;UCTa,SAAA;;;;;;UCEA,UAAA;;YVFA,EUIZ,SVJY,EAAA;YUKd;;;;UCHc,KAAA;;QXFA,EWIhB,UXJgB,EAAA;;;;;UYGA,iBAAA;OZHA,CAAA,EAAA,MAAA;;;;
|
|
1
|
+
{"version":3,"file":"compile.d.ts","names":[],"sources":["../src/types/BuildOptions.ts","../src/compile/types/Import.ts","../src/compile/types/SourceRange.ts","../src/compile/types/ScriptChunk.ts","../src/compile/types/nodes/Fragment.ts","../src/compile/types/nodes/NodeType.ts","../src/compile/types/nodes/TemplateNode.ts","../src/compile/types/nodes/ParentNode.ts","../src/compile/types/nodes/RootNode.ts","../src/compile/types/styles/Attribute.ts","../src/compile/types/styles/StyleBlock.ts","../src/compile/types/styles/Style.ts","../src/types/TemplateComponent.ts","../src/types/Template.ts","../src/compile/types/SourceMapping.ts","../src/compile/types/BuildResult.ts","../src/compile/build.ts","../src/compile/buildType.ts","../src/compile/types/CompileError.ts","../src/compile/types/ParseResult.ts","../src/compile/parse.ts"],"sourcesContent":[],"mappings":";;;UAAyB,YAAA;;;;;;;;;;;;;;;EGAI,gBAEJ,CAAA,EAAA,OAAA;;;;ECFI,YAEJ,CAAA,EAAA,MAAA;;;;UHFA,MAAA;;;MDAA,EAAA,MAAA;;;;;;UEAA,WAAA;;;;;;UCEA,WAAA;;OHFA,EGIjB,WHJiB;;;;UIEA,QAAA;;MJFA,EAAA,MAAA;;;;UCAA,EGQf,WHRe,EAAA;;;;QCAA,EAAA;;;;ECAI,CAAA,EAEJ;;;;;;KEFpB,QAAA;;;UCEoB,YAAA;QAClB;aNHkB,CAAA,EAAA,OAAA;;;;;;UOGA,UAAA,SAAmB;MPHnB,EOIlB,QPJkB;YOKd;;;;APLc,UQIA,QAAA,SAAiB,URJjB,CAAA;;YQMd;aAGC;;;;UCTa,SAAA;;;;;;UCEA,UAAA;;YVFA,EUIZ,SVJY,EAAA;YUKd;;;;UCHc,KAAA;;QXFA,EWIhB,UXJgB,EAAA;;;;;UYGA,iBAAA;OZHA,CAAA,EAAA,MAAA;;;;UCAA,CAAA,EAAA,OAAA;;;;eCAA,CAAA,EAAA,MAAA;;;WUef;ETfmB,IAEJ,CAAA,EScjB,QTdiB;USehB;;;ERjBoB;;;;cCAxB,CAAA,EAAA,OAAA;;;;;;;;;UQOoB,QAAA;SZPA,EYQf,MZRe,EAAA;UYShB;cACI;;;;UCRY,aAAA;;QdFA,EcIhB,WdJgB;YcKd;;;;UCHc,WAAA;;QfFA,EAAA;;;;KCAA,EcQnB,adRmB,EAAA;;;;;;;;;;;iBeeD,KAAA,WAAgB,oBAAoB,eAAe;;;;;;;;;;;iBCHnD,SAAA,WAAoB,oBAAoB;;;UCZvC,YAAA;;;WlBAA,EAAA,MAAA;;;;SCAA,EAAA,MAAA;;;;UkBGA,WAAA;MnBHA,OAAA;UmBKhB;aACG;;;;;;;;;;;;iBCKY,KAAA,kBAAuB"}
|
package/dist/compile.js
CHANGED
|
@@ -778,6 +778,7 @@ function buildAwaitNode(node, status, b) {
|
|
|
778
778
|
const parentName = node.parentName;
|
|
779
779
|
const rangeName = nextVarName("await_range", status);
|
|
780
780
|
const stateName = "$" + nextVarName("await_state", status);
|
|
781
|
+
const creatorsName = nextVarName("await_creators", status);
|
|
781
782
|
const awaitVarsName = nextVarName("await_vars", status);
|
|
782
783
|
const branches = node.children.filter((n) => isControlNode(n));
|
|
783
784
|
let awaitBranch = branches.find((n) => n.operation === "@await");
|
|
@@ -816,11 +817,13 @@ function buildAwaitNode(node, status, b) {
|
|
|
816
817
|
b.append(`
|
|
817
818
|
/* @await */
|
|
818
819
|
const ${rangeName} = t_range();
|
|
819
|
-
let ${stateName} = $watch({
|
|
820
|
+
let ${stateName} = $watch({ index: -1 });
|
|
821
|
+
let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
|
|
820
822
|
b.append(`
|
|
821
823
|
let ${awaitVarsName} = { t_token: 0 };
|
|
822
824
|
$run(function runAwait() {`);
|
|
823
|
-
|
|
825
|
+
let index = 0;
|
|
826
|
+
buildAwaitBranch(awaitBranch, status, b, parentName, stateName, creatorsName, index++);
|
|
824
827
|
b.append(`${awaitVarsName}.t_token++;
|
|
825
828
|
((t_token) => {`);
|
|
826
829
|
awaitBranch.range.start += 7;
|
|
@@ -828,27 +831,27 @@ function buildAwaitNode(node, status, b) {
|
|
|
828
831
|
thenBranch.range.start -= 1;
|
|
829
832
|
addMappedText(".then((", replaceForVarNames(thenVar, status), ") => {", thenBranch.range, status, b);
|
|
830
833
|
b.append(`if (t_token === ${awaitVarsName}.t_token) {`);
|
|
831
|
-
buildAwaitBranch(thenBranch, status, b, parentName, stateName);
|
|
834
|
+
buildAwaitBranch(thenBranch, status, b, parentName, stateName, creatorsName, index++);
|
|
832
835
|
b.append(`}
|
|
833
836
|
})`);
|
|
834
837
|
catchBranch.range.start -= 1;
|
|
835
838
|
addMappedText(".catch((", replaceForVarNames(catchVar, status), ") => {", catchBranch.range, status, b);
|
|
836
839
|
b.append(`
|
|
837
840
|
if (t_token === ${awaitVarsName}.t_token) {`);
|
|
838
|
-
buildAwaitBranch(catchBranch, status, b, parentName, stateName);
|
|
841
|
+
buildAwaitBranch(catchBranch, status, b, parentName, stateName, creatorsName, index++);
|
|
839
842
|
b.append(`}
|
|
840
843
|
});
|
|
841
844
|
})(${awaitVarsName}.t_token);
|
|
842
845
|
});`);
|
|
843
846
|
b.append(`
|
|
844
847
|
t_run_control(${rangeName}, ${anchorName}, (t_before) => {
|
|
845
|
-
t_run_branch(${rangeName}, () => ${stateName}.
|
|
848
|
+
t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
|
|
846
849
|
});`);
|
|
847
850
|
b.append("");
|
|
848
851
|
}
|
|
849
|
-
function buildAwaitBranch(node, status, b, parentName, stateName) {
|
|
852
|
+
function buildAwaitBranch(node, status, b, parentName, stateName, creatorsName, index) {
|
|
850
853
|
if (node.children.length > 0) {
|
|
851
|
-
b.append(`${
|
|
854
|
+
b.append(`${creatorsName}[${index}] = (t_before) => {`);
|
|
852
855
|
buildFragment(node, status, b, parentName, "t_before");
|
|
853
856
|
status.fragmentStack.push({
|
|
854
857
|
fragment: node.fragment,
|
|
@@ -858,7 +861,8 @@ function buildAwaitBranch(node, status, b, parentName, stateName) {
|
|
|
858
861
|
status.fragmentStack.pop();
|
|
859
862
|
buildAddFragment(node, status, b, parentName, "t_before");
|
|
860
863
|
b.append("};");
|
|
861
|
-
} else b.append(`${
|
|
864
|
+
} else b.append(`${creatorsName}[${index}] = (_) => {};`);
|
|
865
|
+
b.append(`${stateName}.index = ${index};`);
|
|
862
866
|
}
|
|
863
867
|
|
|
864
868
|
//#endregion
|
|
@@ -998,6 +1002,7 @@ function buildIfNode(node, status, b) {
|
|
|
998
1002
|
const parentName = node.parentName || anchorName + ".parentNode";
|
|
999
1003
|
const rangeName = nextVarName("if_range", status);
|
|
1000
1004
|
const stateName = "$" + nextVarName("if_state", status);
|
|
1005
|
+
const creatorsName = nextVarName("if_creators", status);
|
|
1001
1006
|
const branches = node.children.filter((n) => isControlNode(n));
|
|
1002
1007
|
if (branches.findIndex((n) => n.operation === "@else") === -1) branches.push({
|
|
1003
1008
|
type: "control",
|
|
@@ -1018,20 +1023,22 @@ function buildIfNode(node, status, b) {
|
|
|
1018
1023
|
b.append(`
|
|
1019
1024
|
/* @if */
|
|
1020
1025
|
const ${rangeName} = t_range();
|
|
1021
|
-
let ${stateName} = $watch({
|
|
1026
|
+
let ${stateName} = $watch({ index: -1 });
|
|
1027
|
+
let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
|
|
1022
1028
|
b.append(`$run(function runIf() {`);
|
|
1023
|
-
|
|
1029
|
+
let index = 0;
|
|
1030
|
+
for (let branch of branches) buildIfBranch(branch, status, b, parentName, stateName, creatorsName, index++);
|
|
1024
1031
|
b.append(`});`);
|
|
1025
1032
|
b.append(`
|
|
1026
1033
|
t_run_control(${rangeName}, ${anchorName}, (t_before) => {
|
|
1027
|
-
t_run_branch(${rangeName}, () => ${stateName}.
|
|
1034
|
+
t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
|
|
1028
1035
|
});`);
|
|
1029
1036
|
b.append("");
|
|
1030
1037
|
}
|
|
1031
|
-
function buildIfBranch(node, status, b, parentName, stateName) {
|
|
1038
|
+
function buildIfBranch(node, status, b, parentName, stateName, creatorsName, index) {
|
|
1032
1039
|
addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
|
|
1033
1040
|
if (node.children.length > 0) {
|
|
1034
|
-
b.append(`${
|
|
1041
|
+
b.append(`${creatorsName}[${index}] = (t_before) => {`);
|
|
1035
1042
|
buildFragment(node, status, b, parentName, "t_before");
|
|
1036
1043
|
status.fragmentStack.push({
|
|
1037
1044
|
fragment: node.fragment,
|
|
@@ -1041,7 +1048,8 @@ function buildIfBranch(node, status, b, parentName, stateName) {
|
|
|
1041
1048
|
status.fragmentStack.pop();
|
|
1042
1049
|
buildAddFragment(node, status, b, parentName, "t_before");
|
|
1043
1050
|
b.append("};");
|
|
1044
|
-
} else b.append(`${
|
|
1051
|
+
} else b.append(`${creatorsName}[${index}] = (_) => {};`);
|
|
1052
|
+
b.append(`${stateName}.index = ${index};`);
|
|
1045
1053
|
b.append("}");
|
|
1046
1054
|
}
|
|
1047
1055
|
|
|
@@ -1096,6 +1104,7 @@ function buildSwitchNode(node, status, b) {
|
|
|
1096
1104
|
const parentName = node.parentName;
|
|
1097
1105
|
const rangeName = nextVarName("switch_range", status);
|
|
1098
1106
|
const stateName = "$" + nextVarName("switch_state", status);
|
|
1107
|
+
const creatorsName = nextVarName("switch_creators", status);
|
|
1099
1108
|
const branches = node.children.filter((n) => isControlNode(n));
|
|
1100
1109
|
if (branches.findIndex((n) => n.operation === "@default") === -1) branches.push({
|
|
1101
1110
|
type: "control",
|
|
@@ -1116,24 +1125,26 @@ function buildSwitchNode(node, status, b) {
|
|
|
1116
1125
|
b.append(`
|
|
1117
1126
|
/* @switch */
|
|
1118
1127
|
const ${rangeName} = t_range();
|
|
1119
|
-
let ${stateName} = $watch({
|
|
1128
|
+
let ${stateName} = $watch({ index: -1 });
|
|
1129
|
+
let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
|
|
1120
1130
|
b.append(`
|
|
1121
1131
|
$run(function runSwitch() {`);
|
|
1132
|
+
let index = 0;
|
|
1122
1133
|
addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
|
|
1123
|
-
for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, stateName);
|
|
1134
|
+
for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, stateName, creatorsName, index++);
|
|
1124
1135
|
b.append(`
|
|
1125
1136
|
}
|
|
1126
1137
|
});`);
|
|
1127
1138
|
b.append(`
|
|
1128
1139
|
t_run_control(${rangeName}, ${anchorName}, (t_before) => {
|
|
1129
|
-
t_run_branch(${rangeName}, () => ${stateName}.
|
|
1140
|
+
t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
|
|
1130
1141
|
});`);
|
|
1131
1142
|
b.append("");
|
|
1132
1143
|
}
|
|
1133
|
-
function buildSwitchBranch(node, status, b, parentName, stateName) {
|
|
1144
|
+
function buildSwitchBranch(node, status, b, parentName, stateName, creatorsName, index) {
|
|
1134
1145
|
addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
|
|
1135
1146
|
if (node.children.length > 0) {
|
|
1136
|
-
b.append(`${
|
|
1147
|
+
b.append(`${creatorsName}[${index}] = (t_before) => {`);
|
|
1137
1148
|
buildFragment(node, status, b, parentName, "t_before");
|
|
1138
1149
|
status.fragmentStack.push({
|
|
1139
1150
|
fragment: node.fragment,
|
|
@@ -1143,7 +1154,8 @@ function buildSwitchBranch(node, status, b, parentName, stateName) {
|
|
|
1143
1154
|
status.fragmentStack.pop();
|
|
1144
1155
|
buildAddFragment(node, status, b, parentName, "t_before");
|
|
1145
1156
|
b.append("};");
|
|
1146
|
-
} else b.append(`${
|
|
1157
|
+
} else b.append(`${creatorsName}[${index}] = (_) => {};`);
|
|
1158
|
+
b.append(`${stateName}.index = ${index};`);
|
|
1147
1159
|
b.append(`
|
|
1148
1160
|
break;
|
|
1149
1161
|
}`);
|
|
@@ -1712,7 +1724,7 @@ function buildTemplate(template, map, imports, b, options) {
|
|
|
1712
1724
|
if (/\$run\b/.test(script)) imports.add("$run");
|
|
1713
1725
|
if (/\$mount\b/.test(script)) imports.add("$mount");
|
|
1714
1726
|
if (/\$unwrap\b/.test(script)) imports.add("$unwrap");
|
|
1715
|
-
|
|
1727
|
+
imports.add("$peek");
|
|
1716
1728
|
if (/\$batch\b/.test(script)) imports.add("$batch");
|
|
1717
1729
|
let currentIndex = 0;
|
|
1718
1730
|
let current = template.components[0];
|
|
@@ -1728,6 +1740,7 @@ function buildTemplate(template, map, imports, b, options) {
|
|
|
1728
1740
|
} else if (chunk.script === ") /* @return_type */ {") b.append("): void {");
|
|
1729
1741
|
else if (chunk.script === "/* @start */") {
|
|
1730
1742
|
if (current.contextProps?.length) b.append(`$context = Object.assign({}, $context);`);
|
|
1743
|
+
b.append("$peek(() => { /**/");
|
|
1731
1744
|
b.append("");
|
|
1732
1745
|
} else if (chunk.script === "/* @render */") {
|
|
1733
1746
|
if (current.markup) {
|
|
@@ -1748,6 +1761,7 @@ function buildTemplate(template, map, imports, b, options) {
|
|
|
1748
1761
|
status.inHead = false;
|
|
1749
1762
|
}
|
|
1750
1763
|
} else if (chunk.script === "/* @style */") {} else if (chunk.script === "/* @end */") {
|
|
1764
|
+
b.append("/**/ });");
|
|
1751
1765
|
currentIndex += 1;
|
|
1752
1766
|
current = template.components[currentIndex];
|
|
1753
1767
|
} else {
|
|
@@ -2425,17 +2439,14 @@ function build(template, options) {
|
|
|
2425
2439
|
function buildType(template, options) {
|
|
2426
2440
|
let b = new Builder();
|
|
2427
2441
|
b.append(`import { type SlotRender } from "${options?.renderFolder || "@torpor/view"}";`);
|
|
2428
|
-
for (let component of template.components) {
|
|
2442
|
+
for (let component of template.components) if (component.exported) {
|
|
2429
2443
|
b.append("");
|
|
2444
|
+
if (component.propsType) {
|
|
2445
|
+
b.append(component.propsType);
|
|
2446
|
+
b.append("");
|
|
2447
|
+
}
|
|
2430
2448
|
b.append(`
|
|
2431
|
-
|
|
2432
|
-
* Mounts or hydrates the component into the supplied parent node.
|
|
2433
|
-
* @param $parent -- The parent node.
|
|
2434
|
-
* @param $anchor -- The node to mount the component before.
|
|
2435
|
-
* @param $props -- The values that have been passed into the component as properties.
|
|
2436
|
-
* @param $context -- Values that have been passed into the component from its ancestors.
|
|
2437
|
-
* @param $slots -- Functions for rendering children into slot nodes within the component.
|
|
2438
|
-
*/
|
|
2449
|
+
${component.documentation ?? ""}
|
|
2439
2450
|
${component.default ? "declare" : "export declare"} function ${component.name}(
|
|
2440
2451
|
$parent: ParentNode,
|
|
2441
2452
|
$anchor: Node | null,
|
|
@@ -2455,6 +2466,45 @@ function isSpaceNode(node) {
|
|
|
2455
2466
|
return isTextNode(node) && isSpace(node.content);
|
|
2456
2467
|
}
|
|
2457
2468
|
|
|
2469
|
+
//#endregion
|
|
2470
|
+
//#region src/compile/parse/utils/accept.ts
|
|
2471
|
+
/**
|
|
2472
|
+
* Checks whether the source at the current parse position matches the supplied
|
|
2473
|
+
* string
|
|
2474
|
+
*
|
|
2475
|
+
* @param value The string to check
|
|
2476
|
+
* @param status The parse status
|
|
2477
|
+
* @param advance (Optional) If true, advances the parse position past the
|
|
2478
|
+
* checked string (defaults to true)
|
|
2479
|
+
*
|
|
2480
|
+
* @returns True if the supplied string was found at the current parse position
|
|
2481
|
+
*/
|
|
2482
|
+
function accept(value, status, advance = true) {
|
|
2483
|
+
if (status.source.substring(status.i, status.i + value.length) == value) {
|
|
2484
|
+
status.i += advance ? value.length : 0;
|
|
2485
|
+
return true;
|
|
2486
|
+
}
|
|
2487
|
+
return false;
|
|
2488
|
+
}
|
|
2489
|
+
|
|
2490
|
+
//#endregion
|
|
2491
|
+
//#region src/compile/parse/parseInlineScript.ts
|
|
2492
|
+
function parseInlineScript(status) {
|
|
2493
|
+
const start = status.i;
|
|
2494
|
+
let braceCount = 0;
|
|
2495
|
+
while (status.i < status.source.length) if (accept("{", status)) braceCount += 1;
|
|
2496
|
+
else if (accept("}", status)) if (braceCount > 0) braceCount -= 1;
|
|
2497
|
+
else return status.source.substring(start, status.i - 1);
|
|
2498
|
+
else if (accept("//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
|
|
2499
|
+
else if (accept("/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
|
|
2500
|
+
else if (accept("\"", status) || accept("'", status)) {
|
|
2501
|
+
const char = status.source[status.i - 1];
|
|
2502
|
+
status.i = endOfString(char, status.source, status.i - 1) + 1;
|
|
2503
|
+
} else if (accept("`", status)) status.i = endOfTemplateString(status.source, status.i - 1) + 1;
|
|
2504
|
+
else status.i += 1;
|
|
2505
|
+
return "";
|
|
2506
|
+
}
|
|
2507
|
+
|
|
2458
2508
|
//#endregion
|
|
2459
2509
|
//#region src/compile/utils/trimStart.ts
|
|
2460
2510
|
/**
|
|
@@ -2519,45 +2569,6 @@ function isFullyReactive(text) {
|
|
|
2519
2569
|
return text.trim().startsWith("{") && text.trim().endsWith("}");
|
|
2520
2570
|
}
|
|
2521
2571
|
|
|
2522
|
-
//#endregion
|
|
2523
|
-
//#region src/compile/parse/utils/accept.ts
|
|
2524
|
-
/**
|
|
2525
|
-
* Checks whether the source at the current parse position matches the supplied
|
|
2526
|
-
* string
|
|
2527
|
-
*
|
|
2528
|
-
* @param value The string to check
|
|
2529
|
-
* @param status The parse status
|
|
2530
|
-
* @param advance (Optional) If true, advances the parse position past the
|
|
2531
|
-
* checked string (defaults to true)
|
|
2532
|
-
*
|
|
2533
|
-
* @returns True if the supplied string was found at the current parse position
|
|
2534
|
-
*/
|
|
2535
|
-
function accept(value, status, advance = true) {
|
|
2536
|
-
if (status.source.substring(status.i, status.i + value.length) == value) {
|
|
2537
|
-
status.i += advance ? value.length : 0;
|
|
2538
|
-
return true;
|
|
2539
|
-
}
|
|
2540
|
-
return false;
|
|
2541
|
-
}
|
|
2542
|
-
|
|
2543
|
-
//#endregion
|
|
2544
|
-
//#region src/compile/parse/parseInlineScript.ts
|
|
2545
|
-
function parseInlineScript(status) {
|
|
2546
|
-
const start = status.i;
|
|
2547
|
-
let braceCount = 0;
|
|
2548
|
-
while (status.i < status.source.length) if (accept("{", status)) braceCount += 1;
|
|
2549
|
-
else if (accept("}", status)) if (braceCount > 0) braceCount -= 1;
|
|
2550
|
-
else return status.source.substring(start, status.i - 1);
|
|
2551
|
-
else if (accept("//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
|
|
2552
|
-
else if (accept("/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
|
|
2553
|
-
else if (accept("\"", status) || accept("'", status)) {
|
|
2554
|
-
const char = status.source[status.i - 1];
|
|
2555
|
-
status.i = endOfString(char, status.source, status.i - 1) + 1;
|
|
2556
|
-
} else if (accept("`", status)) status.i = endOfTemplateString(status.source, status.i - 1) + 1;
|
|
2557
|
-
else status.i += 1;
|
|
2558
|
-
return "";
|
|
2559
|
-
}
|
|
2560
|
-
|
|
2561
2572
|
//#endregion
|
|
2562
2573
|
//#region src/compile/parse/utils/isAlphaNumericChar.ts
|
|
2563
2574
|
/**
|
|
@@ -2651,6 +2662,7 @@ function parseTagAttributes(status) {
|
|
|
2651
2662
|
if (accept("@//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
|
|
2652
2663
|
else if (accept("@/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
|
|
2653
2664
|
else if (accept("/>", status, false) || accept(">", status, false)) break;
|
|
2665
|
+
else if (accept("<", status, false) || accept("@", status, false) || accept("}", status, false)) break;
|
|
2654
2666
|
else {
|
|
2655
2667
|
const attribute = parseAttribute(status);
|
|
2656
2668
|
attributes.push(attribute);
|
|
@@ -3400,11 +3412,14 @@ function parseCode(source) {
|
|
|
3400
3412
|
return {
|
|
3401
3413
|
start: c.start,
|
|
3402
3414
|
name: c.name,
|
|
3415
|
+
exported: c.exported,
|
|
3403
3416
|
default: c.default,
|
|
3417
|
+
documentation: c.documentation,
|
|
3404
3418
|
params: c.params,
|
|
3405
3419
|
markup: c.markup,
|
|
3406
3420
|
head: c.head,
|
|
3407
3421
|
style: c.style,
|
|
3422
|
+
propsType: c.propsType,
|
|
3408
3423
|
props: c.props,
|
|
3409
3424
|
contextProps: c.contextProps,
|
|
3410
3425
|
slotProps: c.slotProps,
|
|
@@ -3415,17 +3430,31 @@ function parseCode(source) {
|
|
|
3415
3430
|
};
|
|
3416
3431
|
}
|
|
3417
3432
|
function parseComponentStart(status) {
|
|
3418
|
-
let source = status.source.substring(
|
|
3433
|
+
let source = status.source.substring(status.marker, status.i);
|
|
3434
|
+
let exported = /export\s+(default\s+)*(function\s+|const\s+)*$/.test(source);
|
|
3419
3435
|
let def = /export\s+default\s+(function\s+|const\s+)*$/.test(source);
|
|
3420
3436
|
let isConst = /const\s+$/.test(source);
|
|
3421
3437
|
let isAnon = /export default\s+$/.test(source);
|
|
3422
|
-
status.
|
|
3423
|
-
|
|
3424
|
-
|
|
3438
|
+
let componentStart = status.i;
|
|
3439
|
+
let name = consumeAlphaNumeric(status);
|
|
3440
|
+
const current = {
|
|
3441
|
+
start: componentStart,
|
|
3442
|
+
name,
|
|
3443
|
+
exported,
|
|
3425
3444
|
default: def
|
|
3426
|
-
}
|
|
3427
|
-
|
|
3428
|
-
|
|
3445
|
+
};
|
|
3446
|
+
status.components.push(current);
|
|
3447
|
+
let presource = source.substring(0, status.i).trimEnd();
|
|
3448
|
+
let lastNewline = presource.lastIndexOf("\n");
|
|
3449
|
+
if (lastNewline !== -1) {
|
|
3450
|
+
presource = presource.substring(0, lastNewline).trimEnd();
|
|
3451
|
+
if (presource.endsWith("*/")) {
|
|
3452
|
+
for (let i = presource.length; i >= 0; i--) if (presource.substring(i, i + 3) === "/**") {
|
|
3453
|
+
current.documentation = presource.substring(i);
|
|
3454
|
+
break;
|
|
3455
|
+
}
|
|
3456
|
+
}
|
|
3457
|
+
}
|
|
3429
3458
|
let start = -1;
|
|
3430
3459
|
let end = -1;
|
|
3431
3460
|
let level = 0;
|
|
@@ -3457,6 +3486,29 @@ function parseComponentStart(status) {
|
|
|
3457
3486
|
}
|
|
3458
3487
|
});
|
|
3459
3488
|
current.params = status.source.substring(start, end).trim() || void 0;
|
|
3489
|
+
const paramsMatch = current.params?.match(/\$props:\s*([$A-Za-z0-9]+)/);
|
|
3490
|
+
if (paramsMatch) {
|
|
3491
|
+
let propsTypeName = paramsMatch[1];
|
|
3492
|
+
let propsTypeStart = status.source.search(/* @__PURE__ */ new RegExp(`interface\\s+${propsTypeName}`));
|
|
3493
|
+
if (propsTypeStart === -1) propsTypeStart = status.source.search(/* @__PURE__ */ new RegExp(`type\\s+${propsTypeName}`));
|
|
3494
|
+
if (propsTypeStart !== -1) {
|
|
3495
|
+
let bracesStart = status.source.indexOf("{", propsTypeStart);
|
|
3496
|
+
if (bracesStart !== -1) {
|
|
3497
|
+
const status2 = {
|
|
3498
|
+
source: status.source,
|
|
3499
|
+
i: bracesStart + 1,
|
|
3500
|
+
marker: 0,
|
|
3501
|
+
level: 0,
|
|
3502
|
+
imports: [],
|
|
3503
|
+
script: [],
|
|
3504
|
+
components: [],
|
|
3505
|
+
errors: []
|
|
3506
|
+
};
|
|
3507
|
+
const propsType = parseInlineScript(status2);
|
|
3508
|
+
if (propsType) current.propsType = `${status.source.substring(propsTypeStart, bracesStart)}{${propsType}}`;
|
|
3509
|
+
}
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3460
3512
|
status.marker = end;
|
|
3461
3513
|
status.i = status.marker;
|
|
3462
3514
|
accept(")", status);
|