website-htmx-rustelo-code/scripts/build/dev-quiet.nu

74 lines
2.4 KiB
Text
Raw Normal View History

2026-07-10 03:44:13 +01:00
#!/usr/bin/env nu
# Development Server with Filtered Output
# Nushell version of dev-quiet.sh
# Starts development server while filtering out noisy Leptos reactive warnings
def main [] {
print $"(ansi blue)🚀 Starting development server (filtered output)...(ansi reset)"
# Build CSS first
print $"(ansi blue)🎨 Building CSS...(ansi reset)"
try {
pnpm run build:all
} catch {
print $"(ansi red)❌ CSS build failed(ansi reset)"
exit 1
}
# Clean up existing servers
print $"(ansi blue)🔄 Cleaning up existing servers...(ansi reset)"
cleanup_ports
# Warning patterns to filter out (following project's anti-hardcoding principles)
let warning_patterns = [
"you access a reactive_graph",
"outside a reactive tracking context",
"Here's how to fix it:",
"❌ NO",
"✅ YES",
"If this is inside a `view!` macro",
"If it's in the body of a component",
"If you're *trying* to access the value",
"make sure you are passing a function",
"try wrapping this access in a closure",
"use \\.get_untracked\\(\\) or \\.with_untracked\\(\\)"
]
print $"(ansi blue)📡 Starting Leptos server with filtered output...(ansi reset)"
print $"(ansi yellow)💡 Filtering out reactive graph warnings for cleaner output(ansi reset)"
# Start server with output filtering
# Using Nushell's structured approach to handle output filtering
try {
bash -c "cargo leptos serve 2>&1"
| lines
| where {|line|
not ($warning_patterns | any {|pattern| ($line | str contains $pattern)})
}
| each {|line| print $line}
} catch {
print $"(ansi red)❌ Failed to start development server(ansi reset)"
exit 1
}
}
# Helper function to cleanup ports
def cleanup_ports [] {
# Kill processes on common development ports
let ports = [3030, 3031]
for port in $ports {
try {
let pids = (lsof -ti:$port | lines)
if not ($pids | is-empty) {
$pids | each {|pid|
kill -9 ($pid | into int)
print $"(ansi yellow)🔄 Killed process ($pid) on port ($port)(ansi reset)"
}
}
} catch {
# Ignore errors when no processes are found
}
}
}