UNPKG

nuxt-safe-runtime-config

Version:

Validate Nuxt runtime config with Standard Schema at build time

52 lines (47 loc) 1.88 kB
import { StandardSchemaV1, StandardJSONSchemaV1 } from '@standard-schema/spec'; interface EnvVarLike { key: string; value: string; } type TransformedConfig = Record<string, string | Record<string, unknown>>; declare function transformEnvVars(vars: readonly EnvVarLike[]): TransformedConfig; type ErrorBehavior = 'throw' | 'warn' | 'ignore'; type SchemaSource = StandardSchemaV1 | string; interface ValidationOptions { /** Standard Schema or project-relative path to a default-exported schema module */ $schema?: SchemaSource; /** Validate runtime config at build time. Default: true */ validateAtBuild?: boolean; /** Validate runtime config at runtime via Nitro plugin. Default: false */ validateAtRuntime?: boolean; /** JSON Schema target version. Default: 'draft-2020-12' */ jsonSchemaTarget?: StandardJSONSchemaV1.Target; /** Behavior when validation fails. Default: 'throw' */ onError?: ErrorBehavior; } declare module 'nitro/types' { interface NitroConfig { safeRuntimeConfig?: ValidationOptions; } interface NitroOptions { safeRuntimeConfig?: ValidationOptions; } } declare module 'nitropack/types' { interface NitroConfig { safeRuntimeConfig?: ValidationOptions; } interface NitroOptions { safeRuntimeConfig?: ValidationOptions; } } declare const RUNTIME_PLUGIN_PATH: string; declare const RUNTIME_MIDDLEWARE_PATH: string; declare function resolveRuntimeConfigImport(majorVersion: number, parentPath: string): string; interface CompatibleNitroModule { name?: string; setup: (nitro: unknown) => void | Promise<void>; } declare const _default: CompatibleNitroModule; export { RUNTIME_MIDDLEWARE_PATH, RUNTIME_PLUGIN_PATH, _default as default, resolveRuntimeConfigImport, transformEnvVars }; export type { ErrorBehavior, SchemaSource, ValidationOptions };