豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

Commit 82ecd90

Browse files
committed
feat(apps): establish firebase base for functions and local emulation
Create the initial base function and emulation bazel rules and files
1 parent bf5983a commit 82ecd90

File tree

11 files changed

+2652
-73
lines changed

11 files changed

+2652
-73
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,6 @@ yarn-error.log
4848

4949
# Don't check in junit test results.
5050
test-results/*
51+
52+
# Ignore firebase debug logs.
53+
apps/*-debug.log

apps/.firebaserc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

apps/BUILD.bazel

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
2+
3+
nodejs_binary(
4+
name = "serve",
5+
chdir = package_name(),
6+
data = [
7+
# primary firebase configuration file
8+
"firebase.json",
9+
10+
# Firebase function files
11+
"//apps/functions:functions_compiled",
12+
"//apps/functions:functions_files",
13+
],
14+
entry_point = "@npm//:node_modules/firebase-tools/lib/bin/firebase.js",
15+
templated_args = [
16+
"--project",
17+
"angular-caretaker",
18+
"--config",
19+
# TODO: Find a way to do this without relying on the copy_to_bin that works cross platform.
20+
"$$(rlocation $(execpath :firebase.json))",
21+
"emulators:start",
22+
],
23+
)

apps/firebase.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"firestore": {
3+
"rules": "firestore.rules",
4+
"indexes": "firestore.indexes.json"
5+
},
6+
"functions": {
7+
"predeploy": "bazel build //apps/functions:functions_compiled",
8+
"source": "../dist/bin/apps/functions"
9+
},
10+
"emulators": {
11+
"functions": {
12+
"port": 5001
13+
},
14+
"firestore": {
15+
"port": 8080
16+
},
17+
"ui": {
18+
"enabled": true
19+
}
20+
}
21+
}

apps/firestore.indexes.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"indexes": [],
3+
"fieldOverrides": []
4+
}

apps/firestore.rules

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
service cloud.firestore {
2+
match /databases/{database}/documents {
3+
match /{document=**} {
4+
allow read, write: if false
5+
}
6+
}
7+
}

apps/functions/BUILD.bazel

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
load("//tools:defaults.bzl", "esbuild", "ts_library")
2+
load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
3+
4+
package(default_visibility = ["//visibility:private"])
5+
6+
copy_to_bin(
7+
name = "functions_files",
8+
srcs = [
9+
"package.json",
10+
],
11+
visibility = ["//apps:__pkg__"],
12+
)
13+
14+
ts_library(
15+
name = "functions",
16+
srcs = [
17+
"index.ts",
18+
],
19+
deps = [
20+
"@npm//firebase-functions",
21+
],
22+
)
23+
24+
esbuild(
25+
name = "functions_compiled",
26+
entry_points = [
27+
"index.ts",
28+
],
29+
format = "cjs",
30+
visibility = ["//apps:__pkg__"],
31+
deps = [
32+
":functions",
33+
"@npm//firebase-functions",
34+
],
35+
)

apps/functions/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import * as functions from 'firebase-functions';

apps/functions/package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "functions",
3+
"engines": {
4+
"node": "16"
5+
},
6+
"main": "index.js",
7+
"private": true
8+
}

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@
103103
"ejs": "^3.1.6",
104104
"firebase": "^9.6.9",
105105
"firebase-admin": "^10.0.2",
106+
"firebase-functions": "^3.19.0",
107+
"firebase-tools": "^10.5.0",
106108
"git-raw-commits": "^2.0.10",
107109
"glob": "7.2.0",
108110
"husky": "^7.0.1",

0 commit comments

Comments
 (0)