README.md

@cutticat/text

String utilities library.

Table of Contents

Overview

The library provides functions for case conversion, string checks, whitespace handling, character counting, encoding validation, and other text operations. It uses types from @cutticat/types for type safety.

Installation

pnpm i @cutticat/text

Quick Start

import {
  toCamelCase,
  toSnakeCase,
  capitalize,
  collapseSpaces,
  isBlank,
  countLines,
} from "@cutticat/text"

// Case conversion
toCamelCase("hello-world") // "helloWorld"
toSnakeCase("helloWorld")  // "hello_world"
capitalize("hello")        // "Hello"

// Whitespace handling
collapseSpaces("  hello    world  ") // "hello world"

// Checks
isBlank("   ") // true

// Counting
countLines("line1\nline2\nline3") // 3

API

Case (cases)

  • toLowerCase<T>(text) — to lowercase
  • toUpperCase<T>(text) — to uppercase
  • toCamelCase<T>(text) — to camelCase
  • toKebabCase<T>(text) — to kebab-case
  • toSnakeCase<T>(text) — to snake_case
  • toPascalCase<T>(text) — to PascalCase
  • capitalize<T>(text) — capitalize first letter
  • uncapitalize<T>(text) — lowercase first letter
  • capitalizeText(text) — capitalize the first letter of each word

Character classes (classes)

  • isDigit(s) — single digit
  • isAllDigits(s) — digits only
  • isHexDigit(s) — single hexadecimal digit
  • isAllHexDigits(s) — hexadecimal digits only
  • isOctalDigit(s) — single octal digit (07)
  • isAllOctalDigits(s) — octal digits only
  • isAsciiLetter(s) — single ASCII letter
  • isAsciiAlphanumeric(s) — single ASCII letter or digit
  • isAsciiWhiteSpace(s) — POSIX / C whitespace (not ECMAScript \s)
  • isBlank(s) — empty string (after trim)
  • isNullOrBlank(s) — null, undefined, or empty

Comparisons (comparisons)

  • compareCodeUnits(left, right) — UTF-16 code-unit lexicographic order for storage keys

Unicode (unicode)

  • isUnicodeScalarValue(value)true when a number is a valid scalar (for escape validation)
  • stringFromCodePoint(value) — scalar → one-character string (RangeError when invalid)
  • codePointCharAt(s, index)codePointAt, but returns a string; advance by .length

Codecs (codecs)

  • isValidString(value) — valid string (no replacement characters, has readable characters)
  • isAsciiOnly(value) — ASCII only
  • looksLikeMojibake(value) — looks like corrupted encoding
  • hasReadableChars(value) — has letters, digits, or spaces
  • hasReplacementCharacters(value) — contains replacement character U+FFFD
  • hasSuspiciousChars(value) — suspicious characters (invisible, control characters)
  • hasCyrillicOrCjkChars(value) — Cyrillic or CJK

Counting (counting)

  • countChars(s, predicate) — character count by predicate
  • countDigits(s) — digit count
  • countLines(s) — line count (by \n)

Whitespace (white-spaces)

  • collapseSpaces(s, toUndefined?) — collapse spaces to one, preserve line breaks
  • collapseWhiteSpace(s, toUndefined?) — collapse all whitespace characters
  • removeWhiteSpace(s, toUndefined?) — remove all whitespace characters
  • trim(s, toUndefined?) — trim leading and trailing whitespace

Replacements (replacements)

  • replaceMiddle(str, replacement, from, to) — replace the middle part of a string

Preview (preview)

  • preview(obj, maxLength?) — string representation of an object (truncated to maxLength)

Constants (constants)

  • lowercaseAsciiAlphabet — a-z
  • uppercaseAsciiAlphabet — A-Z
  • numericAsciiAlphabet — 0-9
  • specialCharactersAsciiAlphabet — special characters
  • asciiWhiteSpaceCharacters — POSIX / C whitespace string
  • asciiWhiteSpaceSet — set view for membership checks

Documentation

Detailed documentation:

Full API documentation is available in JSDoc comments. Use IDE autocomplete to browse it.

Requirements

  • Node.js >= 22.0.0
  • pnpm >= 10.17.0
  • TypeScript >= 5.9.0
Описание
A library with various utilities for working with text
Конвейеры
5 успешных
5 с ошибкой
Разработчики