UNPKG

@enspirit/emb

Version:

A replacement for our Makefile-for-monorepos

26 lines (25 loc) 832 B
type ExpandOptions = { default?: string; sources?: Record<string, Record<string, unknown>>; }; export type ExpansionHistory = { source: string; value: unknown; variable: string; }; export type Expandable = readonly Expandable[] | string | { readonly [k: string]: Expandable; }; type ExpandResult<T> = T extends string ? string : T extends readonly (infer U)[] ? ReadonlyArray<ExpandResult<U>> : T extends { readonly [K in keyof T]: Expandable; } ? { readonly [K in keyof T]: ExpandResult<T[K]>; } : T; export declare class TemplateExpander { private expansions; get expansionCount(): number; expand(str: string, options?: ExpandOptions): Promise<string>; expandRecord<T extends Expandable>(record: T, options: ExpandOptions): Promise<ExpandResult<T>>; private track; } export {};