import { isWebServer } from './constants'
import type { One } from './vite/types'

// works client or server
export const getDefaultRenderMode = () => {
  const CLIENT_RENDER_MODE = process.env.ONE_DEFAULT_RENDER_MODE as One.RouteRenderMode | undefined
  const serverConfig = globalThis['__vxrnPluginConfig__'] as One.PluginOptions | undefined

  if (!CLIENT_RENDER_MODE && isWebServer && !serverConfig) {
    throw new Error(`Internal one error: should call setServerConfig before createManifest`)
  }

  return CLIENT_RENDER_MODE ?? serverConfig?.web?.defaultRenderMode ?? 'ssg'
}
