Skip to content

Commit a02b978

Browse files
authored
feat: Add experimental support to discover functions via dynamic generation of functions.yaml (#8848)
Adds a new environment variable, FIREBASE_FUNCTIONS_DISCOVERY_OUTPUT_PATH, to enable an experimental file-based function discovery mechanism. If FIREBASE_FUNCTIONS_DISCOVERY_OUTPUT_PATH=true, a temporary file path will be generated for the discovery manifest (functions.yaml). If FIREBASE_FUNCTIONS_DISCOVERY_OUTPUT_PATH is set to a path, that path will be used to store the discovery manifest. This change also includes a refactoring of the discovery codebase to use the modern fs/promises API instead of util.promisify.
1 parent 476cd01 commit a02b978

File tree

24 files changed

+341
-131
lines changed

24 files changed

+341
-131
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ scripts/*.json
2727
lib/
2828
dev/
2929
clean/
30+
.gemini/
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
{
22
"name": "dist",
3-
"version": "0.0.1",
4-
"engines": {
5-
"node": "20"
6-
}
3+
"version": "0.0.1"
74
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"functions": {
3-
"source": "dist"
3+
"source": "dist",
4+
"runtime": "nodejs22"
45
}
56
}

scripts/functions-discover-tests/fixtures/bundled/package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
"name": "dist",
33
"version": "0.0.1",
44
"dependencies": {
5-
"firebase-functions": "^5.1.0"
6-
},
7-
"engines": {
8-
"node": "20"
5+
"firebase-functions": "^6.4.0"
96
}
107
}

scripts/functions-discover-tests/fixtures/codebases/firebase.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
{
44
"source": "v1",
55
"codebase": "v1",
6+
"runtime": "nodejs22",
67
"ignore": [
78
"node_modules",
89
".git",
@@ -13,6 +14,7 @@
1314
{
1415
"source": "v2",
1516
"codebase": "v2",
17+
"runtime": "nodejs22",
1618
"ignore": [
1719
"node_modules",
1820
".git",
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
{
22
"name": "codebase-v1",
33
"dependencies": {
4-
"firebase-functions": "^5.1.0"
5-
},
6-
"engines": {
7-
"node": "20"
4+
"firebase-functions": "^6.4.0"
85
}
96
}

scripts/functions-discover-tests/fixtures/codebases/v2/package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
"name": "codebase-v2",
33
"type": "module",
44
"dependencies": {
5-
"firebase-functions": "^5.1.0"
6-
},
7-
"engines": {
8-
"node": "20"
5+
"firebase-functions": "^6.4.0"
96
}
107
}
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
{
2-
"functions": {}
2+
"functions": {
3+
"source": "functions",
4+
"runtime": "nodejs22"
5+
}
36
}

scripts/functions-discover-tests/fixtures/esm/functions/package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
"name": "esm",
33
"type": "module",
44
"dependencies": {
5-
"firebase-functions": "^5.1.0"
6-
},
7-
"engines": {
8-
"node": "20"
5+
"firebase-functions": "^6.4.0"
96
}
107
}
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
{
2-
"functions": {}
2+
"functions": {
3+
"source": "functions",
4+
"runtime": "nodejs22"
5+
}
36
}

0 commit comments

Comments
 (0)