slug
PoolModern URL slug generation library - Unicode transliteration, customizable options, unique slugs. Zero dependencies, TypeScript-first, tree-shakeable. Modernizes the slugify ecosystem.
dist
Functions
function transliterate(input: string, options?: TransliterateOptions): string
Transliterate Unicode characters to ASCII Uses a hybrid approach for optimal bundle size: 1. Custom transliteration function (if provided) 2. Custom character replacements 3. Default replacement map (common symbols, Germanic, Nordic, etc.) 4. NFD normalization for diacritics (native, 0 bytes)
| Parameter | Type | Description |
|---|---|---|
input | string | - String to transliterate |
optionsoptional | TransliterateOptions | - Transliteration options |
function sanitize(input: string, options?: SanitizeOptions): string
Sanitize a string by removing/replacing unwanted characters
| Parameter | Type | Description |
|---|---|---|
input | string | - String to sanitize |
optionsoptional | SanitizeOptions | - Sanitization options |
function separateWords(input: string, preserve?: string[]): string[]
Separate words from a string Handles multiple patterns: - Existing separators (spaces, hyphens, underscores, slashes, dots) - camelCase → camel Case - PascalCase → Pascal Case - FOOBar → FOO Bar (consecutive caps) - foo2Bar → foo 2 Bar (numbers)
| Parameter | Type | Description |
|---|---|---|
input | string | - String to separate into words |
preserveoptional | string[] | - Characters to preserve (not treat as separators) |
function escapeRegex(str: string): string
Escape special regex characters
| Parameter | Type | Description |
|---|---|---|
str | string |
Variables
Record<string, string>Default character replacements for common symbols and special characters Optimized for bundle size while covering most common cases Strategy: - NFD normalization handles accented letters (é→e, ñ→n, ü→u, ö→o, ä→a, etc.) - This map only includes characters that NFD doesn't handle - Matches behavior of
dist/advanced
Functions
function createSlugger(defaultOptions?: SlugOptions): Slugger
Create a custom slugger with preset options Useful for reusing the same slug configuration multiple times
| Parameter | Type | Description |
|---|---|---|
defaultOptionsoptional | SlugOptions | - Default options to apply to all slugs |
function uniqueSlug(input: string, checker: ExistenceChecker, options?: SlugOptions): Promise<string>
Generate a unique slug by appending a counter if needed Checks for slug existence and appends a number if the slug already exists
| Parameter | Type | Description |
|---|---|---|
input | string | - String to slugify |
checker | ExistenceChecker | - Set of existing slugs or function to check existence |
optionsoptional | SlugOptions | - Slug options |
function uniqueSlugSync(input: string, existing: Set<string>, options?: SlugOptions): string
Synchronous version of uniqueSlug for Set-based checkers only
| Parameter | Type | Description |
|---|---|---|
input | string | - String to slugify |
existing | Set<string> | - Set of existing slugs |
optionsoptional | SlugOptions | - Slug options |
dist/advanced
Functions
function createSlugger(defaultOptions?: SlugOptions): Slugger
Create a custom slugger with preset options Useful for reusing the same slug configuration multiple times
| Parameter | Type | Description |
|---|---|---|
defaultOptionsoptional | SlugOptions | - Default options to apply to all slugs |
function uniqueSlug(input: string, checker: ExistenceChecker, options?: SlugOptions): Promise<string>
Generate a unique slug by appending a counter if needed Checks for slug existence and appends a number if the slug already exists
| Parameter | Type | Description |
|---|---|---|
input | string | - String to slugify |
checker | ExistenceChecker | - Set of existing slugs or function to check existence |
optionsoptional | SlugOptions | - Slug options |
function uniqueSlugSync(input: string, existing: Set<string>, options?: SlugOptions): string
Synchronous version of uniqueSlug for Set-based checkers only
| Parameter | Type | Description |
|---|---|---|
input | string | - String to slugify |
existing | Set<string> | - Set of existing slugs |
optionsoptional | SlugOptions | - Slug options |
dist
Functions
function transliterate(input: string, options?: TransliterateOptions): string
Transliterate Unicode characters to ASCII Uses a hybrid approach for optimal bundle size: 1. Custom transliteration function (if provided) 2. Custom character replacements 3. Default replacement map (common symbols, Germanic, Nordic, etc.) 4. NFD normalization for diacritics (native, 0 bytes)
| Parameter | Type | Description |
|---|---|---|
input | string | - String to transliterate |
optionsoptional | TransliterateOptions | - Transliteration options |
function sanitize(input: string, options?: SanitizeOptions): string
Sanitize a string by removing/replacing unwanted characters
| Parameter | Type | Description |
|---|---|---|
input | string | - String to sanitize |
optionsoptional | SanitizeOptions | - Sanitization options |
function separateWords(input: string, preserve?: string[]): string[]
Separate words from a string Handles multiple patterns: - Existing separators (spaces, hyphens, underscores, slashes, dots) - camelCase → camel Case - PascalCase → Pascal Case - FOOBar → FOO Bar (consecutive caps) - foo2Bar → foo 2 Bar (numbers)
| Parameter | Type | Description |
|---|---|---|
input | string | - String to separate into words |
preserveoptional | string[] | - Characters to preserve (not treat as separators) |
function escapeRegex(str: string): string
Escape special regex characters
| Parameter | Type | Description |
|---|---|---|
str | string |
Variables
Record<string, string>Default character replacements for common symbols and special characters Optimized for bundle size while covering most common cases Strategy: - NFD normalization handles accented letters (é→e, ñ→n, ü→u, ö→o, ä→a, etc.) - This map only includes characters that NFD doesn't handle - Matches behavior of
dist/slug
Functions
function slug(input: string, options?: SlugOptions): string
Convert a string to a URL-safe slug
| Parameter | Type | Description |
|---|---|---|
input | string | - String to slugify |
optionsoptional | SlugOptions | - Slugification options |
dist/slug
Functions
function slug(input: string, options?: SlugOptions): string
Convert a string to a URL-safe slug
| Parameter | Type | Description |
|---|---|---|
input | string | - String to slugify |
optionsoptional | SlugOptions | - Slugification options |
Taxes calculated at checkout based on your location.