#////////// PROJECT FILE SEPARATION LINE ////////// CODE AFTER THIS LINE ARE FROM: /CarrotStash.ps1 # ------------------------------------------ # SYMBOLS # ------------------------------------------ $Symbol_Pending = [char]0x23FA $Symbol_Working = [char]0x23F3 $Symbol_Completed = [char]0x2705 # ------------------------------------------ # STEP FUNCTION # ------------------------------------------ function Run-Step { param ( [string]$Label, [scriptblock]$Action ) Write-Host "$Symbol_Working $Label..." try { & $Action Write-Host "$Symbol_Completed $Label`n" } catch { Write-Error "❌ Failed: $Label" exit 1 } } # ------------------------------------------ # CONFIG # ------------------------------------------ $ProjectRoot = $PSScriptRoot $NodePath = Join-Path $ProjectRoot "NodeJS\node.exe" $NpmCliJs = Join-Path $ProjectRoot "NodeJS\node_modules\npm\bin\npm-cli.js" $NodeDir = Split-Path $NodePath $PackageJsonPath = Join-Path $ProjectRoot "package.json" $ViteConfigPath = Join-Path $ProjectRoot "vite.config.mjs" # ------------------------------------------ # VALIDATION # ------------------------------------------ if (-not (Test-Path $NodePath)) { Write-Error "❌ NodeJS not found in: $NodePath" exit 1 } if (-not (Test-Path $NpmCliJs)) { Write-Error "❌ npm-cli.js not found in: $NpmCliJs" exit 1 } if (-not (Test-Path $PackageJsonPath)) { Write-Error "❌ package.json not found in project root." exit 1 } if (-not (Test-Path $ViteConfigPath)) { Write-Error "❌ vite.config.mjs not found in project root." exit 1 } # ------------------------------------------ # PATCH ENVIRONMENT PATH # ------------------------------------------ $env:PATH = "$NodeDir;$env:PATH" # ------------------------------------------ # FUNCTION: Run-Npm # ------------------------------------------ function Run-Npm { param ( [Parameter(ValueFromRemainingArguments = $true)] [string[]]$Args ) Write-Host "📦 Running: $NodePath $NpmCliJs $($Args -join ' ')" -ForegroundColor DarkGray & $NodePath $NpmCliJs @Args } # ------------------------------------------ # EXECUTION # ------------------------------------------ Run-Step "Installing project dependencies from package.json" { Run-Npm @("install") } # ------------------------------------------ # Launch App # ------------------------------------------ Write-Host "`n🎉 CarrotStash setup complete!" -ForegroundColor Green & $NodePath $NpmCliJs exec vite