diff --git a/api/activitypub/followers.ts b/api/activitypub/followers.ts index 195d395..d43136e 100644 --- a/api/activitypub/followers.ts +++ b/api/activitypub/followers.ts @@ -1,12 +1,13 @@ -import type { VercelRequest, VercelResponse } from '@vercel/node'; -import admin from 'firebase-admin'; +import type { VercelRequest, VercelResponse } from "@vercel/node"; +import admin from "firebase-admin"; +// Initialize Firebase Admin if not already initialized. if (!admin.apps.length) { admin.initializeApp({ credential: admin.credential.cert({ projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, clientEmail: process.env.FIREBASE_CLIENT_EMAIL, - privateKey: process.env.FIREBASE_PRIVATE_KEY?.replace(/\\n/g, '\n') + privateKey: process.env.FIREBASE_PRIVATE_KEY?.replace(/\\n/g, "\n") }) }); } @@ -15,18 +16,25 @@ const db = admin.firestore(); export default async function (req: VercelRequest, res: VercelResponse) { try { - const collection = db.collection('followers'); - const actors = await collection.select("actor").get(); + const collection = db.collection("followers"); + const snapshot = await collection.select("actor").get(); + + // Map each document's "actor" field and filter out any null values. + const actors = snapshot.docs + .map(doc => doc.get("actor")) + .filter(actor => actor != null); const output = { "@context": "https://www.w3.org/ns/activitystreams", "id": "https://coderrrrr.site/api/activitypub/followers", "type": "OrderedCollection", - "totalItems": actors.docs.length, - "orderedItems": actors.docs.map(item => item.get("actor")) + "totalItems": actors.length, + "orderedItems": actors }; - res.status(200).setHeader("Content-Type", "application/activity+json").json(output); + res.status(200) + .setHeader("Content-Type", "application/activity+json") + .json(output); } catch (error) { console.error("Error fetching followers:", error); res.status(500).json({ error: "Internal Server Error" }); diff --git a/package.json b/package.json index 8d77ed8..3600067 100644 --- a/package.json +++ b/package.json @@ -24,5 +24,8 @@ "node-fetch": "^3.3.2", "uuid": "^11.0.5", "vercel": "^41.0.2" - } + }, + "trustedDependencies": [ + "protobufjs" + ] }