From 0b7790f6d02518a636045d5ec75c5e7859636731 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Fri, 4 Jun 2021 22:12:32 +0200 Subject: [PATCH] feat(nitro): #config --- packages/nitro/src/rollup/config.ts | 1 + packages/nitro/src/runtime/app/config.ts | 17 +++++++---------- packages/nitro/src/runtime/app/render.ts | 7 ++----- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/packages/nitro/src/rollup/config.ts b/packages/nitro/src/rollup/config.ts index 3d84ab013a..4867f91744 100644 --- a/packages/nitro/src/rollup/config.ts +++ b/packages/nitro/src/rollup/config.ts @@ -196,6 +196,7 @@ export const getRollupConfig = (nitroContext: NitroContext) => { entries: { '#nitro': nitroContext._internal.runtimeDir, '#nitro-renderer': require.resolve(resolve(nitroContext._internal.runtimeDir, 'app', renderer)), + '#config': require.resolve(resolve(nitroContext._internal.runtimeDir, 'app/config')), '#nitro-vue-renderer': vue2ServerRenderer, '#build': nitroContext._nuxt.buildDir, '~': nitroContext._nuxt.srcDir, diff --git a/packages/nitro/src/runtime/app/config.ts b/packages/nitro/src/runtime/app/config.ts index 77eaed8503..519ca2fe2a 100644 --- a/packages/nitro/src/runtime/app/config.ts +++ b/packages/nitro/src/runtime/app/config.ts @@ -1,19 +1,16 @@ import destr from 'destr' +import defu from 'defu' -const runtimeConfig = process.env.RUNTIME_CONFIG as any +// Bundled runtime config +export const runtimeConfig = process.env.RUNTIME_CONFIG as any +// Allow override from process.env and deserialize for (const type of ['private', 'public']) { for (const key in runtimeConfig[type]) { runtimeConfig[type][key] = destr(process.env[key] || runtimeConfig[type][key]) } } -const $config = globalThis.$config = { - ...runtimeConfig.public, - ...runtimeConfig.private -} - -export default { - public: runtimeConfig.public, - private: $config -} +// Export merged config +export const config = defu(runtimeConfig.private, runtimeConfig.public) +export default config diff --git a/packages/nitro/src/runtime/app/render.ts b/packages/nitro/src/runtime/app/render.ts index 1731940d92..d8f0004f59 100644 --- a/packages/nitro/src/runtime/app/render.ts +++ b/packages/nitro/src/runtime/app/render.ts @@ -1,6 +1,6 @@ import { createRenderer } from 'vue-bundle-renderer' import devalue from '@nuxt/devalue' -import config from './config' +import { runtimeConfig } from './config' // @ts-ignore import htmlTemplate from '#build/views/document.template.js' @@ -41,10 +41,7 @@ export async function renderMiddleware (req, res) { url, req, res, - runtimeConfig: { - public: config.public, - private: config.private - }, + runtimeConfig, ...(req.context || {}) } const renderer = await loadRenderer()