@full-pack/string-builder
Version:
A lightweight and versatile String Builder Class for Node.js & Browser.
83 lines (80 loc) • 3.71 kB
text/typescript
/**
* @full-pack/string-builder v2.0.0
* Copyright (c) 2024 Ram Amoncar <ramamonkar444@gmail.com>
* @license MIT
*/
type Replacer = (char: string, index: number, str: string) => string;
declare class StringBuilder {
private _cap;
private _str;
constructor(str?: string, capacity?: number);
insert(index: number, value: number | string | boolean, repeatCount?: number): boolean;
append(value: number | string | boolean, repeatCount?: number): boolean;
prepend(value: number | string | boolean, repeatCount?: number): boolean;
appendNewLine(num?: number): boolean;
prependNewLine(num?: number): boolean;
appendSpace(num?: number): boolean;
prependSpace(num?: number): boolean;
appendArray(arr: Array<number | string | boolean>, separator?: string): boolean;
prependArray(arr: Array<number | string | boolean>, separator?: string): boolean;
appendJSON(json: Record<string | number | symbol, unknown> | Array<Record<string | number | symbol, unknown>>, space?: string | number): boolean;
prependJSON(json: Record<string | number | symbol, unknown> | Array<Record<string | number | symbol, unknown>>, space?: string | number): boolean;
appendCodePoint(...codePoints: number[]): boolean;
prependCodePoint(...codePoints: number[]): boolean;
replaceSubstring(str: string | Replacer, start?: number, end?: number): boolean;
setString(value: string): boolean;
private checkCapacity;
getString(): string;
indexOf(searchString: string, position?: number): number;
lastIndexOf(searchString: string, position?: number): number;
setChar(index: number, char: string): string;
substring(start: number, end?: number): string;
trim(): void;
/**
* Only removes the string.
*/
clear(): void;
/**
* Removes string & capacity.
*/
reset(): void;
clone(): StringBuilder;
isFull(): boolean;
isEmpty(): boolean;
get capacity(): number;
set capacity(value: number);
get length(): number;
set length(value: number);
}
declare class ChainableStringBuilder {
private readonly sb;
readonly UNSET_VALUE = -1;
static fromStringBuilder(sb: StringBuilder): ChainableStringBuilder;
constructor(str?: string, capacity?: number);
insert(index: number, value: number | string | boolean, repeatCount?: number): this;
append(value: number | string | boolean, repeatCount?: number): this;
prepend(value: number | string | boolean, repeatCount?: number): this;
appendNewLine(num?: number): this;
prependNewLine(num?: number): this;
appendSpace(num?: number): this;
prependSpace(num?: number): this;
appendArray(arr: Array<number | string | boolean>, separator?: string): this;
prependArray(arr: Array<number | string | boolean>, separator?: string): this;
appendJSON(json: Record<string | number | symbol, unknown> | Array<Record<string | number | symbol, unknown>>, space?: string | number): this;
prependJSON(json: Record<string | number | symbol, unknown> | Array<Record<string | number | symbol, unknown>>, space?: string | number): this;
appendCodePoint(...codePoints: number[]): this;
prependCodePoint(...codePoints: number[]): this;
replaceSubstring(str: string | Replacer, start?: number, end?: number): this;
setString(value: string): this;
trim(): this;
clear(): this;
reset(): this;
clone(): ChainableStringBuilder;
build(): StringBuilder;
getString(): string;
get capacity(): number;
set capacity(value: number);
get length(): number;
set length(value: number);
}
export { ChainableStringBuilder, type Replacer, StringBuilder, StringBuilder as default };