Skip to content

Commit 2d28eb0

Browse files
authored
feat(v0.2): Firebase storage server adapter (#199)
Adds `FirebaseStorage` exported from `nuxt-upload-kit/server/firebase`, using `firebase-admin` directly for V4 signed URLs, direct uploads, and deletes. Wires up the build entry and externals so the new subpath export actually ships.
1 parent 1ea8c35 commit 2d28eb0

7 files changed

Lines changed: 932 additions & 2 deletions

File tree

build.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { defineBuildConfig } from "unbuild"
22

33
const providers = ["s3", "azure-datalake", "firebase"]
4-
const serverEntries = ["index", "s3", "azure"]
4+
const serverEntries = ["index", "s3", "azure", "firebase"]
55

66
export default defineBuildConfig({
77
entries: [
@@ -20,6 +20,8 @@ export default defineBuildConfig({
2020
"@azure/storage-blob",
2121
"@azure/storage-file-datalake",
2222
"firebase/storage",
23+
"firebase-admin/app",
24+
"firebase-admin/storage",
2325
"@aws-sdk/client-s3",
2426
"@aws-sdk/s3-request-presigner",
2527
"h3",

package.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@
4444
"./server/azure": {
4545
"types": "./dist/server/azure.d.mts",
4646
"import": "./dist/server/azure.mjs"
47+
},
48+
"./server/firebase": {
49+
"types": "./dist/server/firebase.d.mts",
50+
"import": "./dist/server/firebase.mjs"
4751
}
4852
},
4953
"scripts": {
@@ -85,6 +89,7 @@
8589
"eslint-config-prettier": "10.1.8",
8690
"eslint-plugin-prettier": "5.5.5",
8791
"firebase": "12.12.1",
92+
"firebase-admin": "13.8.0",
8893
"h3": "1.15.11",
8994
"happy-dom": "20.9.0",
9095
"nuxt": "4.4.2",
@@ -103,7 +108,8 @@
103108
"@azure/storage-file-datalake": "^12.0.0",
104109
"@ffmpeg/ffmpeg": "^0.12.0",
105110
"@ffmpeg/util": "^0.12.0",
106-
"firebase": "^10.0.0 || ^11.0.0 || ^12.0.0"
111+
"firebase": "^10.0.0 || ^11.0.0 || ^12.0.0",
112+
"firebase-admin": "^12.0.0 || ^13.0.0"
107113
},
108114
"peerDependenciesMeta": {
109115
"@aws-sdk/client-s3": {
@@ -129,6 +135,9 @@
129135
},
130136
"firebase": {
131137
"optional": true
138+
},
139+
"firebase-admin": {
140+
"optional": true
132141
}
133142
},
134143
"packageManager": "pnpm@10.33.2"

playground/server/upload.server.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { defineUploadServerConfig, MaxFileSize, AllowedMimeTypes } from "#upload-kit/server"
22
import { S3Storage } from "nuxt-upload-kit/server/s3"
3+
// Also available: AzureStorage from "nuxt-upload-kit/server/azure", FirebaseStorage from "nuxt-upload-kit/server/firebase"
34

45
const env = process.env
56

0 commit comments

Comments
 (0)