UNPKG

lines-builder

Version:

Tool and model to handle string lines and indentation.

38 lines (37 loc) 1.76 kB
export type LineLike = string | LinesBuilder | null; export interface LinesBuilderOptions { indent?: string | number | null; indentEmpty?: boolean; skipFirstLevelIndent?: boolean; skipEmpty?: boolean; trimLeft?: boolean; trimRight?: boolean; eol?: string | null; } export type LineMather = (line: string, i: number) => boolean; export type LineMapper = (line: string, i: number, level: number) => string; export declare function splitToLines(s: string): string[]; export declare class LinesBuilder { private static DEFAULT_OPTIONS; private options; private lines; get length(): number; constructor(...ls: LineLike[]); constructor(options: Partial<LinesBuilderOptions>, ...ls: LineLike[]); static resetDefaultOptions(): LinesBuilderOptions; static setDefaultOptions(options: Partial<LinesBuilderOptions>): LinesBuilderOptions; private parseLines; toString(): string; copy(): LinesBuilder; append(...ls: LineLike[]): LinesBuilder; prepend(...ls: LineLike[]): LinesBuilder; filter(matcher: string, reverse?: boolean, inPlace?: boolean): LinesBuilder; filter(matcher: RegExp, reverse?: boolean, inPlace?: boolean): LinesBuilder; filter(matcher: LineMather, reverse?: boolean, inPlace?: boolean): LinesBuilder; protected internalMap(mapper: LineMapper, level: number): void; map(mapper: LineMapper, inPlace?: boolean): LinesBuilder; } export declare const setDefaultOptions: typeof LinesBuilder.setDefaultOptions; export declare const resetDefaultOptions: typeof LinesBuilder.resetDefaultOptions; export declare function lines(...ls: LineLike[]): LinesBuilder; export declare function lines(options: Partial<LinesBuilderOptions>, ...ls: LineLike[]): LinesBuilder;