From 58ee2c1f2ede34fcd16de6f372a97a6eb79bd7d8 Mon Sep 17 00:00:00 2001 From: aalej Date: Thu, 11 Jun 2026 00:40:16 +0800 Subject: [PATCH 1/3] add validation for the app directory prompt --- src/init/features/apphosting.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/init/features/apphosting.ts b/src/init/features/apphosting.ts index 32c8930ada4..c09a0fccd5c 100644 --- a/src/init/features/apphosting.ts +++ b/src/init/features/apphosting.ts @@ -113,6 +113,13 @@ export async function doSetup(setup: Setup, config: Config, options: Options): P backendConfig.rootDir = await input({ default: "/", message: "Specify your app's root directory relative to your firebase.json directory", + validate: async (input: string) => { + const absPath = path.join(process.cwd(), input); + if (!existsSync(absPath)) { + return `Directory ${absPath} does not exist. Please enter a valid directory.`; + } + return true; + }, }); upsertAppHostingConfig(backendConfig, config); From a2074700ddff6f2dcc737797ea6e1257949b05ef Mon Sep 17 00:00:00 2001 From: aalej Date: Thu, 11 Jun 2026 01:20:03 +0800 Subject: [PATCH 2/3] remove async --- src/init/features/apphosting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/init/features/apphosting.ts b/src/init/features/apphosting.ts index c09a0fccd5c..5907ec5c56a 100644 --- a/src/init/features/apphosting.ts +++ b/src/init/features/apphosting.ts @@ -113,7 +113,7 @@ export async function doSetup(setup: Setup, config: Config, options: Options): P backendConfig.rootDir = await input({ default: "/", message: "Specify your app's root directory relative to your firebase.json directory", - validate: async (input: string) => { + validate: (input: string) => { const absPath = path.join(process.cwd(), input); if (!existsSync(absPath)) { return `Directory ${absPath} does not exist. Please enter a valid directory.`; From 622cc1dc8618f4276b0c0f066a4b0c46edae302d Mon Sep 17 00:00:00 2001 From: aalej Date: Fri, 12 Jun 2026 19:01:46 +0800 Subject: [PATCH 3/3] switch process.cwd() to config.projectDir --- src/init/features/apphosting.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/init/features/apphosting.ts b/src/init/features/apphosting.ts index 5907ec5c56a..2577c7f644a 100644 --- a/src/init/features/apphosting.ts +++ b/src/init/features/apphosting.ts @@ -114,7 +114,7 @@ export async function doSetup(setup: Setup, config: Config, options: Options): P default: "/", message: "Specify your app's root directory relative to your firebase.json directory", validate: (input: string) => { - const absPath = path.join(process.cwd(), input); + const absPath = path.join(config.projectDir, input); if (!existsSync(absPath)) { return `Directory ${absPath} does not exist. Please enter a valid directory.`; } @@ -126,7 +126,7 @@ export async function doSetup(setup: Setup, config: Config, options: Options): P config.writeProjectFile("firebase.json", config.src); utils.logBullet("Writing default settings to " + clc.bold("apphosting.yaml") + "..."); - const absRootDir = path.join(process.cwd(), backendConfig.rootDir); + const absRootDir = path.join(config.projectDir, backendConfig.rootDir); if (!existsSync(absRootDir)) { throw new FirebaseError( `Failed to write apphosting.yaml file because app root directory ${absRootDir} does not exist. Please try again with a valid directory.`,