UNPKG

stringx-js

Version:

A comprehensive JavaScript library for string, number, and array manipulation inspired by Laravel. Includes 95+ string methods, 25+ number formatters, and 60 array utilities with fluent chaining, dot notation, and TypeScript support.

196 lines (172 loc) 8.13 kB
/** * StringX-JS - TypeScript Type Definitions * A comprehensive JavaScript string manipulation library inspired by Laravel's Str helper */ import { Stringable } from './Stringable'; /** * Main Str class with static methods for string manipulation */ declare class Str { /** * Create a new Stringable instance for fluent method chaining * @param string - The string value to wrap * @returns A Stringable instance for chaining * @example * Str.of('hello').upper().toString() // 'HELLO' */ static of(string: string): Stringable; // Case Conversion /** * Convert a value to camelCase * @param value - The string to convert * @returns The camelCase string * @example * Str.camel('foo_bar') // 'fooBar' */ static camel(value: string): string; /** * Convert a string to kebab-case * @param value - The string to convert * @returns The kebab-case string * @example * Str.kebab('fooBar') // 'foo-bar' */ static kebab(value: string): string; /** * Convert a string to snake_case * @param value - The string to convert * @param delimiter - The delimiter to use (default: '_') * @returns The snake_case string * @example * Str.snake('fooBar') // 'foo_bar' */ static snake(value: string, delimiter?: string): string; /** * Convert a value to StudlyCase (PascalCase) * @param value - The string to convert * @returns The StudlyCase string * @example * Str.studly('foo_bar') // 'FooBar' */ static studly(value: string): string; /** * Convert a value to PascalCase (alias for studly) * @param value - The string to convert * @returns The PascalCase string * @example * Str.pascal('foo_bar') // 'FooBar' */ static pascal(value: string): string; static title(value: string): string; static headline(value: string): string; static upper(value: string): string; static lower(value: string): string; static ucfirst(string: string): string; static lcfirst(string: string): string; static apa(value: string): string; static convertCase(string: string, mode?: 'lower' | 'upper' | 'title', encoding?: string): string; // String Extraction static after(subject: string, search: string): string; static afterLast(subject: string, search: string): string; static before(subject: string, search: string): string; static beforeLast(subject: string, search: string): string; static between(subject: string, from: string, to: string): string; static betweenFirst(subject: string, from: string, to: string): string; static charAt(subject: string, index: number): string; static substr(string: string, start: number, length?: number | null): string; static take(string: string, limit: number): string; // String Checking static contains(haystack: string, needles: string | string[], ignoreCase?: boolean): boolean; static containsAll(haystack: string, needles: string[], ignoreCase?: boolean): boolean; static doesntContain(haystack: string, needles: string | string[], ignoreCase?: boolean): boolean; static startsWith(haystack: string, needles: string | string[]): boolean; static doesntStartWith(haystack: string, needles: string | string[]): boolean; static endsWith(haystack: string, needles: string | string[]): boolean; static doesntEndWith(haystack: string, needles: string | string[]): boolean; static is(pattern: string | string[], value: string, ignoreCase?: boolean): boolean; static isAscii(value: string): boolean; static isJson(value: string): boolean; static isUrl(value: string, protocols?: string[]): boolean; static isUuid(value: string): boolean; static isUlid(value: string): boolean; static isMatch(pattern: RegExp | string, value: string): boolean; // String Manipulation static limit(value: string, limit?: number, end?: string): string; static words(value: string, words?: number, end?: string): string; static mask(string: string, character: string, index: number, length?: number | null): string; static trim(value: string, charlist?: string | null): string; static ltrim(value: string, charlist?: string | null): string; static rtrim(value: string, charlist?: string | null): string; static squish(value: string): string; static chopStart(subject: string, needle: string | string[]): string; static chopEnd(subject: string, needle: string | string[]): string; static finish(value: string, cap: string): string; static start(value: string, prefix: string): string; static wrap(value: string, before: string, after?: string | null): string; static unwrap(value: string, before: string, after?: string | null): string; static reverse(value: string): string; static ascii(value: string, language?: string): string; static transliterate(string: string, unknown?: string, strict?: boolean): string; static wordWrap(string: string, characters?: number, breakStr?: string, cutLongWords?: boolean): string; // String Replacement static replace(search: string | string[], replace: string | string[], subject: string, caseSensitive?: boolean): string; static replaceFirst(search: string, replace: string, subject: string): string; static replaceLast(search: string, replace: string, subject: string): string; static replaceArray(search: string, replace: string[], subject: string): string; static replaceStart(search: string, replace: string, subject: string): string; static replaceEnd(search: string, replace: string, subject: string): string; static replaceMatches(pattern: RegExp | string, replace: string, subject: string, limit?: number): string; static remove(search: string | string[], subject: string, caseSensitive?: boolean): string; static swap(map: Record<string, string>, subject: string): string; static deduplicate(string: string, characters?: string | string[]): string; static substrReplace(string: string, replace: string, offset?: number, length?: number | null): string; // Pattern Matching static match(pattern: RegExp | string, subject: string): string | null; static matchAll(pattern: RegExp | string, subject: string): string[]; // Padding static padBoth(value: string, length: number, pad?: string): string; static padLeft(value: string, length: number, pad?: string): string; static padRight(value: string, length: number, pad?: string): string; // String Information static length(value: string): number; static wordCount(string: string): number; static substrCount(haystack: string, needle: string, offset?: number, length?: number | null): number; static position(haystack: string, needle: string, offset?: number): number | false; // String Generation static random(length?: number): string; static password(length?: number, letters?: boolean, numbers?: boolean, symbols?: boolean, spaces?: boolean): string; static uuid(): string; static uuid7(): string; static ulid(): string; // Pluralization static plural(value: string, count?: number): string; static singular(value: string): string; static pluralStudly(value: string, count?: number): string; static pluralPascal(value: string, count?: number): string; // Other Utilities static slug(title: string, separator?: string): string; static numbers(value: string): string; static excerpt(text: string, phrase?: string, options?: ExcerptOptions): string; static ucsplit(string: string): string[]; static repeat(string: string, times: number): string; // Encoding static toBase64(string: string): string; static fromBase64(string: string, strict?: boolean): string; // Factories static createUuidsUsing(factory: (() => string) | null): void; static createUuidsNormally(): void; static createUlidsUsing(factory: (() => string) | null): void; static createUlidsNormally(): void; static createRandomStringsUsing(factory: ((length: number) => string) | null): void; static createRandomStringsNormally(): void; // Cache Management static flushCache(): void; } /** * Options for the excerpt method */ export interface ExcerptOptions { radius?: number; omission?: string; } export default Str;