env not required during build

This commit is contained in:
Sebastian Seedorf
2022-08-18 11:27:29 +02:00
parent 044943f19a
commit 0ae9f4f546
3 changed files with 9 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
const envVar = require('env-var') const envVar = require('env-var')
const isBuildStage = envVar.get('IS_BUILD_STAGE').default('false').asBool()
/** @type {import('next').NextConfig} */ /** @type {import('next').NextConfig} */
const nextConfig = { const nextConfig = {
@@ -6,13 +7,13 @@ const nextConfig = {
swcMinify: true, swcMinify: true,
/** @type {import('next/config').ServerRuntimeConfig} */ /** @type {import('next/config').ServerRuntimeConfig} */
serverRuntimeConfig: { serverRuntimeConfig: {
MONGO_URL: envVar.get('MONGO_URL').required().asUrlString(), MONGO_URL: envVar.get('MONGO_URL').required(!isBuildStage).asUrlString(),
MONGO_DB: envVar.get('MONGO_DB').required().asString(), MONGO_DB: envVar.get('MONGO_DB').required(!isBuildStage).asString(),
MONGO_USER: envVar.get('MONGO_USER').required().asString(), MONGO_USER: envVar.get('MONGO_USER').required(!isBuildStage).asString(),
MONGO_PASS: envVar.get('MONGO_PASS').required().asString() MONGO_PASS: envVar.get('MONGO_PASS').required(!isBuildStage).asString()
}, },
publicRuntimeConfig: { publicRuntimeConfig: {
TENANT_TYPE: envVar.get('TENANT_TYPE').asString() TENANT_TYPE: envVar.get('TENANT_TYPE').required(!isBuildStage).asString()
} }
} }

View File

@@ -9,6 +9,7 @@ const {
} = getConfig() } = getConfig()
async function getDatabase() { async function getDatabase() {
if (!MONGO_URL || !MONGO_DB) return undefined
const url = `mongodb://${MONGO_USER ? `${MONGO_USER}:${MONGO_PASS ?? ''}@` : ''}${MONGO_URL}` const url = `mongodb://${MONGO_USER ? `${MONGO_USER}:${MONGO_PASS ?? ''}@` : ''}${MONGO_URL}`
const client = new MongoClient(url) const client = new MongoClient(url)
await client.connect() await client.connect()

4
src/next-types.d.ts vendored
View File

@@ -1,7 +1,7 @@
declare module 'next/config' { declare module 'next/config' {
export interface ServerRuntimeConfig { export interface ServerRuntimeConfig {
MONGO_URL: string MONGO_URL?: string
MONGO_DB: string MONGO_DB?: string
MONGO_USER?: string MONGO_USER?: string
MONGO_PASS?: string MONGO_PASS?: string
} }