WIP: feat(webserver): Vendor and reimplement in leptos

This commit is contained in:
Tristan Daniël Maat 2025-11-24 03:29:18 +08:00
parent aeba7301b0
commit ab42f90974
Signed by: tlater
GPG key ID: 02E935006CF2E8E7
15 changed files with 3126 additions and 165 deletions

View file

@ -0,0 +1,78 @@
let tmpdir = mktemp -d webserver-update.XXXXXXXXXX
def update-npm [package: string] {
let metadata = http get $'https://registry.npmjs.org/($package)'
let version = $metadata.dist-tags.latest
let url = ($metadata.versions | get $version).dist.tarball
let tarball = ($tmpdir | path join "package.tgz")
http get $url | save -f $tarball
let hash = nix hash file $tarball
{
url: $url
version: $version
hash: $hash
}
}
def update-dependency [dependency_name: string] {
let replace_attribute_template = "
id: update-attribute
language: nix
utils:
is-attribute:
kind: string_fragment
inside:
kind: binding
stopBy: end
has:
field: attrpath
regex: '{attribute}'
rule:
matches: is-attribute
inside:
kind: binding
stopBy: end
has:
field: attrpath
regex: '{dependency_name}'
fix: '{replacement}'"
let template_data = (
$in | if ($in has url) {
[{attribute: url replacement: $in.url}]
} else { [] }
) ++ [
{attribute: version replacement: $in.version}
{attribute: hash replacement: $in.hash}
];
let ast_grep_rule = (
$template_data
| each { $in | insert dependency_name $dependency_name | format pattern $replace_attribute_template }
| str join "\n---\n"
)
ast-grep scan --update-all --inline-rules $ast_grep_rule package.nix
}
# Update bulma
let metadata = http get https://api.github.com/repos/jgthms/bulma/releases/latest
let bulma_prefetch = nix-prefetch-github --rev $metadata.tag_name --json jgthms bulma | from json
let bulma = $bulma_prefetch | select hash | insert version $metadata.name
let fontsource_scss = update-npm @fontsource-utils/scss
# let fontsource_arimo = update-npm @fontsource-variable/arimo
# let fontsource_nunito = update-npm @fontsource-variable/nunito
# print $bulma
print $fontsource_scss
# print $fontsource_arimo
# print $fontsource_nunito
$bulma | update-dependency bulma
$fontsource_scss | update-dependency fontsource-scss