@torpor/view 0.3.1 → 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 +9 -0
- package/dist/compile.cjs +128 -76
- package/dist/compile.cjs.map +1 -1
- package/dist/compile.d.cts +6 -0
- package/dist/compile.d.cts.map +1 -1
- 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.map +1 -1
- package/package.json +1 -1
- 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/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
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @torpor/view
|
|
2
2
|
|
|
3
|
+
## 0.3.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- f4716c5: Fix: isolate components
|
|
8
|
+
- 1253f7a: Fix: handle unclosed elements
|
|
9
|
+
- 6268e00: Fix: run @if, @switch and @await with cached signals
|
|
10
|
+
- f2fb547: Fix: better type definition generation
|
|
11
|
+
|
|
3
12
|
## 0.3.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/compile.cjs
CHANGED
|
@@ -779,6 +779,7 @@ function buildAwaitNode(node, status, b) {
|
|
|
779
779
|
const parentName = node.parentName;
|
|
780
780
|
const rangeName = nextVarName("await_range", status);
|
|
781
781
|
const stateName = "$" + nextVarName("await_state", status);
|
|
782
|
+
const creatorsName = nextVarName("await_creators", status);
|
|
782
783
|
const awaitVarsName = nextVarName("await_vars", status);
|
|
783
784
|
const branches = node.children.filter((n) => isControlNode(n));
|
|
784
785
|
let awaitBranch = branches.find((n) => n.operation === "@await");
|
|
@@ -817,11 +818,13 @@ function buildAwaitNode(node, status, b) {
|
|
|
817
818
|
b.append(`
|
|
818
819
|
/* @await */
|
|
819
820
|
const ${rangeName} = t_range();
|
|
820
|
-
let ${stateName} = $watch({
|
|
821
|
+
let ${stateName} = $watch({ index: -1 });
|
|
822
|
+
let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
|
|
821
823
|
b.append(`
|
|
822
824
|
let ${awaitVarsName} = { t_token: 0 };
|
|
823
825
|
$run(function runAwait() {`);
|
|
824
|
-
|
|
826
|
+
let index = 0;
|
|
827
|
+
buildAwaitBranch(awaitBranch, status, b, parentName, stateName, creatorsName, index++);
|
|
825
828
|
b.append(`${awaitVarsName}.t_token++;
|
|
826
829
|
((t_token) => {`);
|
|
827
830
|
awaitBranch.range.start += 7;
|
|
@@ -829,27 +832,27 @@ function buildAwaitNode(node, status, b) {
|
|
|
829
832
|
thenBranch.range.start -= 1;
|
|
830
833
|
addMappedText(".then((", replaceForVarNames(thenVar, status), ") => {", thenBranch.range, status, b);
|
|
831
834
|
b.append(`if (t_token === ${awaitVarsName}.t_token) {`);
|
|
832
|
-
buildAwaitBranch(thenBranch, status, b, parentName, stateName);
|
|
835
|
+
buildAwaitBranch(thenBranch, status, b, parentName, stateName, creatorsName, index++);
|
|
833
836
|
b.append(`}
|
|
834
837
|
})`);
|
|
835
838
|
catchBranch.range.start -= 1;
|
|
836
839
|
addMappedText(".catch((", replaceForVarNames(catchVar, status), ") => {", catchBranch.range, status, b);
|
|
837
840
|
b.append(`
|
|
838
841
|
if (t_token === ${awaitVarsName}.t_token) {`);
|
|
839
|
-
buildAwaitBranch(catchBranch, status, b, parentName, stateName);
|
|
842
|
+
buildAwaitBranch(catchBranch, status, b, parentName, stateName, creatorsName, index++);
|
|
840
843
|
b.append(`}
|
|
841
844
|
});
|
|
842
845
|
})(${awaitVarsName}.t_token);
|
|
843
846
|
});`);
|
|
844
847
|
b.append(`
|
|
845
848
|
t_run_control(${rangeName}, ${anchorName}, (t_before) => {
|
|
846
|
-
t_run_branch(${rangeName}, () => ${stateName}.
|
|
849
|
+
t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
|
|
847
850
|
});`);
|
|
848
851
|
b.append("");
|
|
849
852
|
}
|
|
850
|
-
function buildAwaitBranch(node, status, b, parentName, stateName) {
|
|
853
|
+
function buildAwaitBranch(node, status, b, parentName, stateName, creatorsName, index) {
|
|
851
854
|
if (node.children.length > 0) {
|
|
852
|
-
b.append(`${
|
|
855
|
+
b.append(`${creatorsName}[${index}] = (t_before) => {`);
|
|
853
856
|
buildFragment(node, status, b, parentName, "t_before");
|
|
854
857
|
status.fragmentStack.push({
|
|
855
858
|
fragment: node.fragment,
|
|
@@ -859,7 +862,8 @@ function buildAwaitBranch(node, status, b, parentName, stateName) {
|
|
|
859
862
|
status.fragmentStack.pop();
|
|
860
863
|
buildAddFragment(node, status, b, parentName, "t_before");
|
|
861
864
|
b.append("};");
|
|
862
|
-
} else b.append(`${
|
|
865
|
+
} else b.append(`${creatorsName}[${index}] = (_) => {};`);
|
|
866
|
+
b.append(`${stateName}.index = ${index};`);
|
|
863
867
|
}
|
|
864
868
|
|
|
865
869
|
//#endregion
|
|
@@ -999,6 +1003,7 @@ function buildIfNode(node, status, b) {
|
|
|
999
1003
|
const parentName = node.parentName || anchorName + ".parentNode";
|
|
1000
1004
|
const rangeName = nextVarName("if_range", status);
|
|
1001
1005
|
const stateName = "$" + nextVarName("if_state", status);
|
|
1006
|
+
const creatorsName = nextVarName("if_creators", status);
|
|
1002
1007
|
const branches = node.children.filter((n) => isControlNode(n));
|
|
1003
1008
|
if (branches.findIndex((n) => n.operation === "@else") === -1) branches.push({
|
|
1004
1009
|
type: "control",
|
|
@@ -1019,20 +1024,22 @@ function buildIfNode(node, status, b) {
|
|
|
1019
1024
|
b.append(`
|
|
1020
1025
|
/* @if */
|
|
1021
1026
|
const ${rangeName} = t_range();
|
|
1022
|
-
let ${stateName} = $watch({
|
|
1027
|
+
let ${stateName} = $watch({ index: -1 });
|
|
1028
|
+
let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
|
|
1023
1029
|
b.append(`$run(function runIf() {`);
|
|
1024
|
-
|
|
1030
|
+
let index = 0;
|
|
1031
|
+
for (let branch of branches) buildIfBranch(branch, status, b, parentName, stateName, creatorsName, index++);
|
|
1025
1032
|
b.append(`});`);
|
|
1026
1033
|
b.append(`
|
|
1027
1034
|
t_run_control(${rangeName}, ${anchorName}, (t_before) => {
|
|
1028
|
-
t_run_branch(${rangeName}, () => ${stateName}.
|
|
1035
|
+
t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
|
|
1029
1036
|
});`);
|
|
1030
1037
|
b.append("");
|
|
1031
1038
|
}
|
|
1032
|
-
function buildIfBranch(node, status, b, parentName, stateName) {
|
|
1039
|
+
function buildIfBranch(node, status, b, parentName, stateName, creatorsName, index) {
|
|
1033
1040
|
addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
|
|
1034
1041
|
if (node.children.length > 0) {
|
|
1035
|
-
b.append(`${
|
|
1042
|
+
b.append(`${creatorsName}[${index}] = (t_before) => {`);
|
|
1036
1043
|
buildFragment(node, status, b, parentName, "t_before");
|
|
1037
1044
|
status.fragmentStack.push({
|
|
1038
1045
|
fragment: node.fragment,
|
|
@@ -1042,7 +1049,8 @@ function buildIfBranch(node, status, b, parentName, stateName) {
|
|
|
1042
1049
|
status.fragmentStack.pop();
|
|
1043
1050
|
buildAddFragment(node, status, b, parentName, "t_before");
|
|
1044
1051
|
b.append("};");
|
|
1045
|
-
} else b.append(`${
|
|
1052
|
+
} else b.append(`${creatorsName}[${index}] = (_) => {};`);
|
|
1053
|
+
b.append(`${stateName}.index = ${index};`);
|
|
1046
1054
|
b.append("}");
|
|
1047
1055
|
}
|
|
1048
1056
|
|
|
@@ -1097,6 +1105,7 @@ function buildSwitchNode(node, status, b) {
|
|
|
1097
1105
|
const parentName = node.parentName;
|
|
1098
1106
|
const rangeName = nextVarName("switch_range", status);
|
|
1099
1107
|
const stateName = "$" + nextVarName("switch_state", status);
|
|
1108
|
+
const creatorsName = nextVarName("switch_creators", status);
|
|
1100
1109
|
const branches = node.children.filter((n) => isControlNode(n));
|
|
1101
1110
|
if (branches.findIndex((n) => n.operation === "@default") === -1) branches.push({
|
|
1102
1111
|
type: "control",
|
|
@@ -1117,24 +1126,26 @@ function buildSwitchNode(node, status, b) {
|
|
|
1117
1126
|
b.append(`
|
|
1118
1127
|
/* @switch */
|
|
1119
1128
|
const ${rangeName} = t_range();
|
|
1120
|
-
let ${stateName} = $watch({
|
|
1129
|
+
let ${stateName} = $watch({ index: -1 });
|
|
1130
|
+
let ${creatorsName}: ((t_before: Node | null) => void)[] = [];`);
|
|
1121
1131
|
b.append(`
|
|
1122
1132
|
$run(function runSwitch() {`);
|
|
1133
|
+
let index = 0;
|
|
1123
1134
|
addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
|
|
1124
|
-
for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, stateName);
|
|
1135
|
+
for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, stateName, creatorsName, index++);
|
|
1125
1136
|
b.append(`
|
|
1126
1137
|
}
|
|
1127
1138
|
});`);
|
|
1128
1139
|
b.append(`
|
|
1129
1140
|
t_run_control(${rangeName}, ${anchorName}, (t_before) => {
|
|
1130
|
-
t_run_branch(${rangeName}, () => ${stateName}.
|
|
1141
|
+
t_run_branch(${rangeName}, () => ${creatorsName}[${stateName}.index](t_before));
|
|
1131
1142
|
});`);
|
|
1132
1143
|
b.append("");
|
|
1133
1144
|
}
|
|
1134
|
-
function buildSwitchBranch(node, status, b, parentName, stateName) {
|
|
1145
|
+
function buildSwitchBranch(node, status, b, parentName, stateName, creatorsName, index) {
|
|
1135
1146
|
addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.range, status, b);
|
|
1136
1147
|
if (node.children.length > 0) {
|
|
1137
|
-
b.append(`${
|
|
1148
|
+
b.append(`${creatorsName}[${index}] = (t_before) => {`);
|
|
1138
1149
|
buildFragment(node, status, b, parentName, "t_before");
|
|
1139
1150
|
status.fragmentStack.push({
|
|
1140
1151
|
fragment: node.fragment,
|
|
@@ -1144,7 +1155,8 @@ function buildSwitchBranch(node, status, b, parentName, stateName) {
|
|
|
1144
1155
|
status.fragmentStack.pop();
|
|
1145
1156
|
buildAddFragment(node, status, b, parentName, "t_before");
|
|
1146
1157
|
b.append("};");
|
|
1147
|
-
} else b.append(`${
|
|
1158
|
+
} else b.append(`${creatorsName}[${index}] = (_) => {};`);
|
|
1159
|
+
b.append(`${stateName}.index = ${index};`);
|
|
1148
1160
|
b.append(`
|
|
1149
1161
|
break;
|
|
1150
1162
|
}`);
|
|
@@ -1713,7 +1725,7 @@ function buildTemplate(template, map, imports, b, options) {
|
|
|
1713
1725
|
if (/\$run\b/.test(script)) imports.add("$run");
|
|
1714
1726
|
if (/\$mount\b/.test(script)) imports.add("$mount");
|
|
1715
1727
|
if (/\$unwrap\b/.test(script)) imports.add("$unwrap");
|
|
1716
|
-
|
|
1728
|
+
imports.add("$peek");
|
|
1717
1729
|
if (/\$batch\b/.test(script)) imports.add("$batch");
|
|
1718
1730
|
let currentIndex = 0;
|
|
1719
1731
|
let current = template.components[0];
|
|
@@ -1729,6 +1741,7 @@ function buildTemplate(template, map, imports, b, options) {
|
|
|
1729
1741
|
} else if (chunk.script === ") /* @return_type */ {") b.append("): void {");
|
|
1730
1742
|
else if (chunk.script === "/* @start */") {
|
|
1731
1743
|
if (current.contextProps?.length) b.append(`$context = Object.assign({}, $context);`);
|
|
1744
|
+
b.append("$peek(() => { /**/");
|
|
1732
1745
|
b.append("");
|
|
1733
1746
|
} else if (chunk.script === "/* @render */") {
|
|
1734
1747
|
if (current.markup) {
|
|
@@ -1749,6 +1762,7 @@ function buildTemplate(template, map, imports, b, options) {
|
|
|
1749
1762
|
status.inHead = false;
|
|
1750
1763
|
}
|
|
1751
1764
|
} else if (chunk.script === "/* @style */") {} else if (chunk.script === "/* @end */") {
|
|
1765
|
+
b.append("/**/ });");
|
|
1752
1766
|
currentIndex += 1;
|
|
1753
1767
|
current = template.components[currentIndex];
|
|
1754
1768
|
} else {
|
|
@@ -2426,17 +2440,14 @@ function build(template, options) {
|
|
|
2426
2440
|
function buildType(template, options) {
|
|
2427
2441
|
let b = new Builder();
|
|
2428
2442
|
b.append(`import { type SlotRender } from "${options?.renderFolder || "@torpor/view"}";`);
|
|
2429
|
-
for (let component of template.components) {
|
|
2443
|
+
for (let component of template.components) if (component.exported) {
|
|
2430
2444
|
b.append("");
|
|
2445
|
+
if (component.propsType) {
|
|
2446
|
+
b.append(component.propsType);
|
|
2447
|
+
b.append("");
|
|
2448
|
+
}
|
|
2431
2449
|
b.append(`
|
|
2432
|
-
|
|
2433
|
-
* Mounts or hydrates the component into the supplied parent node.
|
|
2434
|
-
* @param $parent -- The parent node.
|
|
2435
|
-
* @param $anchor -- The node to mount the component before.
|
|
2436
|
-
* @param $props -- The values that have been passed into the component as properties.
|
|
2437
|
-
* @param $context -- Values that have been passed into the component from its ancestors.
|
|
2438
|
-
* @param $slots -- Functions for rendering children into slot nodes within the component.
|
|
2439
|
-
*/
|
|
2450
|
+
${component.documentation ?? ""}
|
|
2440
2451
|
${component.default ? "declare" : "export declare"} function ${component.name}(
|
|
2441
2452
|
$parent: ParentNode,
|
|
2442
2453
|
$anchor: Node | null,
|
|
@@ -2456,6 +2467,45 @@ function isSpaceNode(node) {
|
|
|
2456
2467
|
return isTextNode(node) && isSpace(node.content);
|
|
2457
2468
|
}
|
|
2458
2469
|
|
|
2470
|
+
//#endregion
|
|
2471
|
+
//#region src/compile/parse/utils/accept.ts
|
|
2472
|
+
/**
|
|
2473
|
+
* Checks whether the source at the current parse position matches the supplied
|
|
2474
|
+
* string
|
|
2475
|
+
*
|
|
2476
|
+
* @param value The string to check
|
|
2477
|
+
* @param status The parse status
|
|
2478
|
+
* @param advance (Optional) If true, advances the parse position past the
|
|
2479
|
+
* checked string (defaults to true)
|
|
2480
|
+
*
|
|
2481
|
+
* @returns True if the supplied string was found at the current parse position
|
|
2482
|
+
*/
|
|
2483
|
+
function accept(value, status, advance = true) {
|
|
2484
|
+
if (status.source.substring(status.i, status.i + value.length) == value) {
|
|
2485
|
+
status.i += advance ? value.length : 0;
|
|
2486
|
+
return true;
|
|
2487
|
+
}
|
|
2488
|
+
return false;
|
|
2489
|
+
}
|
|
2490
|
+
|
|
2491
|
+
//#endregion
|
|
2492
|
+
//#region src/compile/parse/parseInlineScript.ts
|
|
2493
|
+
function parseInlineScript(status) {
|
|
2494
|
+
const start = status.i;
|
|
2495
|
+
let braceCount = 0;
|
|
2496
|
+
while (status.i < status.source.length) if (accept("{", status)) braceCount += 1;
|
|
2497
|
+
else if (accept("}", status)) if (braceCount > 0) braceCount -= 1;
|
|
2498
|
+
else return status.source.substring(start, status.i - 1);
|
|
2499
|
+
else if (accept("//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
|
|
2500
|
+
else if (accept("/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
|
|
2501
|
+
else if (accept("\"", status) || accept("'", status)) {
|
|
2502
|
+
const char = status.source[status.i - 1];
|
|
2503
|
+
status.i = endOfString(char, status.source, status.i - 1) + 1;
|
|
2504
|
+
} else if (accept("`", status)) status.i = endOfTemplateString(status.source, status.i - 1) + 1;
|
|
2505
|
+
else status.i += 1;
|
|
2506
|
+
return "";
|
|
2507
|
+
}
|
|
2508
|
+
|
|
2459
2509
|
//#endregion
|
|
2460
2510
|
//#region src/compile/utils/trimStart.ts
|
|
2461
2511
|
/**
|
|
@@ -2520,45 +2570,6 @@ function isFullyReactive(text) {
|
|
|
2520
2570
|
return text.trim().startsWith("{") && text.trim().endsWith("}");
|
|
2521
2571
|
}
|
|
2522
2572
|
|
|
2523
|
-
//#endregion
|
|
2524
|
-
//#region src/compile/parse/utils/accept.ts
|
|
2525
|
-
/**
|
|
2526
|
-
* Checks whether the source at the current parse position matches the supplied
|
|
2527
|
-
* string
|
|
2528
|
-
*
|
|
2529
|
-
* @param value The string to check
|
|
2530
|
-
* @param status The parse status
|
|
2531
|
-
* @param advance (Optional) If true, advances the parse position past the
|
|
2532
|
-
* checked string (defaults to true)
|
|
2533
|
-
*
|
|
2534
|
-
* @returns True if the supplied string was found at the current parse position
|
|
2535
|
-
*/
|
|
2536
|
-
function accept(value, status, advance = true) {
|
|
2537
|
-
if (status.source.substring(status.i, status.i + value.length) == value) {
|
|
2538
|
-
status.i += advance ? value.length : 0;
|
|
2539
|
-
return true;
|
|
2540
|
-
}
|
|
2541
|
-
return false;
|
|
2542
|
-
}
|
|
2543
|
-
|
|
2544
|
-
//#endregion
|
|
2545
|
-
//#region src/compile/parse/parseInlineScript.ts
|
|
2546
|
-
function parseInlineScript(status) {
|
|
2547
|
-
const start = status.i;
|
|
2548
|
-
let braceCount = 0;
|
|
2549
|
-
while (status.i < status.source.length) if (accept("{", status)) braceCount += 1;
|
|
2550
|
-
else if (accept("}", status)) if (braceCount > 0) braceCount -= 1;
|
|
2551
|
-
else return status.source.substring(start, status.i - 1);
|
|
2552
|
-
else if (accept("//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
|
|
2553
|
-
else if (accept("/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
|
|
2554
|
-
else if (accept("\"", status) || accept("'", status)) {
|
|
2555
|
-
const char = status.source[status.i - 1];
|
|
2556
|
-
status.i = endOfString(char, status.source, status.i - 1) + 1;
|
|
2557
|
-
} else if (accept("`", status)) status.i = endOfTemplateString(status.source, status.i - 1) + 1;
|
|
2558
|
-
else status.i += 1;
|
|
2559
|
-
return "";
|
|
2560
|
-
}
|
|
2561
|
-
|
|
2562
2573
|
//#endregion
|
|
2563
2574
|
//#region src/compile/parse/utils/isAlphaNumericChar.ts
|
|
2564
2575
|
/**
|
|
@@ -2652,6 +2663,7 @@ function parseTagAttributes(status) {
|
|
|
2652
2663
|
if (accept("@//", status)) status.i = status.source.indexOf("\n", status.i) + 1;
|
|
2653
2664
|
else if (accept("@/*", status)) status.i = status.source.indexOf("*/", status.i) + 2;
|
|
2654
2665
|
else if (accept("/>", status, false) || accept(">", status, false)) break;
|
|
2666
|
+
else if (accept("<", status, false) || accept("@", status, false) || accept("}", status, false)) break;
|
|
2655
2667
|
else {
|
|
2656
2668
|
const attribute = parseAttribute(status);
|
|
2657
2669
|
attributes.push(attribute);
|
|
@@ -3401,11 +3413,14 @@ function parseCode(source) {
|
|
|
3401
3413
|
return {
|
|
3402
3414
|
start: c.start,
|
|
3403
3415
|
name: c.name,
|
|
3416
|
+
exported: c.exported,
|
|
3404
3417
|
default: c.default,
|
|
3418
|
+
documentation: c.documentation,
|
|
3405
3419
|
params: c.params,
|
|
3406
3420
|
markup: c.markup,
|
|
3407
3421
|
head: c.head,
|
|
3408
3422
|
style: c.style,
|
|
3423
|
+
propsType: c.propsType,
|
|
3409
3424
|
props: c.props,
|
|
3410
3425
|
contextProps: c.contextProps,
|
|
3411
3426
|
slotProps: c.slotProps,
|
|
@@ -3416,17 +3431,31 @@ function parseCode(source) {
|
|
|
3416
3431
|
};
|
|
3417
3432
|
}
|
|
3418
3433
|
function parseComponentStart(status) {
|
|
3419
|
-
let source = status.source.substring(
|
|
3434
|
+
let source = status.source.substring(status.marker, status.i);
|
|
3435
|
+
let exported = /export\s+(default\s+)*(function\s+|const\s+)*$/.test(source);
|
|
3420
3436
|
let def = /export\s+default\s+(function\s+|const\s+)*$/.test(source);
|
|
3421
3437
|
let isConst = /const\s+$/.test(source);
|
|
3422
3438
|
let isAnon = /export default\s+$/.test(source);
|
|
3423
|
-
status.
|
|
3424
|
-
|
|
3425
|
-
|
|
3439
|
+
let componentStart = status.i;
|
|
3440
|
+
let name = consumeAlphaNumeric(status);
|
|
3441
|
+
const current = {
|
|
3442
|
+
start: componentStart,
|
|
3443
|
+
name,
|
|
3444
|
+
exported,
|
|
3426
3445
|
default: def
|
|
3427
|
-
}
|
|
3428
|
-
|
|
3429
|
-
|
|
3446
|
+
};
|
|
3447
|
+
status.components.push(current);
|
|
3448
|
+
let presource = source.substring(0, status.i).trimEnd();
|
|
3449
|
+
let lastNewline = presource.lastIndexOf("\n");
|
|
3450
|
+
if (lastNewline !== -1) {
|
|
3451
|
+
presource = presource.substring(0, lastNewline).trimEnd();
|
|
3452
|
+
if (presource.endsWith("*/")) {
|
|
3453
|
+
for (let i = presource.length; i >= 0; i--) if (presource.substring(i, i + 3) === "/**") {
|
|
3454
|
+
current.documentation = presource.substring(i);
|
|
3455
|
+
break;
|
|
3456
|
+
}
|
|
3457
|
+
}
|
|
3458
|
+
}
|
|
3430
3459
|
let start = -1;
|
|
3431
3460
|
let end = -1;
|
|
3432
3461
|
let level = 0;
|
|
@@ -3458,6 +3487,29 @@ function parseComponentStart(status) {
|
|
|
3458
3487
|
}
|
|
3459
3488
|
});
|
|
3460
3489
|
current.params = status.source.substring(start, end).trim() || void 0;
|
|
3490
|
+
const paramsMatch = current.params?.match(/\$props:\s*([$A-Za-z0-9]+)/);
|
|
3491
|
+
if (paramsMatch) {
|
|
3492
|
+
let propsTypeName = paramsMatch[1];
|
|
3493
|
+
let propsTypeStart = status.source.search(/* @__PURE__ */ new RegExp(`interface\\s+${propsTypeName}`));
|
|
3494
|
+
if (propsTypeStart === -1) propsTypeStart = status.source.search(/* @__PURE__ */ new RegExp(`type\\s+${propsTypeName}`));
|
|
3495
|
+
if (propsTypeStart !== -1) {
|
|
3496
|
+
let bracesStart = status.source.indexOf("{", propsTypeStart);
|
|
3497
|
+
if (bracesStart !== -1) {
|
|
3498
|
+
const status2 = {
|
|
3499
|
+
source: status.source,
|
|
3500
|
+
i: bracesStart + 1,
|
|
3501
|
+
marker: 0,
|
|
3502
|
+
level: 0,
|
|
3503
|
+
imports: [],
|
|
3504
|
+
script: [],
|
|
3505
|
+
components: [],
|
|
3506
|
+
errors: []
|
|
3507
|
+
};
|
|
3508
|
+
const propsType = parseInlineScript(status2);
|
|
3509
|
+
if (propsType) current.propsType = `${status.source.substring(propsTypeStart, bracesStart)}{${propsType}}`;
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3512
|
+
}
|
|
3461
3513
|
status.marker = end;
|
|
3462
3514
|
status.i = status.marker;
|
|
3463
3515
|
accept(")", status);
|