API Reference
Complete reference for all strio functions.
Categories
strio functions are organized into logical categories:
🎯 Manipulation
Transform and modify strings
- capitalize - Capitalize text
- reverse - Reverse string
- truncate - Shorten text
- trim - Remove whitespace
- insert - Insert text
- mask - Hide sensitive data
🔤 Case Conversion
Change string casing
- camelize - Convert to camelCase
- pascalize - Convert to PascalCase
- dasherize - Convert to kebab-case
- underscore - Convert to snake_case
✅ Validation
Check and validate strings
- String Validation Guide - Type and format checks (isEmpty, isAlpha, etc.)
🔍 Searching
Find and extract text
🎨 Formatting
Format for display
- humanize - Make readable
- slugify - Create URL slugs
- ordinalize - Add ordinal suffixes
- pluralize - Handle singular/plural
🛠️ Utilities
Helper functions
- words - Word operations
- join - Smart array joining
- template - String templates
- random - Generate random strings
- similarity - Compare strings
- transliterate - Convert scripts
📏 Padding & Indentation
Add spacing
🔐 Security
Safe string operations
- escapeHtml / unescapeHtml / escapeRegExp - Escape special characters
- stripTags / stripPrefix / stripSuffix - Remove tags and content
✨ Ensuring
Guarantee format
- ensureLeft / ensureRight - Ensure prefix/suffix
Quick Reference
Most Used Functions
typescript
import {
capitalize, // "hello" → "Hello"
slugify, // "Hello World" → "hello-world"
truncate, // Shorten text
isEmpty, // Check if empty
contains, // Check substring
template // "Hello {{name}}" → "Hello John"
} from 'strio'Common Patterns
String Transformation
typescript
import { capitalize, trim, collapseWhitespace } from 'strio'
const clean = capitalize(trim(collapseWhitespace(input)))Validation
typescript
import { isEmpty, isEmail, isNumeric } from 'strio'
if (!isEmpty(value) && isEmail(value)) {
// Valid email
}Formatting
typescript
import { slugify, ensureRight } from 'strio'
const filename = ensureRight(slugify(title), '.md')Type Definitions
strio is fully typed. Import types as needed:
typescript
import type {
StringValidator,
CaseConverter,
TemplateOptions
} from 'strio'Function Naming
strio uses consistent naming conventions:
- Verbs for actions:
capitalize,reverse,truncate - is prefix for checks:
isEmpty,isAlpha,isEmail - has/contains for presence:
contains,containsAll - ensure for guarantees:
ensureLeft,ensureRight
Return Values
Most functions return:
- String - transformed result
- Boolean - for validation checks
- Number - for counts and measurements
- Array - for extraction functions
Error Handling
strio functions are defensive:
typescript
import { capitalize } from 'strio'
capitalize(null) // Returns empty string
capitalize(undefined) // Returns empty string
capitalize('') // Returns empty string
capitalize('hello') // Returns "Hello"For validation, check before calling:
typescript
import { isEmpty, slugify } from 'strio'
const input = getUserInput()
if (!isEmpty(input)) {
const slug = slugify(input)
// Use slug
}Performance Tips
1. Tree Shaking
Import only what you need:
typescript
// ✅ Good - only bundles capitalize
import { capitalize } from 'strio'
// ❌ Bad - bundles everything
import * as strio from 'strio'2. Avoid Chaining Overhead
For performance-critical code, combine operations:
typescript
// Instead of multiple function calls
const result = capitalize(trim(toLowerCase(input)))
// Consider a single optimized function
function cleanAndCapitalize(str: string): string {
return str.trim().toLowerCase().replace(/^\w/, c => c.toUpperCase())
}3. Memoization
For repeated operations on the same input:
typescript
const cache = new Map()
function memoizedSlugify(text: string): string {
if (cache.has(text)) {
return cache.get(text)
}
const result = slugify(text)
cache.set(text, result)
return result
}Browser Compatibility
All functions work in:
- ✅ Chrome/Edge 90+
- ✅ Firefox 88+
- ✅ Safari 14+
- ✅ Node.js 16+
Some features may use:
String.prototype.normalize()(transliteration)IntlAPI (future localization features)
Migration Guide
Coming from other libraries:
From Lodash
typescript
// Lodash
import _ from 'lodash'
_.capitalize('hello')
_.snakeCase('helloWorld')
// strio
import { capitalize, underscore } from 'strio'
capitalize('hello')
underscore('helloWorld')From Voca
typescript
// Voca
import v from 'voca'
v.capitalize('hello')
v.slugify('Hello World')
// strio
import { capitalize, slugify } from 'strio'
capitalize('hello')
slugify('Hello World')Next Steps
- Browse functions by category
- See examples
- Report issues