lines-builder
Version:
Tool and model to handle string lines and indentation.
38 lines (37 loc) • 1.76 kB
TypeScript
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;