nested-env-schema
Version:
Validate & extract your env variables using nested JSON schema, Ajv and dotenvx
38 lines (30 loc) • 909 B
TypeScript
import Ajv, { KeywordDefinition, JSONSchemaType } from 'ajv';
import { AnySchema } from 'ajv/dist/core';
import { DotenvConfigOptions } from '@dotenvx/dotenvx';
type EnvSchema = typeof envSchema;
declare namespace envSchema {
export type { JSONSchemaType };
export type EnvSchemaData = {
[key: string]: unknown;
};
export type EnvSchemaOpt<T = EnvSchemaData> = {
schema?: JSONSchemaType<T> | AnySchema;
data?: [EnvSchemaData, ...EnvSchemaData[]] | EnvSchemaData;
env?: boolean;
dotenv?: boolean | DotenvConfigOptions;
ajv?:
| Ajv
| {
customOptions(ajvInstance: Ajv): Ajv;
};
};
export const keywords: {
separator: KeywordDefinition;
};
export const envSchema: EnvSchema;
export { envSchema as default };
}
declare function envSchema<T = envSchema.EnvSchemaData>(
_opts?: envSchema.EnvSchemaOpt<T>,
): T;
export = envSchema;