@krauters/environment
Version:
A TypeScript utility library that provides a fluent, type-safe API for defining, transforming, and managing environment variable configurations in applications.
26 lines • 1.17 kB
TypeScript
import type { MapNamesToKeys } from './structures';
export declare class EnvironmentBuilder<E = unknown, O = unknown> {
private readonly info;
private constructor();
static create<S extends string[]>(...requiredKeys: S): EnvironmentBuilder<{
[K in keyof MapNamesToKeys<S>]: MapNamesToKeys<S>[K];
}, {}>;
defaults(defaultValues?: Partial<E>): EnvironmentBuilder<E, O>;
environment(keys?: Record<string, string | undefined>): {
[K in keyof (E & O)]: (E & O)[K];
};
optionals<S extends string[]>(...vars: S): EnvironmentBuilder<E, {
[K in keyof MapNamesToKeys<S>]?: MapNamesToKeys<S>[K];
} & O>;
transform<S extends (keyof (E & O))[], R>(transform: (value: string) => R, ...vars: S): EnvironmentBuilder<{
[K in keyof Pick<E, Exclude<S[number], keyof O>>]: R;
} & Omit<E, S[number]>, {
[K in keyof Pick<O, Exclude<S[number], keyof E>>]: R;
} & Omit<O, S[number]>>;
withPrefix(prefix: string): EnvironmentBuilder<E, O>;
private applyTransform;
private prefixedKey;
private processOptionalKeys;
private processRequiredKeys;
}
//# sourceMappingURL=environment.d.ts.map