@liplum/env
Version:
Reading and parsing environment variables from "process.env"
50 lines (49 loc) • 1.57 kB
TypeScript
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;