Fork me on GitHub
#squint
<
2023-12-08
>
sher10:12:00

@borkdude I see that current vite-react example README explains steps to create a project almost from scratch. Would like to update the example utilizing vite's own create command, then adding Squint related packages, changes. https://github.com/squint-cljs/squint/pull/425

borkdude10:12:29

I'd like to keep it simple

borkdude10:12:51

I'm fine with the changes though

sher10:12:22

Will update README. I think that Vite users would like to 1) create the project scaffold with original vite create command 2) git commit 3) add squint updates and see how much has been changed.

borkdude10:12:19

I minified the https://squint-cljs.github.io/squint/?boilerplate=https%3A%2F%2Fgist.githubusercontent.com%2Fborkdude%2Fcf94b492d948f7f418aa81ba54f428ff%2Fraw%2F3e871513ab6f2462841f75fc99668f841f33dabb%2Faoc_ui.cljs&amp;repl=true&amp;src=OzsgSGVscGVyIGZ1bmN0aW9uczoKOzsgKGZldGNoLWlucHV0IHllYXIgZGF5KSAtIGdldCBBT0MgaW5wdXQKOzsgKGFwcGVuZCBzdHIpIC0gYXBwZW5kIHN0ciB0byBET00KOzsgKHNweSB4KSAtIGxvZyB4IHRvIGNvbnNvbGUgYW5kIHJldHVybiB4Cgo7OyBvcmlnaW5hbCBzb2x1dGlvbjoKOzsgaHR0cHM6Ly9naXRodWIuY29tL3J1c3NtYXRuZXkvYWR2ZW50LW9mLWNvZGUvYmxvYi9tYXN0ZXIvc3JjL18yMDIzL18wMy9jb3JlLmNsagoKKHJlcXVpcmUgJ1siaHR0cHM6Ly91bnBrZy5jb20vQGJsb29tYmVyZy9yZWNvcmQtdHVwbGUtcG9seWZpbGw%2FbW9kdWxlIiA6cmVmZXIgW1R1cGxlXV0pCgooZGVmIGlucHV0ICgtPj4gKGpzLWF3YWl0IChmZXRjaC1pbnB1dCAyMDIzIDMpKQogICAgICAgICAgICAgc3RyL3NwbGl0LWxpbmVzKSkKCihkZWYgdCBUdXBsZSkKCihkZWZuIGRpZ2l0PyBbeF0KICAoI3tcMSBcMiBcMyBcNCBcNSBcNiBcNyBcOCBcOSBcMH0geCkpCgooZGVmbiAtPmdyaWQKICAoW3Jhd10gKC0%2BZ3JpZCBuaWwgcmF3KSkKICAoW3ByZWQgcmF3XQogICAoLT4%2BIHJhdwogICAgICAgIChtYXAtaW5kZXhlZAogICAgICAgICAgKGZuIFt5IHJvd10KICAgICAgICAgICAgKC0%2BPiByb3cgKG1hcC1pbmRleGVkCiAgICAgICAgICAgICAgICAgICAgICAgKGZuIFt4IGNoYXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgcHJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAocHJlZCBjaGFyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsodCB4IHkpIGNoYXJdKQogICAgICAgICAgICAgICAgICAgICAgICAgICBbKHQgeCB5KSBjaGFyXSkpKQogICAgICAgICAgICAgICAgIChmaWx0ZXIgc2VxKQogICAgICAgICAgICAgICAgIChpbnRvIFtdKSkpKQogICAgICAgIChmaWx0ZXIgc2VxKQogICAgICAgIChpbnRvIFtdKQogICAgICAgIChhcHBseSBjb25jYXQpCiAgICAgICAgKGludG8gKG5ldyBqcy9NYXApKSkpKQoKKGRlZm4gcGFydD8gW2NoYXJdCiAgKG5vdCAob3IgKD0gXC4gY2hhcikgKGRpZ2l0PyBjaGFyKSkpKQoKKGRlZm4gLT5wYXJ0LWxvY3MgW3Jhd10KICAoLT5ncmlkIHBhcnQ%2FIHJhdykpCgooY29tbWVudAogICgtPnBhcnQtbG9jcyBpbnB1dCkKICAoLT5ncmlkIGlucHV0KQoKICAoLT4%2BICI0NS4uKi40IiAobWFwIChmbiBbY2hhcl0gKGRpZ2l0PyBjaGFyKSkpKSkKCihkZWZuIG5laWdoYm9ycyBbW3ggeV1dCiAgI3sodCB4IChpbmMgeSkpCiAgICAodCB4IChkZWMgeSkpCiAgICAodCAoaW5jIHgpIHkpCiAgICAodCAoZGVjIHgpIHkpCiAgICAodCAoaW5jIHgpIChpbmMgeSkpCiAgICAodCAoZGVjIHgpIChkZWMgeSkpCiAgICAodCAoZGVjIHgpIChpbmMgeSkpCiAgICAodCAoaW5jIHgpIChkZWMgeSkpfSkKCihkZWZuIHgtbnVtLW5laWdoYm9ycyBbZ3JpZCBbeCB5XV0KICAobGV0IFstPngtbmJycwogICAgICAgIChmbiBbLT54XQogICAgICAgICAgKGxvb3AgW25ldy1jb29yZCAodCAoLT54IHgpIHkpCiAgICAgICAgICAgICAgICAgbmJycyBbXV0KICAgICAgICAgICAgKGNvbmQKICAgICAgICAgICAgICAobmlsPyAoZ2V0IGdyaWQgbmV3LWNvb3JkKSkgbmJycwogICAgICAgICAgICAgIChkaWdpdD8gKGdldCBncmlkIG5ldy1jb29yZCkpCiAgICAgICAgICAgICAgKHJlY3VyICh0ICgtPiAoZmlyc3QgbmV3LWNvb3JkKSAtPngpIHkpIChjb25jYXQgbmJycyBbbmV3LWNvb3JkXSkpCiAgICAgICAgICAgICAgOmVsc2UgICAgICAgICAgICAgICAgICAgbmJycykpKQogICAgICAgIGxlZnQtbmJycyAgKC0%2BeC1uYnJzIGRlYykKICAgICAgICByaWdodC1uYnJzICgtPngtbmJycyBpbmMpXQogICAgKGNvbmNhdCAocmV2ZXJzZSBsZWZ0LW5icnMpIFsodCB4IHkpXSByaWdodC1uYnJzKSkpCgooY29tbWVudAogICh4LW51bS1uZWlnaGJvcnMgKC0%2BZ3JpZCBpbnB1dCkgKHQgMyAyKSkKICAoeC1udW0tbmVpZ2hib3JzICgtPmdyaWQgaW5wdXQpIFsyIDJdKQogICh4LW51bS1uZWlnaGJvcnMgKC0%2BZ3JpZCBpbnB1dCkgWzAgMF0pCiAgKQoKKGRlZm4gY29vcmQtPm51bWJlciBbZ3JpZCBjb29yZF0KICAobGV0IFtudW0tY29vcmRzICh4LW51bS1uZWlnaGJvcnMgZ3JpZCBjb29yZCldCiAgICBbKGZpcnN0IG51bS1jb29yZHMpCiAgICAgKC0%2BPiBudW0tY29vcmRzCiAgICAgICAgICAobWFwIGdyaWQpCiAgICAgICAgICAoYXBwbHkgc3RyKQogICAgICAgICAgKHBhcnNlLWxvbmcpKV0pKQoKKGNvbW1lbnQKICAoY29vcmQtPm51bWJlciAoLT5ncmlkIGlucHV0KSBbMiAyXSkKICAoY29vcmQtPm51bWJlciAoLT5ncmlkIGlucHV0KSBbMCAwXSkKICApCgoKKGRlZm4gcGFydC1udW1iZXJzCiAgKFtyYXddIChwYXJ0LW51bWJlcnMgbmlsIHJhdykpCiAgKFtvcHRzIHJhd10KICAgKGxldCBbZ3JpZCAgICAgICgtPmdyaWQgcmF3KQogICAgICAgICBwYXJ0LWxvY3MgKC0%2BcGFydC1sb2NzIHJhdyldCiAgICAgOzsgc3ltYm9scy0%2BbmVpZ2hib3ItZGlnaXRzCiAgICAgKGNvbmQtPj4gcGFydC1sb2NzCiAgICAgICB0cnVlCiAgICAgICAobWFwIChmbiBbW2Nvb3JkIHN5bV1dCiAgICAgICAgICAgICAgW3N5bQogICAgICAgICAgICAgICAobGV0IFtuYnJzIChuZWlnaGJvcnMgY29vcmQpXQogICAgICAgICAgICAgICAgICgtPj4gbmJycwogICAgICAgICAgICAgICAgICAgICAgKGZpbHRlciAoZm4gW25icl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IFtjaGFyIChnZXQgZ3JpZCBuYnIpXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpZ2l0PyBjaGFyKSkpKQogICAgICAgICAgICAgICAgICAgICAgKG1hcCAoZm4gW25icl0gW25iciAoZ2V0IGdyaWQgbmJyKV0pKSkpXSkpCgogICAgICAgKDpzeW1ib2wgb3B0cykgKGZpbHRlciAoZm4gW1tzeW0gX25icnNdXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgjeyg6c3ltYm9sIG9wdHMpfSBzeW0pKSkKCiAgICAgICB0cnVlCiAgICAgICAobWFwIChmbiBbW19zeW0gbmJyc11dCiAgICAgICAgICAgICAgKC0%2BPiBuYnJzCiAgICAgICAgICAgICAgICAgICAobWFwIChmbiBbW2Nvb3JkIF9kaWdpdF1dCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvb3JkLT5udW1iZXIgZ3JpZCBjb29yZCkpKQogICAgICAgICAgICAgICAgICAgKGludG8ge30pKSkpCgogICAgICAgKDpwYXJ0LWNvdW50IG9wdHMpCiAgICAgICAoZmlsdGVyIChmbiBbeHNdCiAgICAgICAgICAgICAgICAgKD0gKDpwYXJ0LWNvdW50IG9wdHMpIChjb3VudCB4cykpKSkpKSkpCgooY29tbWVudAogIDs7IHBhcnQgMQogICgtPj4KICAgIChwYXJ0LW51bWJlcnMgaW5wdXQpCiAgICAobWFwIHZhbHMpCiAgICAoYXBwbHkgY29uY2F0KQogICAgKHJlZHVjZSArKSkKCiAgOzsgcGFydCAyCiAgKC0%2BPgogICAgaW5wdXQKICAgIChwYXJ0LW51bWJlcnMKICAgICAgezpzeW1ib2wgICAgIFwqCiAgICAgICA6cGFydC1jb3VudCAyfSkKICAgIChtYXAgdmFscykKICAgIChtYXAgIyhhcHBseSAqICUpKQogICAgKHJlZHVjZSArKSkgIAogICk%3D with esbuild to a standalone .mjs file and it's 21k. Pretty good for an "app" with immutable collections :)

borkdude10:12:57

Here is the JS. You will need to run it with Node.js 18+

sher10:12:22

LTS Node is 20 though

borkdude10:12:27

Oh it seems to work with 20 as well

borkdude10:12:49

it even seems to work with 18+

borkdude10:12:09

I guess I should move my default node version to 20 then :)

🙌 2