Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tinrab/temelj/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The string utilities module provides functions for converting between different naming conventions and manipulating text.
Case conversion
toCamelCase
Converts a string to camelCase.
function toCamelCase(s: string, options?: ConvertCaseOptions): string
Optional configuration for custom splitting behavior
The string converted to camelCase
Example:
import { toCamelCase } from "@temelj/string";
console.log(toCamelCase("hello world")); // "helloWorld"
console.log(toCamelCase("user_first_name")); // "userFirstName"
console.log(toCamelCase("API-Response-Data")); // "apiResponseData"
toSnakeCase
Converts a string to snake_case.
function toSnakeCase(s: string, options?: ConvertCaseOptions): string
Optional configuration for custom splitting behavior
The string converted to snake_case
Example:
import { toSnakeCase } from "@temelj/string";
console.log(toSnakeCase("helloWorld")); // "hello_world"
console.log(toSnakeCase("UserFirstName")); // "user_first_name"
console.log(toSnakeCase("API Response Data")); // "api_response_data"
toPascalCase
Converts a string to PascalCase.
function toPascalCase(s: string, options?: ConvertCaseOptions): string
Optional configuration for custom splitting behavior
The string converted to PascalCase
Example:
import { toPascalCase } from "@temelj/string";
console.log(toPascalCase("hello world")); // "HelloWorld"
console.log(toPascalCase("user_first_name")); // "UserFirstName"
console.log(toPascalCase("api-response-data"));// "ApiResponseData"
toKebabCase
Converts a string to kebab-case.
function toKebabCase(s: string, options?: ConvertCaseOptions): string
Optional configuration for custom splitting behavior
The string converted to kebab-case
Example:
import { toKebabCase } from "@temelj/string";
console.log(toKebabCase("helloWorld")); // "hello-world"
console.log(toKebabCase("UserFirstName")); // "user-first-name"
console.log(toKebabCase("API Response Data")); // "api-response-data"
toTitleCase
Converts a string to Title Case.
function toTitleCase(s: string, options?: ConvertCaseOptions): string
Optional configuration for custom splitting behavior
The string converted to Title Case with spaces
Example:
import { toTitleCase } from "@temelj/string";
console.log(toTitleCase("helloWorld")); // "Hello World"
console.log(toTitleCase("user_first_name")); // "User First Name"
console.log(toTitleCase("api-response-data")); // "Api Response Data"
Text manipulation
capitalize
Capitalizes the first letter of a string and lowercases the rest.
function capitalize(s: string): string
Example:
import { capitalize } from "@temelj/string";
console.log(capitalize("hello")); // "Hello"
console.log(capitalize("WORLD")); // "World"
console.log(capitalize("aPi")); // "Api"
console.log(capitalize("")); // ""
caseSplit
Splits a string into parts based on case changes and delimiters.
function caseSplit(s: string, options?: ConvertCaseOptions): string[]
Optional configuration with custom split function
Array of lowercase word parts
Splitting rules:
- Splits on spaces, dots, underscores, and hyphens
- Splits on case changes (camelCase to parts)
- Preserves numbers as separate parts
Example:
import { caseSplit } from "@temelj/string";
console.log(caseSplit("helloWorld")); // ["hello", "world"]
console.log(caseSplit("user_first_name")); // ["user", "first", "name"]
console.log(caseSplit("API-Response")); // ["api", "response"]
console.log(caseSplit("version2Update")); // ["version", "2", "update"]
Configuration
ConvertCaseOptions
Options for customizing case conversion behavior.
interface ConvertCaseOptions {
split?: (s: string) => string[];
}
Custom function to split a string into parts before conversion
Example with custom splitter:
import { toCamelCase } from "@temelj/string";
// Split only on slashes
const result = toCamelCase("user/api/endpoint", {
split: (s) => s.split("/")
});
console.log(result); // "userApiEndpoint"
Common use cases
import { toCamelCase, toSnakeCase } from "@temelj/string";
// Convert API response keys from snake_case to camelCase
function transformKeys(obj: Record<string, any>): Record<string, any> {
return Object.fromEntries(
Object.entries(obj).map(([key, value]) => [
toCamelCase(key),
value
])
);
}
// Convert to database column names
function toDatabaseKeys(obj: Record<string, any>): Record<string, any> {
return Object.fromEntries(
Object.entries(obj).map(([key, value]) => [
toSnakeCase(key),
value
])
);
}
CSS class name generation
import { toKebabCase } from "@temelj/string";
function generateClassName(componentName: string, modifier?: string): string {
const base = toKebabCase(componentName);
return modifier ? `${base}--${toKebabCase(modifier)}` : base;
}
console.log(generateClassName("UserProfile")); // "user-profile"
console.log(generateClassName("UserProfile", "Active")); // "user-profile--active"
Type name generation
import { toPascalCase } from "@temelj/string";
function generateTypeName(tableName: string): string {
return `${toPascalCase(tableName)}Model`;
}
console.log(generateTypeName("user_profiles")); // "UserProfilesModel"