t3-oss / t3-env

https://env.t3.gg
MIT License
2.79k stars 86 forks source link

Unsupported configuration for Nuxt - Vercel Edge #55

Open ZainW opened 1 year ago

ZainW commented 1 year ago

was converting my env usage from the built in nuxt one (using useRuntimeConfig) to the t3-env

ran into a a situation that is not supported

// serve/utils/kysely.ts
import { Kysely } from 'kysely'
import { PlanetScaleDialect } from 'kysely-planetscale'

import type { DB } from '~/lib/db'
import { env } from '~/env'

export const db = new Kysely<DB>({
  dialect: new PlanetScaleDialect({
    url: env.DATABASE_URL,
  }),
})

this is something that does work when using Nuxt's default runtime as such

import { Kysely } from 'kysely'
import { PlanetScaleDialect } from 'kysely-planetscale'

import type { DB } from '~/lib/db'

const config = useRuntimeConfig()
export const db = new Kysely<DB>({
  dialect: new PlanetScaleDialect({
    url: config.DATABASE_URL,
  }),
})

getting an error that crashes the edge function saying DATABASE_URL is required

this only happens when deploying to vercel-edge as opposed to just the vercel preset.

do environment variables load differently when bundled for edge? is there a way to make it use nuxt's own runtimeConfig https://nuxt.com/docs/api/composables/use-runtime-config#environment-variables

juliusmarminge commented 1 year ago

do environment variables load differently when bundled for edge?

ah they might be treeshaking them from process.env on edge - similar to Next...

cc @nexxeln can you check plz :)

nexxeln commented 1 year ago

yeah i can reproduce this

juliusmarminge commented 1 year ago

Do we need to do manual destruction here too?