UNPKG

confinode

Version:

Node application configuration reader

63 lines (62 loc) 1.97 kB
import FileDescription from '../FileDescription'; import { LoaderDescription } from '../Loader'; import { Message } from '../messages'; /** * The options for confinode, without the mode. */ interface ConfinodeOptionsWithoutMode { /** * Indicate if the search or load result should be cached. */ cache: boolean; /** * The folder where configuration file search should stop. */ searchStop: string; /** * Extra paths to search for loader modules. */ modulePaths: string | string[]; /** * The logger. Default logger will simply display warnings to the console. */ logger: (message: Message<any>) => void; /** * Configuration file names, or default file names filter. */ files: FileDescription[] | Array<(files: FileDescription[]) => FileDescription[]>; /** * The custom loaders, if needed. */ customLoaders: { [name: string]: LoaderDescription; }; } /** * Type guard to check if file names are actually filters rather than real file descriptions. * * @param files - The variable to check. * @returns True if files are actually a filter array. */ export declare function filesAreFilters(files: FileDescription[] | Array<(fileDescriptions: FileDescription[]) => FileDescription[]>): files is Array<(fileDescriptions: FileDescription[]) => FileDescription[]>; /** * Some default configuration options. */ export declare const defaultConfig: Partial<ConfinodeOptionsWithoutMode>; /** * The definitive options, ready to be used by the application. */ export interface ConfinodeParameters extends ConfinodeOptionsWithoutMode { modulePaths: string[]; files: FileDescription[]; mode: 'async' | 'sync'; } /** * The options for confinode. */ declare type ConfinodeOptions<M extends 'async' | 'sync'> = Partial<ConfinodeOptionsWithoutMode> & (M extends 'async' ? { mode?: M; } : { mode: M; }); export default ConfinodeOptions;