From 0838879143b84fe0a316d47812d01d31818dc81b Mon Sep 17 00:00:00 2001 From: Daniel Young Lee Date: Wed, 29 Nov 2023 06:18:55 +0900 Subject: [PATCH] BREAKING: Ignore 'functions' directory in a Firebase project without a functions config in firebase.json Don't assume all directory named `functions` are functions directory. Instead, expect developers to explicitly set up a "functions" config in their firebase.json. --- .../fixtures/esm/firebase.json | 4 +++- .../fixtures/pnpm/firebase.json | 4 +++- .../fixtures/simple/firebase.json | 4 +++- src/config.ts | 20 ++++++++++--------- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/scripts/functions-discover-tests/fixtures/esm/firebase.json b/scripts/functions-discover-tests/fixtures/esm/firebase.json index 9e26dfeeb6e..93f83c8cfa7 100644 --- a/scripts/functions-discover-tests/fixtures/esm/firebase.json +++ b/scripts/functions-discover-tests/fixtures/esm/firebase.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "functions": {} +} diff --git a/scripts/functions-discover-tests/fixtures/pnpm/firebase.json b/scripts/functions-discover-tests/fixtures/pnpm/firebase.json index 9e26dfeeb6e..93f83c8cfa7 100644 --- a/scripts/functions-discover-tests/fixtures/pnpm/firebase.json +++ b/scripts/functions-discover-tests/fixtures/pnpm/firebase.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "functions": {} +} diff --git a/scripts/functions-discover-tests/fixtures/simple/firebase.json b/scripts/functions-discover-tests/fixtures/simple/firebase.json index 9e26dfeeb6e..93f83c8cfa7 100644 --- a/scripts/functions-discover-tests/fixtures/simple/firebase.json +++ b/scripts/functions-discover-tests/fixtures/simple/firebase.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "functions": {} +} diff --git a/src/config.ts b/src/config.ts index 9da92c32d28..3e514f61b23 100644 --- a/src/config.ts +++ b/src/config.ts @@ -76,15 +76,17 @@ export class Config { } }); - // Inject default functions config and source if missing. - if (this.projectDir && fsutils.dirExistsSync(this.path(Config.DEFAULT_FUNCTIONS_SOURCE))) { - if (Array.isArray(this.get("functions"))) { - if (!this.get("functions.[0].source")) { - this.set("functions.[0].source", Config.DEFAULT_FUNCTIONS_SOURCE); - } - } else { - if (!this.get("functions.source")) { - this.set("functions.source", Config.DEFAULT_FUNCTIONS_SOURCE); + // Inject default functions source if missing. + if (this.get("functions")) { + if (this.projectDir && fsutils.dirExistsSync(this.path(Config.DEFAULT_FUNCTIONS_SOURCE))) { + if (Array.isArray(this.get("functions"))) { + if (!this.get("functions.[0].source")) { + this.set("functions.[0].source", Config.DEFAULT_FUNCTIONS_SOURCE); + } + } else { + if (!this.get("functions.source")) { + this.set("functions.source", Config.DEFAULT_FUNCTIONS_SOURCE); + } } } }