feat: allow manual Node.js path configuration (#1577)
Add ability to manually configure Node.js path for users who have Node.js installed but not in their system PATH. Features: - Browse and select custom Node.js installation folder - Visual status indicator showing Node.js version or "Not found" - Reset to system default PATH option - Manual configuration option in setup banner - Real-time Node.js status checking closes #1050 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds manual Node.js path configuration so the app works even when Node isn’t on PATH, fulfilling #1050. Users can browse to their install, reset to default, and see real-time status in Settings and during setup. - New Features - Settings: NodePathSelector to browse a Node.js folder, show version/“Not found” status, and reset to system PATH (persists customNodePath). - Setup banner: manual config flow with a folder picker if Node is already installed. - IPC: select-node-folder, set-node-path, get-node-path; reloads env and prepends custom path to PATH. - Real-time Node.js status check with visual indicator (CheckCircle on valid). - E2E tests for browse, reset, and valid-status display. <!-- End of auto-generated description by cubic. -->
This commit is contained in:
committed by
GitHub
parent
cc435d1ed4
commit
b1095b7951
@@ -68,6 +68,7 @@ import type {
|
||||
CloneRepoParams,
|
||||
SupabaseBranch,
|
||||
SetSupabaseAppProjectParams,
|
||||
SelectNodeFolderResult,
|
||||
} from "./ipc_types";
|
||||
import type { Template } from "../shared/templates";
|
||||
import type {
|
||||
@@ -1180,6 +1181,16 @@ export class IpcClient {
|
||||
return this.ipcRenderer.invoke("select-app-folder");
|
||||
}
|
||||
|
||||
// Add these methods to IpcClient class
|
||||
|
||||
public async selectNodeFolder(): Promise<SelectNodeFolderResult> {
|
||||
return this.ipcRenderer.invoke("select-node-folder");
|
||||
}
|
||||
|
||||
public async getNodePath(): Promise<string | null> {
|
||||
return this.ipcRenderer.invoke("get-node-path");
|
||||
}
|
||||
|
||||
public async checkAiRules(params: {
|
||||
path: string;
|
||||
}): Promise<{ exists: boolean }> {
|
||||
|
||||
Reference in New Issue
Block a user