UNPKG

@liplum/env

Version:

Reading and parsing environment variables from "process.env"

50 lines (49 loc) 1.57 kB
import { NodeEnv } from "./node.js"; import { IArrayEnv } from "./env/array.js"; import { IBoolEnv } from "./env/bool.js"; import { IFloatEnv } from "./env/float.js"; import { IIntEnv } from "./env/int.js"; import { IPortEnv } from "./env/port.js"; import { IStringEnv } from "./env/string.js"; import { IUrlEnv } from "./env/url.js"; import { IEnv, DefaultValue, EnvStore } from "./model.js"; import { NextPhase } from "./nextjs.js"; export * from "./model.js"; export { IArrayEnv, IBoolEnv, IFloatEnv, IIntEnv, IPortEnv, IStringEnv, IUrlEnv, }; export interface IEnvCreator { string: (options?: { default?: DefaultValue<string>; }) => IStringEnv; bool: (options?: { default?: DefaultValue<boolean>; }) => IBoolEnv; int: (options?: { default?: DefaultValue<number>; }) => IIntEnv; float: (options?: { default?: DefaultValue<number>; }) => IFloatEnv; port: (options?: { default?: DefaultValue<number>; }) => IPortEnv; array: (options?: { default?: DefaultValue<string[]>; }) => IArrayEnv; url: (options?: { default?: DefaultValue<URL | string>; }) => IUrlEnv; } export type IEnvObj = IEnv & IEnvCreator; export interface EnvObj extends IEnvObj { readonly key: string; from: (store: EnvStore) => EnvObj; } declare const env: { (key: string): EnvObj; NODE_ENV: NodeEnv; NEXT_PHASE: NextPhase; fromValue(value?: string): IEnvObj; }; export declare const NODE_ENV: NodeEnv; export declare const NEXT_PHASE: NextPhase; export default env;