74 lines
No EOL
2.4 KiB
Text
Executable file
74 lines
No EOL
2.4 KiB
Text
Executable file
#!/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
|
|
}
|
|
}
|
|
} |