confinode
Version:
Node application configuration reader
20 lines (19 loc) • 949 B
TypeScript
import { InternalResult } from '../../ConfinodeResult';
import ConfigDescription, { ConfigDescriptionParameter, ParserContext } from '../ConfigDescription';
/**
* Description of a conditional configuration.
*/
export default class ConditionalDescription<I, E> implements ConfigDescription<I | E> {
private readonly predicate;
private readonly ifDescription;
private readonly elseDescription;
/**
* Create a conditional configuration description.
*
* @param predicate - The predicate to test the value against.
* @param ifDescription - The description to use if predicate is true.
* @param elseDescription - The description to use if predicate is false.
*/
constructor(predicate: (value: unknown) => boolean, ifDescription: ConfigDescriptionParameter<I>, elseDescription: ConfigDescriptionParameter<E>);
parse(data: unknown, context: ParserContext<I | E>): InternalResult<I | E> | undefined;
}