From 3f9977e7912688c0115e4f873f5eaa566f84ff08 Mon Sep 17 00:00:00 2001 From: aXenDeveloper Date: Wed, 8 Jul 2026 20:35:59 +0200 Subject: [PATCH] =?UTF-8?q?fix(supabase):=20=E2=9C=A8=20add=20Supabase=20S?= =?UTF-8?q?torage=20adapter=20and=20update=20dependencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/docs/package.json | 1 + apps/docs/src/vitnode.api.config.ts | 10 ++++++++-- pnpm-lock.yaml | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/docs/package.json b/apps/docs/package.json index e19ac5cf6..e51f83f78 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -57,6 +57,7 @@ "@vitnode/node-cron": "workspace:*", "@vitnode/nodemailer": "workspace:*", "@vitnode/resend": "workspace:*", + "@vitnode/supabase-storage": "workspace:*", "babel-plugin-react-compiler": "^1.0.0", "class-variance-authority": "^0.7.1", "eslint": "^10.5.0", diff --git a/apps/docs/src/vitnode.api.config.ts b/apps/docs/src/vitnode.api.config.ts index 2d723c964..3cdd676ac 100644 --- a/apps/docs/src/vitnode.api.config.ts +++ b/apps/docs/src/vitnode.api.config.ts @@ -3,10 +3,11 @@ import { DiscordSSOApiPlugin } from "@vitnode/core/api/adapters/sso/discord"; // import { ResendEmailAdapter } from "@vitnode/resend"; import { FacebookSSOApiPlugin } from "@vitnode/core/api/adapters/sso/facebook"; import { GoogleSSOApiPlugin } from "@vitnode/core/api/adapters/sso/google"; -import { LocalStorageAdapter } from "@vitnode/core/api/adapters/storage/local"; import { buildApiConfig } from "@vitnode/core/vitnode.config"; import { NodeCronAdapter } from "@vitnode/node-cron"; import { NodemailerEmailAdapter } from "@vitnode/nodemailer"; +// import { LocalStorageAdapter } from "@vitnode/core/api/adapters/storage/local"; +import { SupabaseStorageAdapter } from "@vitnode/supabase-storage"; import { drizzle } from "drizzle-orm/postgres-js"; export const POSTGRES_URL = @@ -56,8 +57,13 @@ export const vitNodeApiConfig = buildApiConfig({ // Next.js serves `public/` at the site root, so files land in // `public/uploads` and are reachable at `/uploads/`. Local disk is not // durable on serverless — switch to a cloud adapter when deploying there. - adapter: LocalStorageAdapter({ publicPath: "/uploads" }), + // adapter: LocalStorageAdapter({ publicPath: "/uploads" }), // Re-encode uploaded images with sharp to shrink them before storing. + adapter: SupabaseStorageAdapter({ + url: process.env.SUPABASE_URL, + secretKey: process.env.SUPABASE_SECRET_KEY, + bucket: process.env.SUPABASE_STORAGE_BUCKET, + }), image: { quality: 85, }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39493dd53..3f3fafdf9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -223,6 +223,9 @@ importers: '@vitnode/resend': specifier: workspace:* version: link:../../packages/resend + '@vitnode/supabase-storage': + specifier: workspace:* + version: link:../../packages/supabase-storage babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0