env-schema
Version:
Validate your env variables using Ajv with .env file support using Node.js built-in parseEnv
50 lines (41 loc) • 1.16 kB
TypeScript
import Ajv, { KeywordDefinition, JSONSchemaType } from 'ajv'
import { AnySchema } from 'ajv/dist/core'
/**
* Options for loading .env files
*/
interface DotenvOptions {
/**
* Path to .env file (default: '.env')
*/
path?: string;
/**
* Encoding of .env file (default: 'utf8')
*/
encoding?: 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'latin1' | 'binary' | 'hex';
}
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 | DotenvOptions;
expandEnv?: boolean;
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