nuxt-safe-runtime-config
Version:
Validate Nuxt runtime config with Standard Schema at build time
52 lines (47 loc) • 1.88 kB
TypeScript
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 };