@torpor/view 0.0.14 → 0.1.0
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 +16 -0
- package/README.md +5 -5
- package/dist/compile.cjs +69 -31
- package/dist/compile.cjs.map +1 -1
- package/dist/compile.js +69 -31
- package/dist/compile.js.map +1 -1
- package/dist/index.cjs +19 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -4
- package/dist/index.d.ts +2 -4
- package/dist/index.js +19 -11
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/package.json +4 -4
- package/scripts/copyToRepl.ts +1 -1
- package/src/compile/build/client/buildCode.ts +2 -11
- package/src/compile/build/client/buildComponentNode.ts +21 -5
- package/src/compile/build/client/buildElementNode.ts +14 -8
- package/src/compile/build/client/buildFragment.ts +37 -1
- package/src/compile/build/client/buildHtmlNode.ts +1 -0
- package/src/compile/build/client/buildSlotNode.ts +4 -1
- package/src/compile/build/server/buildServerComponentNode.ts +4 -1
- package/src/compile/build/server/buildServerElementNode.ts +5 -2
- package/src/compile/build/server/buildServerSlotNode.ts +4 -1
- package/src/compile/parse/parseCode.ts +20 -12
- package/src/index.ts +0 -2
- package/src/render/$unwrap.ts +1 -1
- package/src/render/addFragment.ts +7 -2
- package/src/render/nodeNext.ts +14 -7
- package/src/render/runControlBranch.ts +11 -1
- package/src/render/runList.ts +8 -2
- package/test/attributes/attributes.test.ts +3 -0
- package/test/attributes/components/Attributes.torp +6 -1
- package/test/attributes/components/output/Attributes-client.ts +6 -2
- package/test/attributes/components/output/Attributes-server.ts +2 -1
- package/test/attributes/components/temp/{Attributes-client-c4812cb9307eac6ff44f90f3358a1811b52c7390.ts → Attributes-client-7b8f7b9996208e8d2d0a12d4f4a40a73df63d9d8.ts} +6 -2
- package/test/attributes/components/temp/{Attributes-server-a7ebed503f2169f7c900d4613531082f1023b086.ts → Attributes-server-a1289434a5a801be1d63bfc85b621579e06452f0.ts} +2 -1
- package/test/await/await.test.ts +2 -4
- package/test/await/components/output/Await-client.ts +4 -4
- package/test/await/components/temp/{Await-client-6ce3ac610ce79ae3b474c81964b715e6f3d966da.ts → Await-client-a7bf000bf2b59a3d5251a0fa18ec79890a52a547.ts} +4 -4
- package/test/bench/bench.bench.ts +5 -7
- package/test/bench/components/output/Bench-client.ts +208 -0
- package/test/bench/components/output/Bench-server.ts +130 -0
- package/test/bench/components/temp/{Bench-client-5fee290225ae4771aa847360006123671e8f17f1.ts → Bench-client-fca94b485c6263778751927240ab3ca4048d7a10.ts} +10 -10
- package/test/bind/bind.test.ts +3 -5
- package/test/bind/component.test.ts +45 -0
- package/test/bind/components/BindComponent.torp +29 -0
- package/test/bind/components/BindText.torp +2 -2
- package/test/bind/components/output/BindComponent-client.ts +87 -0
- package/test/bind/components/output/BindComponent-server.ts +52 -0
- package/test/bind/components/output/BindText-client.ts +3 -3
- package/test/bind/components/temp/BindComponent-client-a645474748485a878871c062ad69e6bcf35e6550.ts +87 -0
- package/test/bind/components/temp/BindComponent-server-c557e7aa944517ab87415b8bb35b41b0034254e7.ts +52 -0
- package/test/bind/components/temp/{BindText-client-9e2f542e13bcbf9a44eab2c5a79d67ddb128f928.ts → BindText-client-d5f7d721df55020ef337f660e5d278eb80fcc330.ts} +3 -3
- package/test/build-server/build-server-element-node.test.ts +1 -1
- package/test/buildOutputFiles.ts +6 -3
- package/test/child-component/components/output/ParentChild-client.ts +3 -2
- package/test/child-component/components/output/ParentChild-server.ts +1 -0
- package/test/child-component/components/temp/{ParentChild-client-8f00a3a31a7f666990765fc4755b62a39c855226.ts → ParentChild-client-eaefb0cbfd251badab3c57ae2037d973f785a1b8.ts} +3 -2
- package/test/child-component/components/temp/{ParentChild-server-9c791bdfa521c3f6549857a34a6cd414fa3c9e80.ts → ParentChild-server-8f2fc556f87867e6e3393e2e9e6d696cda107b69.ts} +1 -0
- package/test/class/components/output/Class-client.ts +7 -6
- package/test/class/components/output/Class-server.ts +1 -0
- package/test/class/components/temp/{Class-client-8bf02b6a0c85674d341617dfb755b285b1af89cf.ts → Class-client-dc885e1e391f38973bd9ea25b7475b07f7c23960.ts} +7 -6
- package/test/class/components/temp/{Class-server-dd71b6ec62f40231917a912819520fc614f017ae.ts → Class-server-d1a2463ba432e10c6f68bd59d1d31949c5a2044f.ts} +1 -0
- package/test/component/components/output/Component-client.ts +3 -2
- package/test/component/components/output/Component-server.ts +1 -1
- package/test/component/components/output/Header-client.ts +2 -1
- package/test/component/components/output/Header-server.ts +1 -0
- package/test/component/components/temp/{Component-client-32cd481f03e25d10b8e93947a2ff8773135b4975.ts → Component-client-a2fb6f30fc340bac909b64cb4f5ac68cde376de3.ts} +3 -2
- package/test/component/components/temp/{Component-server-11542f55405218c0b471172cac1d6a1a4edb5c09.ts → Component-server-40be12cd528ccf768f1ad40ef2a435ad2b2a2d71.ts} +1 -1
- package/test/component/components/temp/{Header-client-ac151eea86e3f6b058fab101661e13ae73864968.ts → Header-client-75cb4aa868295ac168c16ba7b275fbb5ab9256f9.ts} +2 -1
- package/test/component/components/temp/{Header-server-4f10f2332f3ca7a097517cfb938ab1e6f31d68ac.ts → Header-server-f73307874bec34a95dcd152d7f83a3ad13a0f4ac.ts} +1 -0
- package/test/effects/components/output/For-client.ts +3 -2
- package/test/effects/components/output/For-server.ts +1 -0
- package/test/effects/components/output/If-client.ts +4 -3
- package/test/effects/components/output/If-server.ts +1 -0
- package/test/effects/components/output/NestedIf-client.ts +4 -3
- package/test/effects/components/output/NestedIf-server.ts +1 -0
- package/test/effects/components/temp/{For-client-887b1758cf5c80f64708a47369e0e6ce44ffa20f.ts → For-client-d8d4e4424ec3238fe9f79cc907d673612b63bcdf.ts} +3 -2
- package/test/effects/components/temp/{For-server-8e1c7393b102c870167dd086cbee45c47e614dfa.ts → For-server-1f853c161bea31a1a5b11b00d7a021b70c778066.ts} +1 -0
- package/test/effects/components/temp/{If-client-bfc548ef699b91f33e604f066211ce6269cc9506.ts → If-client-bb06988422395321bf298a75bf5563c6f750f776.ts} +4 -3
- package/test/effects/components/temp/{If-server-8c213b1a82cd0a5c2bccfeb90ba8bf01fa4672d2.ts → If-server-97e3cbe059306fc607985dcd1b187df3a278d979.ts} +1 -0
- package/test/effects/components/temp/{NestedIf-client-9e9155398f240345af392194063adc6e42dda80c.ts → NestedIf-client-dc880c1ec92e716ec730dfa0bac0e3d9265bdf27.ts} +4 -3
- package/test/effects/components/temp/{NestedIf-server-5f11d075c2ff224ee5feb7f61aa41aea8af44313.ts → NestedIf-server-9f199a33bae5d5fe34920d6a419937537a2b18dc.ts} +1 -0
- package/test/events/components/output/Increment-client.ts +2 -2
- package/test/events/components/temp/{Increment-client-35c275d15e94e4aa7625af12c45210521995ead5.ts → Increment-client-41bd7bc91aac8c7a9bf73527c8f7ba1794b09ab3.ts} +2 -2
- package/test/events/events.test.ts +2 -3
- package/test/for/components/ForEscape.torp +1 -1
- package/test/for/components/output/For-client.ts +1 -1
- package/test/for/components/output/ForEscape-client.ts +4 -4
- package/test/for/components/output/ForIn-client.ts +3 -2
- package/test/for/components/output/ForIn-server.ts +1 -0
- package/test/for/components/output/ForOf-client.ts +3 -2
- package/test/for/components/output/ForOf-server.ts +1 -0
- package/test/for/components/temp/{For-client-1f6e475347f0474375f12a7c24b0b293e3942aa7.ts → For-client-0be5994e98c07a3455cd8a18a2b1b8ef3605aba6.ts} +1 -1
- package/test/for/components/temp/{ForEscape-client-80d3078cf15001f2ab37b0ec63cfce7267a8a166.ts → ForEscape-client-a973a145e28b32ca55fe3dca53d885fcf5e11c37.ts} +4 -4
- package/test/for/components/temp/{ForIn-client-c8a1ec4473d05475e11928d06d081ab671fd9f28.ts → ForIn-client-5cc25a98e10826e8477fe6f931d5d2bbd0b13c9f.ts} +3 -2
- package/test/for/components/temp/{ForIn-server-d92cf8d3c3e300b562308607caca2c9cab3cb30b.ts → ForIn-server-d68e82c048f7e0f1525f74724b91e5cd01cdc6a6.ts} +1 -0
- package/test/for/components/temp/{ForOf-client-069881d4d9e52bc091e7213154924f3e1626174a.ts → ForOf-client-70b0d59ff72f1cffe2e0ac8523dd7ccdca4ffe39.ts} +3 -2
- package/test/for/components/temp/{ForOf-server-3bfbb33bd589890d272bbcbea53d9598f53bfd70.ts → ForOf-server-ac08d98dd249a3e64a366b8488450e6ce0d18def.ts} +1 -0
- package/test/for/for-escape.test.ts +2 -3
- package/test/function/components/output/Function-client.ts +1 -1
- package/test/function/components/temp/{Function-client-b8931e51769f3f1e84d1491c6474f8551acf9f8d.ts → Function-client-b3ff029a821d47e1a2249a52dfb681f4b2e96232.ts} +1 -1
- package/test/function/function.test.ts +1 -2
- package/test/html/components/output/Html-client.ts +3 -1
- package/test/html/components/output/Html-server.ts +1 -0
- package/test/html/components/temp/{Html-client-5fc745d9980a42a70dcb3473b0fd976e69882c9e.ts → Html-client-766ba4a63f28f929ca16cd7d1640fe92f9b30792.ts} +3 -1
- package/test/html/components/temp/{Html-server-437ea390e58947213ede74755a012cdacceeebe7.ts → Html-server-0a41da8b81bf833f331f3becdbac14be7ddc6c8c.ts} +1 -0
- package/test/if/components/output/IfAfterIf-client.ts +5 -4
- package/test/if/components/output/IfAfterIf-server.ts +1 -0
- package/test/if/components/output/IfElse-client.ts +4 -3
- package/test/if/components/output/IfElse-server.ts +1 -0
- package/test/if/components/output/IfElseIf-client.ts +5 -4
- package/test/if/components/output/IfElseIf-server.ts +1 -0
- package/test/if/components/output/IfNested-client.ts +5 -4
- package/test/if/components/output/IfNested-server.ts +1 -0
- package/test/if/components/temp/{IfAfterIf-client-a489daa5b961ed9da71418fdbb1665b6ba39f1b7.ts → IfAfterIf-client-49b6b8c42b0a351561f9f5f22c2ae2e844bf3b58.ts} +5 -4
- package/test/if/components/temp/{IfAfterIf-server-243736e666e7d77d3f8553a1682734555f5ffd22.ts → IfAfterIf-server-eb67cf1fcf6711882266219940a47bd4a66497f3.ts} +1 -0
- package/test/if/components/temp/{IfElse-client-4c71642f412d5dd2f45729eafb7e974781dbe011.ts → IfElse-client-e236d4a2e99262ff09675bc519c07e2826c0d70b.ts} +4 -3
- package/test/if/components/temp/{IfElse-server-64c055182b327504ee71d1f1d44cfccf48be350d.ts → IfElse-server-c077e0e30f4d2adec41ab779198362d21542d055.ts} +1 -0
- package/test/if/components/temp/{IfElseIf-client-98d50d6f40c2385c4ef4fc02329f9d2e182c76c4.ts → IfElseIf-client-b92106861f0c7ec3d09e3a42bb93d8f5bd4e3bdf.ts} +5 -4
- package/test/if/components/temp/{IfElseIf-server-79788b13af905175f50bfa8658f2ff2af73db232.ts → IfElseIf-server-67991eee3f56dc687cda600511c31396438e0a77.ts} +1 -0
- package/test/{build-server/components/temp/IfNested-client-979db97eea5b4595550b9b46f297f3fbc31796d2.ts → if/components/temp/IfNested-client-f563ac1b16a2280e457557281c4925ed447a9cd7.ts} +5 -4
- package/test/{build-server/components/temp/IfNested-server-3c4e4b6f2162c0906cef685830219b9ea9ee985c.ts → if/components/temp/IfNested-server-0a2a9643324ab73b02b310cad61ba87dab146ab2.ts} +1 -0
- package/test/mount/components/Mount.torp +1 -1
- package/test/mount/components/output/Mount-client.ts +0 -2
- package/test/mount/components/output/Mount-server.ts +1 -1
- package/test/mount/components/temp/{Mount-client-49d8d6475336b5749fe8a17be847fd2b6cda5ccc.ts → Mount-client-36dbc95a61345a1b7dcf07e6b0c998af2afca691.ts} +0 -2
- package/test/mount/components/temp/{Mount-server-e3d689cf52a4477da9aa00e2c7604110710db991.ts → Mount-server-8bef1924a731f3db63cb827be3938fec685e53af.ts} +1 -1
- package/test/on-mount/components/output/OnMount-client.ts +0 -2
- package/test/on-mount/components/temp/{OnMount-client-b2dfd41a0aaeafb3b7af14793a03e0fc3bc43aaa.ts → OnMount-client-21708a638d2939ee8b017f5dc819cee4748bde87.ts} +0 -2
- package/test/party/13-emit-to-parent.test.ts +2 -3
- package/test/party/16-context.test.ts +1 -2
- package/test/party/17-input-text.test.ts +2 -3
- package/test/party/18-input-checkbox.test.ts +1 -2
- package/test/party/19-input-radio.test.ts +2 -3
- package/test/party/20-input-select.test.ts +3 -4
- package/test/party/7-event-click.test.ts +1 -3
- package/test/party/9-conditional.test.ts +2 -4
- package/test/party/components/ColorSelect.torp +1 -1
- package/test/party/components/InputFocused.torp +1 -1
- package/test/party/components/InputHello.torp +1 -1
- package/test/party/components/IsAvailable.torp +1 -1
- package/test/party/components/PickPill.torp +2 -2
- package/test/party/components/output/AnswerButton-client.ts +3 -2
- package/test/party/components/output/AnswerButton-server.ts +1 -0
- package/test/party/components/output/AnswerButtonApp-client.ts +4 -4
- package/test/party/components/output/AnswerButtonApp-server.ts +1 -1
- package/test/party/components/output/ColorSelect-client.ts +1 -1
- package/test/party/components/output/Colors-client.ts +1 -1
- package/test/party/components/output/Counter-client.ts +1 -1
- package/test/party/components/output/FunnyButton-client.ts +1 -1
- package/test/party/components/output/FunnyButtonApp-client.ts +2 -2
- package/test/party/components/output/FunnyButtonApp-server.ts +1 -1
- package/test/party/components/output/InputFocused-client.ts +0 -2
- package/test/party/components/output/InputFocused-server.ts +1 -1
- package/test/party/components/output/InputHello-client.ts +1 -1
- package/test/party/components/output/IsAvailable-client.ts +1 -1
- package/test/party/components/output/PickPill-client.ts +2 -2
- package/test/party/components/output/TrafficLight-client.ts +6 -6
- package/test/party/components/output/UserProfile-client.ts +5 -4
- package/test/party/components/output/UserProfile-server.ts +1 -0
- package/test/party/components/output/UserProfileApp-client.ts +3 -2
- package/test/party/components/output/UserProfileApp-server.ts +1 -1
- package/test/party/components/output/UserProfileContext-client.ts +3 -3
- package/test/party/components/output/UserProfileContextApp-client.ts +2 -2
- package/test/party/components/output/UserProfileContextApp-server.ts +1 -1
- package/test/party/components/temp/{AnswerButton-client-243454cd7bf84c648f244b3587e60d01a0401039.ts → AnswerButton-client-c3dc7edbfff2db1ea111086002147d771ee12193.ts} +3 -2
- package/test/party/components/temp/{AnswerButton-server-938e46c1d2510ea37454854ef527e4aa64eb8e52.ts → AnswerButton-server-427442fa8cfc0a18817c2d37f9cb5cbcb3a88a05.ts} +1 -0
- package/test/party/components/temp/{AnswerButtonApp-client-34311c2e7412807867fb6267af31a341f092bf31.ts → AnswerButtonApp-client-3e0b63a6bbc1dee3e6cb715c0297cc2ce58d3e4e.ts} +4 -4
- package/test/party/components/temp/{AnswerButtonApp-server-3f5071775abea24ee8830830072c6fe465fc4e56.ts → AnswerButtonApp-server-bbc8bb739d2060ccda77ce406aa6b15d8f90b91c.ts} +1 -1
- package/test/party/components/temp/{ColorSelect-client-f9fb9fa09f4729da3226d5aaf30e84cd3cd705b5.ts → ColorSelect-client-5ffa6f9d77de967993088c9a01b9f976f3333176.ts} +1 -1
- package/test/party/components/temp/{Colors-client-f124162d1dd8f0c3d37bf96c8e5f18599ae3a682.ts → Colors-client-3dafffc5c2a72037f4419fc45d08963872a29958.ts} +1 -1
- package/test/party/components/temp/{Counter-client-c349710110b4afbf9593f20cfc40c162ed836079.ts → Counter-client-4d553521fcfc6c9a4e05dce89e70b2ecf8785c4e.ts} +1 -1
- package/test/party/components/temp/{FunnyButton-client-2e6bec8259065b5bc9ae16d1ca93dd1bd0c56b7c.ts → FunnyButton-client-45f2c5dd56f2cdb80102193a978df6b0cec822ab.ts} +1 -1
- package/test/party/components/temp/{FunnyButtonApp-client-4ed0ebf5be13ddb62d9942bac7f4b8a885ec6c50.ts → FunnyButtonApp-client-ac7101af922dc6ba472b75a428f340caca6be74a.ts} +2 -2
- package/test/party/components/temp/{FunnyButtonApp-server-9748c9096848e643c91237c46ea09d23f1b3fa7c.ts → FunnyButtonApp-server-f1a98a946e0bb9d1bb76b01e26d6ead8f55d32bb.ts} +1 -1
- package/test/party/components/temp/{InputFocused-client-a543f82c8db205fb3e33c62de699cff43c668a68.ts → InputFocused-client-11a9cb08909b26945bbc2451ab4c1dac09e6d113.ts} +0 -2
- package/test/party/components/temp/{InputFocused-server-222f2fa7029d1cd6941a3777293a9b2d37b7295e.ts → InputFocused-server-82be1a63c80d1dd3f06efaf0bef349d58cf1d9af.ts} +1 -1
- package/test/party/components/temp/{InputHello-client-9953499de5778bb1d8aac7691129210a6098db07.ts → InputHello-client-b0453caeae0d43dc1878039c6b49318d12624d48.ts} +1 -1
- package/test/party/components/temp/{IsAvailable-client-929ed6c872e72b6c5243b882c6a9a0d13f6a7c47.ts → IsAvailable-client-d789346a68b26fd3f5d9f7aebc4c7bd181c47cad.ts} +1 -1
- package/test/party/components/temp/{PickPill-client-f9a50a75ce63ec2ee3ac34e378e20602b93629f7.ts → PickPill-client-b47d371ae5f41d87c96b3cdeed0a8bc06fbfa9c7.ts} +2 -2
- package/test/party/components/temp/{TrafficLight-client-81dd9bd9f3332533e01f6c9b271c15e5f76e1fdb.ts → TrafficLight-client-549f9fe3418c113fb240cfa17e09c42e1e7f346a.ts} +6 -6
- package/test/party/components/temp/{UserProfile-client-938bcef20a2555de22aca939022a32742ac5e729.ts → UserProfile-client-2c13aac1ad915e51dc557f9af765669e636c0fea.ts} +5 -4
- package/test/party/components/temp/{UserProfile-server-9df5c59b8797fa67c479bc76450104d45e6076f9.ts → UserProfile-server-cc1162a4297f6163bfb86e7a8aeea08e8c0625c6.ts} +1 -0
- package/test/party/components/temp/{UserProfileApp-client-af27173415d65647cab0f30a9a4967cef0307e25.ts → UserProfileApp-client-2be7a11319cca4d7bfa0f3d2205c441d7e203780.ts} +3 -2
- package/test/party/components/temp/{UserProfileApp-server-6a7dbe68ee8041785cef50fb15a9e5ba475e120f.ts → UserProfileApp-server-ab9ff66f787f775aa8571314fee8bcbef85489ef.ts} +1 -1
- package/test/party/components/temp/{UserProfileContext-client-93211cdba795b8baf926f60f5b17da90701743b3.ts → UserProfileContext-client-2aa36f436a5f20614d77f48963ec5ca442eebd90.ts} +3 -3
- package/test/party/components/temp/{UserProfileContextApp-client-7ea7d90a35894408757aef3e935d3a8badf93aea.ts → UserProfileContextApp-client-5099052fdcd8fb4c368c45090390947424a4e9b0.ts} +2 -2
- package/test/party/components/temp/{UserProfileContextApp-server-90290c770529d7211eabf29e7d0fe868aa856b52.ts → UserProfileContextApp-server-6be8dab2ed4f8911f26bef137e7dea164f2b894d.ts} +1 -1
- package/test/props/components/Reactive.torp +18 -0
- package/test/props/components/output/Reactive-client.ts +70 -0
- package/test/props/components/output/Reactive-server.ts +40 -0
- package/test/props/components/temp/Reactive-client-e3e5f6ee2f22c46337c6ab1df2f241133c7e2646.ts +70 -0
- package/test/props/components/temp/Reactive-server-0914d91287a1bc6d32d7cc56d086624762dbfc04.ts +40 -0
- package/test/props/reactive.test.ts +51 -0
- package/test/replace/components/output/Replace-client.ts +3 -2
- package/test/replace/components/output/Replace-server.ts +1 -0
- package/test/replace/components/temp/{Replace-client-ea4ddc73c71181fb6ef3c6f5bf61b0b9e017f00a.ts → Replace-client-3fdab63871fa4bb792317caefd3539b1888325b1.ts} +3 -2
- package/test/replace/components/temp/{Replace-server-30eb1ad796516fa4d310798a9c8a6811ec13cbd9.ts → Replace-server-857aca7a58deffc3a1c95ab9d31628b4051ca203.ts} +1 -0
- package/test/slots/components/output/Article-client.ts +2 -2
- package/test/slots/components/output/Basic-client.ts +1 -1
- package/test/slots/components/output/Basic-server.ts +1 -1
- package/test/slots/components/output/Let-client.ts +4 -3
- package/test/slots/components/output/Let-server.ts +2 -1
- package/test/slots/components/output/List-client.ts +1 -1
- package/test/slots/components/output/List-server.ts +1 -0
- package/test/slots/components/output/Named-client.ts +2 -2
- package/test/slots/components/output/Named-server.ts +1 -1
- package/test/slots/components/output/Unused-client.ts +1 -1
- package/test/slots/components/output/Unused-server.ts +1 -1
- package/test/slots/components/temp/{Article-client-741f94eab2e96655f4c9d69ccd7d9c7cc998f4ce.ts → Article-client-80848d6cadd8abac61865d14ddd35685844797e0.ts} +2 -2
- package/test/slots/components/temp/{Basic-client-c82bc3c5e10f2f2c1869347435262c8f3039e32f.ts → Basic-client-97b18686412869e8c814fd4542dfe826b1f7669f.ts} +1 -1
- package/test/slots/components/temp/{Basic-server-21fb4f8caa3bbcae219aaef388af8c26c46fa5ce.ts → Basic-server-248392e2cd147b537cd44e9a5a71885ef20102e4.ts} +1 -1
- package/test/slots/components/temp/{Let-client-c54696fd1b5b859a693744722957fa960f72fad6.ts → Let-client-be69c1f5aa32faf16239050d7836db46cfdcba2f.ts} +4 -3
- package/test/slots/components/temp/{Let-server-4d78ffc8741fa737f2cd915b36c0e6ec88a9146f.ts → Let-server-c3293219ed27aec61a6af36d451ddf6609c40027.ts} +2 -1
- package/test/slots/components/temp/{List-client-0659d999cfb48b865fe5b8aaaf2a4ddac3a8a8b6.ts → List-client-a829b33214de829de689a72d2e8703b2266ad7a4.ts} +1 -1
- package/test/slots/components/temp/{List-server-4b76485a259d054187edad8aa691d80ac918ad86.ts → List-server-06503834c9bfae9b8c2b61742568b020a3de961c.ts} +1 -0
- package/test/slots/components/temp/{Named-client-0626b2f0911f77f5edcfda82f9751bcbc37b7641.ts → Named-client-2d9d88f5fdf74d81c3ed1d769a476f4ac36c8b99.ts} +2 -2
- package/test/slots/components/temp/{Named-server-e802f901223d697c7fd0a1a234ce1930af1b4b3f.ts → Named-server-65a7bbf038111475c8f07dccb34040ab8c1392c4.ts} +1 -1
- package/test/slots/components/temp/{Unused-client-aa05465731e0d00e18189498f49c94f991e76f10.ts → Unused-client-1b16491cb800bbbbd871d9fbf5966c7275244019.ts} +1 -1
- package/test/slots/components/temp/{Unused-server-00b92d14665a565f0042b1f56231f28bc38a1252.ts → Unused-server-e5d1e85116bebc7e1a2882cb8f2c9ae7975a1de7.ts} +1 -1
- package/test/special-component/components/output/Component-client.ts +5 -4
- package/test/special-component/components/output/Component-server.ts +3 -2
- package/test/special-component/components/temp/{Component-client-3cc84b23def8830b8ef441bde0f03b3e9718196a.ts → Component-client-22f7e1d0955fb3d90939e956a1f0f77118c259b6.ts} +5 -4
- package/test/special-component/components/temp/{Component-server-5dc597784ea1fe45ac2cfb21305cf2187a3868e8.ts → Component-server-ce596cd84dc11f67c9f0588060a5b672eddf9715.ts} +3 -2
- package/test/special-element/components/output/Element-client.ts +2 -1
- package/test/special-element/components/output/Element-server.ts +1 -0
- package/test/special-element/components/temp/{Element-client-0ab8992a8e914c7e190cddac790585fef9be1c9f.ts → Element-client-21c92c04579b1d29e8813265a10897d069aad5c5.ts} +2 -1
- package/test/special-element/components/temp/{Element-server-ddb0170df4a3f369577ca7e9768e5fe799f14dfb.ts → Element-server-4bed9653529f39e72754126147fe8618f328853a.ts} +1 -0
- package/test/special-self/components/output/Self-client.ts +3 -2
- package/test/special-self/components/output/Self-server.ts +1 -0
- package/test/special-self/components/temp/{Self-client-3982f174954034643c4d17cfc66d7f10bf1d4df6.ts → Self-client-911c67194be1fdd997537310bcafe712161e8251.ts} +3 -2
- package/test/special-self/components/temp/{Self-server-97ffbdaae47f4463034e1d318a8073d078ff138f.ts → Self-server-49ba9be1f6255dd4daf490c640f5222a85960218.ts} +1 -0
- package/test/style/components/output/Style-client.ts +2 -1
- package/test/style/components/output/Style-server.ts +1 -0
- package/test/style/components/temp/{Style-client-085517e82bdd015c86f4c2577447c6a2791cf656.ts → Style-client-cbfac1e255c33a867ccbd5f9d1484a855d91a2d7.ts} +2 -1
- package/test/style/components/temp/{Style-server-b2615163fbafdcb2a5d4155120edf2f66ef3bba6.ts → Style-server-763d82ee2296be3f7620814aed950b505329c04c.ts} +1 -0
- package/test/svg/components/output/Shape-client.ts +4 -3
- package/test/svg/components/output/Shape-server.ts +1 -0
- package/test/svg/components/temp/{Shape-client-ea698ed1b7d0c3615adff35fa4956f22840f5fda.ts → Shape-client-cb98b36ab2a0d9f06b484a3c988fb43c3a71a4a0.ts} +4 -3
- package/test/svg/components/temp/{Shape-server-eb32049cfb7c058b2c4079c5f86ef00651ff6d69.ts → Shape-server-500d7fe4556026234ce5379b8e90595ddd094edc.ts} +1 -0
- package/test/switch/components/output/Switch-client.ts +5 -4
- package/test/switch/components/output/Switch-server.ts +1 -0
- package/test/switch/components/temp/{Switch-client-4c4adac7308795807517e66bc268a38f87df6bda.ts → Switch-client-9980de45e3346b79525c445edec7cbc3b375e8a4.ts} +5 -4
- package/test/switch/components/temp/{Switch-server-21fcac2b02c6071136bb0dc394babd27e454d2c9.ts → Switch-server-1c5690726f28008bb565966af69b6e4e019dea82.ts} +1 -0
- package/test/text/components/output/Text-client.ts +3 -2
- package/test/text/components/output/Text-server.ts +1 -0
- package/test/text/components/temp/{Text-client-9840092be1b4552ddce6e5efc2f1b395637a0a3d.ts → Text-client-63f1d3bf9b3bd145c7ce7058716640e27144055e.ts} +3 -2
- package/test/text/components/temp/{Text-server-6774aa9d4ccce941224ba0a8fb1d3e42eb31807e.ts → Text-server-9d3dd6f51e893e63c1999ceafce19ca1697d76ea.ts} +1 -0
- package/test/watch-array/components/output/Array-client.ts +4 -3
- package/test/watch-array/components/output/Array-server.ts +1 -0
- package/test/watch-array/components/output/ArrayEntries-client.ts +4 -3
- package/test/watch-array/components/output/ArrayEntries-server.ts +1 -0
- package/test/watch-array/components/output/ArrayIndexes-client.ts +4 -3
- package/test/watch-array/components/output/ArrayIndexes-server.ts +1 -0
- package/test/watch-array/components/output/ArrayUnkeyed-client.ts +4 -3
- package/test/watch-array/components/output/ArrayUnkeyed-server.ts +1 -0
- package/test/watch-array/components/temp/{Array-client-b29a42f88c2a2f37b3a86bdb9535e20a487887e1.ts → Array-client-ffd82188a45877d74053c82fb3616e4aed0fc2ad.ts} +4 -3
- package/test/watch-array/components/temp/{Array-server-ced54fc7e63196f9c24c2e55b27bfe6cf7821dcb.ts → Array-server-3715e815af887e8487b214e7de324850fe99e312.ts} +1 -0
- package/test/watch-array/components/temp/{ArrayEntries-client-6289890758b1f6b462a74417e0b9e2e46d946ccd.ts → ArrayEntries-client-b6e982660628576061dbb44539e970b9549bdcfa.ts} +4 -3
- package/test/watch-array/components/temp/{ArrayEntries-server-0429a18ffbe39afe87612889a3010c3fcaa601dc.ts → ArrayEntries-server-85cbe80fbb7f6885287825e2cc0dfc1cb9835d79.ts} +1 -0
- package/test/watch-array/components/temp/{ArrayIndexes-client-fe4b1c49f442b3e5411f331c52ae6c5ab38f2b2d.ts → ArrayIndexes-client-39337aa43bd8c10a53db836c3be233d48dd39b91.ts} +4 -3
- package/test/watch-array/components/temp/{ArrayIndexes-server-20c01f10832f035b007f85a423778934d51a703a.ts → ArrayIndexes-server-ec623c724af0c7212675d61ea68e9dee87f96caa.ts} +1 -0
- package/test/watch-array/components/temp/{ArrayUnkeyed-client-3fffe2ce749ee84e0730130bfd730d432e3c4e12.ts → ArrayUnkeyed-client-7606f9a6a221c8cf6a8b51e4895d10a3d7bccc11.ts} +4 -3
- package/test/watch-array/components/temp/{ArrayUnkeyed-server-0ab804a5e7bf5b47594d85adab79735e89a3939d.ts → ArrayUnkeyed-server-db21cd576a4c70973abe10f6c8ef5cecb3ead86c.ts} +1 -0
- package/test/watch-object/components/output/Watched-client.ts +2 -1
- package/test/watch-object/components/output/Watched-server.ts +1 -0
- package/test/watch-object/components/temp/{Watched-client-cb293038cd0a39043d05639c624a17d512419c25.ts → Watched-client-bbffbf2cede1a5c071b770670eb39c0f0be725af.ts} +2 -1
- package/test/watch-object/components/temp/{Watched-server-4884585cf4f50493a70631909f2230153531208e.ts → Watched-server-0252addaf92fb0f0c1e2937f42918a1c9f31d196.ts} +1 -0
- package/src/render/flushMountEffects.ts +0 -8
- package/test/if/components/temp/IfNested-client-979db97eea5b4595550b9b46f297f3fbc31796d2.ts +0 -90
- package/test/if/components/temp/IfNested-server-3c4e4b6f2162c0906cef685830219b9ea9ee985c.ts +0 -30
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @torpor/view
|
|
2
2
|
|
|
3
|
+
## 0.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 995513a: Break: specify binding with `&` rather than `:`
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 98602ec: Fix: don't re-run the entire loop/control statement
|
|
12
|
+
- a49d307: Fix: allow const destructuring in components
|
|
13
|
+
- c9a9cf8: Fix: flush :onmounts when adding a fragment
|
|
14
|
+
- cbd07ca: Feat: bind component props with `&name`
|
|
15
|
+
- f53b184: Feat: watch $props
|
|
16
|
+
- 215db17: Fix: allow $unwrapping a null object
|
|
17
|
+
- 95e866b: Feat: shortcut syntax for object properties
|
|
18
|
+
|
|
3
19
|
## 0.0.14
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -38,8 +38,8 @@ npm install torpor
|
|
|
38
38
|
- $mount to create an effect that runs after a component has been mounted
|
|
39
39
|
- $unwrap to get the target object from the proxy
|
|
40
40
|
- Automatic scoping of styles to component
|
|
41
|
-
- Two-way binding with
|
|
42
|
-
- Element binding to a script variable with
|
|
41
|
+
- Two-way binding with &value, &checked, etc
|
|
42
|
+
- Element binding to a script variable with &ref={...}
|
|
43
43
|
- Element in and out transitions using the Web Animations API
|
|
44
44
|
- Run an effect when an element is added to the DOM with :onmount={(el) => ...}
|
|
45
45
|
- Special tags (mostly not yet implemented...)
|
|
@@ -162,10 +162,10 @@ export default function Component($props: { name: string }) {
|
|
|
162
162
|
</div>
|
|
163
163
|
|
|
164
164
|
<h2>Two way binding</h2>
|
|
165
|
-
<p>Two way binding can be accomplished with
|
|
165
|
+
<p>Two way binding can be accomplished with &value (or &checked etc).</p>
|
|
166
166
|
<div class="demo">
|
|
167
167
|
<p>
|
|
168
|
-
Count: <input type="number"
|
|
168
|
+
Count: <input type="number" &value={$state.count} />
|
|
169
169
|
</p>
|
|
170
170
|
</div>
|
|
171
171
|
|
|
@@ -211,7 +211,7 @@ export default function Component($props: { name: string }) {
|
|
|
211
211
|
function TaskItem() {
|
|
212
212
|
@render {
|
|
213
213
|
<li :class={{ done: $props.task.done }}>
|
|
214
|
-
<input type="checkbox"
|
|
214
|
+
<input type="checkbox" &checked={$props.task.done} />
|
|
215
215
|
{$props.task.text}
|
|
216
216
|
</li>
|
|
217
217
|
}
|
package/dist/compile.cjs
CHANGED
|
@@ -845,6 +845,29 @@ function getFragmentVarPath(fragment, status, name, path, varPaths) {
|
|
|
845
845
|
varPaths.set(varPath, name);
|
|
846
846
|
varPaths.set(name, name);
|
|
847
847
|
}
|
|
848
|
+
while (varPath.includes("t_next(t_next(")) {
|
|
849
|
+
const match = varPath.match(/(t_next\(){2,}/)[0];
|
|
850
|
+
const count = match.length / "t_next(".length;
|
|
851
|
+
const pos = varPath.indexOf("t_next(t_next(");
|
|
852
|
+
const head = varPath.substring(0, pos);
|
|
853
|
+
let level = 0;
|
|
854
|
+
let end = 0;
|
|
855
|
+
for (let i = pos + match.length; i < varPath.length; i++) {
|
|
856
|
+
if (varPath[i] === "(") {
|
|
857
|
+
level++;
|
|
858
|
+
} else if (varPath[i] === ")") {
|
|
859
|
+
if (level === 0) {
|
|
860
|
+
end = i;
|
|
861
|
+
break;
|
|
862
|
+
} else {
|
|
863
|
+
level--;
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
const tail = varPath.substring(end + count);
|
|
868
|
+
const param = varPath.substring(pos + match.length, end);
|
|
869
|
+
varPath = `${head}t_next(${param}, ${count})${tail}`;
|
|
870
|
+
}
|
|
848
871
|
return varPath;
|
|
849
872
|
}
|
|
850
873
|
function getFragmentVarPathPart(path, varPath, status, root = false) {
|
|
@@ -894,12 +917,19 @@ function buildComponentNode(node, status, b, root = false) {
|
|
|
894
917
|
const componentHasProps = node.attributes.length || root;
|
|
895
918
|
const propsName = componentHasProps ? nextVarName("props", status) : "undefined";
|
|
896
919
|
if (componentHasProps) {
|
|
897
|
-
|
|
920
|
+
status.imports.add("$watch");
|
|
921
|
+
b.append(`const ${propsName}: any = $watch({});`);
|
|
898
922
|
for (let { name, value } of node.attributes) {
|
|
899
923
|
if (name === "self" && node.tagName === ":component") {
|
|
900
924
|
} else if (name.startsWith("{") && name.endsWith("}")) {
|
|
901
925
|
name = name.substring(1, name.length - 1);
|
|
902
|
-
|
|
926
|
+
const propName = name.split(".").at(-1);
|
|
927
|
+
buildRun("setProp", `${propsName}["${propName}"] = ${name};`, status, b);
|
|
928
|
+
} else if (name.startsWith("&") && value != null && isFullyReactive(value)) {
|
|
929
|
+
name = name.substring(1);
|
|
930
|
+
value = value.substring(1, value.length - 1);
|
|
931
|
+
buildRun("setProp", `${propsName}["${name}"] = ${value};`, status, b);
|
|
932
|
+
buildRun("setBinding", `${value} = ${propsName}["${name}"];`, status, b);
|
|
903
933
|
} else if (value != null) {
|
|
904
934
|
let fullyReactive = isFullyReactive(value);
|
|
905
935
|
let partlyReactive = isReactive(value);
|
|
@@ -1179,6 +1209,7 @@ function buildHtmlNode(node, status, b) {
|
|
|
1179
1209
|
}
|
|
1180
1210
|
function buildHtmlBranch(node, status, b, parentName, rangeName) {
|
|
1181
1211
|
status.imports.add("t_run_branch");
|
|
1212
|
+
b.append(`${node.statement};`);
|
|
1182
1213
|
b.append(`t_run_branch(${rangeName}, -1, () => {`);
|
|
1183
1214
|
const templateName = nextVarName("template", status);
|
|
1184
1215
|
const fragmentName = `t_fragment_${node.fragment.number}`;
|
|
@@ -1499,7 +1530,8 @@ function buildHeadNode(node, status, b) {
|
|
|
1499
1530
|
for (let { name, value } of node.attributes) {
|
|
1500
1531
|
if (name.startsWith("{") && name.endsWith("}")) {
|
|
1501
1532
|
name = name.substring(1, name.length - 1);
|
|
1502
|
-
|
|
1533
|
+
const propName = name.split(".").at(-1);
|
|
1534
|
+
buildRun("setAttribute", `t_head_el.setAttribute("${propName}", ${name});`, status, b);
|
|
1503
1535
|
} else if (value != null && isReactive(value)) {
|
|
1504
1536
|
if (isFullyReactive(value)) {
|
|
1505
1537
|
value = value.substring(1, value.length - 1);
|
|
@@ -1522,18 +1554,19 @@ function buildElementAttributes(node, varName, status, b) {
|
|
|
1522
1554
|
if (name === "self" && node.tagName === ":element") {
|
|
1523
1555
|
} else if (name.startsWith("{") && name.endsWith("}")) {
|
|
1524
1556
|
name = name.substring(1, name.length - 1);
|
|
1525
|
-
|
|
1557
|
+
const propName = name.split(".").at(-1);
|
|
1558
|
+
buildRun("setAttribute", `${varName}.setAttribute("${propName}", ${name});`, status, b);
|
|
1526
1559
|
} else if (value != null && isReactive(value)) {
|
|
1527
1560
|
if (isFullyReactive(value)) {
|
|
1528
1561
|
value = value.substring(1, value.length - 1);
|
|
1529
1562
|
} else {
|
|
1530
1563
|
value = `\`${trimQuotes(value).replaceAll("{", "${")}\``;
|
|
1531
1564
|
}
|
|
1532
|
-
if (name === "
|
|
1565
|
+
if (name === "&ref") {
|
|
1533
1566
|
b.append(`${value} = ${varName};`);
|
|
1534
|
-
} else if (name === "
|
|
1567
|
+
} else if (name === "&group") {
|
|
1535
1568
|
buildBindGroupAttribute(node, varName, value, status, b);
|
|
1536
|
-
} else if (name === "
|
|
1569
|
+
} else if (name === "&value" || name === "&checked") {
|
|
1537
1570
|
buildBindAttribute(node, varName, name, value, status, b);
|
|
1538
1571
|
} else if (name === ":onmount") {
|
|
1539
1572
|
buildMount("elMount", `return (${trimEnd(value.trim(), ";")})(${varName});`, status, b);
|
|
@@ -1722,7 +1755,8 @@ function buildSlotNode(node, status, b) {
|
|
|
1722
1755
|
for (let { name, value } of slotAttributes) {
|
|
1723
1756
|
if (name.startsWith("{") && name.endsWith("}")) {
|
|
1724
1757
|
name = name.substring(1, name.length - 1);
|
|
1725
|
-
|
|
1758
|
+
const propName = name.split(".").at(-1);
|
|
1759
|
+
buildRun("setProp", `${propsName}["${propName}"] = ${name};`, status, b);
|
|
1726
1760
|
} else if (value != null) {
|
|
1727
1761
|
let fullyReactive = isFullyReactive(value);
|
|
1728
1762
|
let partlyReactive = isReactive(value);
|
|
@@ -1915,7 +1949,6 @@ var importsMap = {
|
|
|
1915
1949
|
$unwrap: 'import { $unwrap } from "${folder}";',
|
|
1916
1950
|
$run: 'import { $run } from "${folder}";',
|
|
1917
1951
|
$mount: 'import { $mount } from "${folder}";',
|
|
1918
|
-
t_flush: 'import { t_flush } from "${folder}";',
|
|
1919
1952
|
t_range: 'import { t_range } from "${folder}";',
|
|
1920
1953
|
t_push_range: 'import { t_push_range } from "${folder}";',
|
|
1921
1954
|
t_pop_range: 'import { t_pop_range } from "${folder}";',
|
|
@@ -1982,7 +2015,8 @@ function buildTemplate(template, imports, b) {
|
|
|
1982
2015
|
} else if (script.substring(i, i + "/* @start */".length) === "/* @start */") {
|
|
1983
2016
|
b.append(script.substring(marker, i));
|
|
1984
2017
|
if (current.props?.length) {
|
|
1985
|
-
|
|
2018
|
+
imports.add("$watch");
|
|
2019
|
+
b.append(`$props ??= $watch({});`);
|
|
1986
2020
|
}
|
|
1987
2021
|
if (current.contextProps?.length) {
|
|
1988
2022
|
b.append(`$context = Object.assign({}, $context);`);
|
|
@@ -2015,11 +2049,6 @@ function buildTemplate(template, imports, b) {
|
|
|
2015
2049
|
b.append(script.substring(marker, i));
|
|
2016
2050
|
currentIndex += 1;
|
|
2017
2051
|
current = template.components[currentIndex];
|
|
2018
|
-
if (imports.has("$mount")) {
|
|
2019
|
-
imports.add("t_flush");
|
|
2020
|
-
b.append("");
|
|
2021
|
-
b.append("t_flush();");
|
|
2022
|
-
}
|
|
2023
2052
|
marker = i + "/* @end */".length;
|
|
2024
2053
|
}
|
|
2025
2054
|
}
|
|
@@ -2071,7 +2100,8 @@ function buildServerComponentNode(node, status, b) {
|
|
|
2071
2100
|
for (let { name, value } of node.attributes) {
|
|
2072
2101
|
if (name.startsWith("{") && name.endsWith("}")) {
|
|
2073
2102
|
name = name.substring(1, name.length - 1);
|
|
2074
|
-
|
|
2103
|
+
const propName = name.split(".").at(-1);
|
|
2104
|
+
b.append(`${propsName}["${propName}"] = ${name};`);
|
|
2075
2105
|
} else if (value != null) {
|
|
2076
2106
|
let fullyReactive = isFullyReactive(value);
|
|
2077
2107
|
let partlyReactive = isReactive(value);
|
|
@@ -2435,11 +2465,12 @@ function buildElementAttributes2(node, status) {
|
|
|
2435
2465
|
);
|
|
2436
2466
|
} else if (name.startsWith("{") && name.endsWith("}")) {
|
|
2437
2467
|
name = name.substring(1, name.length - 1);
|
|
2468
|
+
const propName = name.split(".").at(-1);
|
|
2438
2469
|
status.imports.add("t_attr");
|
|
2439
|
-
attributes.push(`${
|
|
2470
|
+
attributes.push(`${propName}="\${t_attr(${name})}"`);
|
|
2440
2471
|
} else if (value != null && isFullyReactive(value)) {
|
|
2441
2472
|
value = value.substring(1, value.length - 1);
|
|
2442
|
-
if (name === "
|
|
2473
|
+
if (name === "&ref" || name === "&value" || name === "&checked" || name === "&group") {
|
|
2443
2474
|
let defaultValue = "";
|
|
2444
2475
|
let typeAttribute = node.attributes.find((a) => a.name === "type");
|
|
2445
2476
|
if (typeAttribute && typeAttribute.value) {
|
|
@@ -2519,7 +2550,8 @@ function buildServerSlotNode(node, status, b) {
|
|
|
2519
2550
|
for (let { name, value } of slotAttributes) {
|
|
2520
2551
|
if (name.startsWith("{") && name.endsWith("}")) {
|
|
2521
2552
|
name = name.substring(1, name.length - 1);
|
|
2522
|
-
|
|
2553
|
+
const propName = name.split(".").at(-1);
|
|
2554
|
+
b.append(`${propsName}["${propName}"] = ${name};`);
|
|
2523
2555
|
} else if (value != null) {
|
|
2524
2556
|
let fullyReactive = isFullyReactive(value);
|
|
2525
2557
|
let partlyReactive = isReactive(value);
|
|
@@ -3675,22 +3707,28 @@ function parseCode(source) {
|
|
|
3675
3707
|
parseComponentEnd(status);
|
|
3676
3708
|
}
|
|
3677
3709
|
} else if (accept("function", status)) {
|
|
3678
|
-
consumeSpace(status)
|
|
3679
|
-
|
|
3680
|
-
|
|
3710
|
+
if (consumeSpace(status)) {
|
|
3711
|
+
if (/[A-Z]/.test(source[status.i])) {
|
|
3712
|
+
parseComponentStart(status);
|
|
3713
|
+
} else {
|
|
3714
|
+
status.i--;
|
|
3715
|
+
}
|
|
3681
3716
|
}
|
|
3682
3717
|
} else if (accept("const", status)) {
|
|
3683
|
-
consumeSpace(status)
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
consumeSpace(status);
|
|
3688
|
-
if (accept("=", status)) {
|
|
3718
|
+
if (consumeSpace(status)) {
|
|
3719
|
+
if (/[A-Z]/.test(source[status.i])) {
|
|
3720
|
+
const start = status.i;
|
|
3721
|
+
consumeAlphaNumeric(status);
|
|
3689
3722
|
consumeSpace(status);
|
|
3690
|
-
if (accept("
|
|
3691
|
-
status
|
|
3692
|
-
|
|
3723
|
+
if (accept("=", status)) {
|
|
3724
|
+
consumeSpace(status);
|
|
3725
|
+
if (accept("(", status, false)) {
|
|
3726
|
+
status.i = start;
|
|
3727
|
+
parseComponentStart(status);
|
|
3728
|
+
}
|
|
3693
3729
|
}
|
|
3730
|
+
} else {
|
|
3731
|
+
status.i--;
|
|
3694
3732
|
}
|
|
3695
3733
|
}
|
|
3696
3734
|
} else if (accept("export", status)) {
|