UNPKG

@scaffdog/types

Version:
45 lines (37 loc) 1.26 kB
import { Merge } from 'type-fest'; type TagPair = Readonly<[open: string, close: string]>; type Variable = undefined | null | string | number | boolean | { [key in string]: Variable; } | Variable[]; type VariableMap = Map<string, Variable>; type VariableRecord = Record<string, Variable>; type Context = { cwd: string; variables: VariableMap; helpers: HelperMap; tags: TagPair; }; type Helper<T extends any[] = any[]> = (context: Context, ...args: T) => string | Helper | Variable; type HelperMap = Map<string, Helper>; type HelperRecord = Record<string, Helper>; type HelperRegister = (registry: HelperMap) => void; type Config = { files: string[]; variables?: VariableRecord; helpers?: (HelperRecord | HelperRegister)[]; tags?: TagPair; }; type ResolvedConfig = Merge<Config, { variables: VariableMap; helpers: HelperMap; }>; type SourceRange = [start: number, end: number]; type SourcePosition = { line: number; column: number; }; type SourceLocation = { start: SourcePosition; end: SourcePosition; }; export { Config, Context, Helper, HelperMap, HelperRecord, HelperRegister, ResolvedConfig, SourceLocation, SourcePosition, SourceRange, TagPair, Variable, VariableMap, VariableRecord };