UNPKG

cmrd

Version:

A tiny utility for building command-line strings with clean and simple syntax.

7 lines (6 loc) 636 B
type CmrdArgIndex = number; type CmrdIf = [CmrdArgIndex, string]; type CmrdExpression = string | CmrdArgIndex | CmrdIf; type GetArgsType<T> = T extends [infer Head, ...infer Tail] ? Head extends CmrdExpression ? Head extends CmrdArgIndex ? [arg?: string, ...GetArgsType<Tail>, ...args: Array<string | undefined>] : [...GetArgsType<Tail>] : [...args: Array<string | undefined>] : [...args: Array<string | undefined>]; declare function cmrd<TExprs extends CmrdExpression[]>(strings: TemplateStringsArray, ...exprs: TExprs): (...args: GetArgsType<TExprs>) => string; export { cmrd as default, cmrd, CmrdIf, CmrdExpression, CmrdArgIndex };