Neo Zero

slug

Pool

Modern URL slug generation library - Unicode transliteration, customizable options, unique slugs. Zero dependencies, TypeScript-first, tree-shakeable. Modernizes the slugify ecosystem.

$ lpm install @lpm.dev/neo.slug
18 exportsTypeScript

dist

Functions

transliterate
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)

ParameterTypeDescription
input
string- String to transliterate
optionsoptional
TransliterateOptions- Transliteration options
sanitize
function sanitize(input: string, options?: SanitizeOptions): string

Sanitize a string by removing/replacing unwanted characters

ParameterTypeDescription
input
string- String to sanitize
optionsoptional
SanitizeOptions- Sanitization options
separateWords
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)

ParameterTypeDescription
input
string- String to separate into words
preserveoptional
string[]- Characters to preserve (not treat as separators)
escapeRegex
function escapeRegex(str: string): string

Escape special regex characters

ParameterTypeDescription
str
string

Variables

DEFAULT_REPLACEMENTSRecord<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

createSlugger
function createSlugger(defaultOptions?: SlugOptions): Slugger

Create a custom slugger with preset options Useful for reusing the same slug configuration multiple times

ParameterTypeDescription
defaultOptionsoptional
SlugOptions- Default options to apply to all slugs
uniqueSlug
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

ParameterTypeDescription
input
string- String to slugify
checker
ExistenceChecker- Set of existing slugs or function to check existence
optionsoptional
SlugOptions- Slug options
uniqueSlugSync
function uniqueSlugSync(input: string, existing: Set<string>, options?: SlugOptions): string

Synchronous version of uniqueSlug for Set-based checkers only

ParameterTypeDescription
input
string- String to slugify
existing
Set<string>- Set of existing slugs
optionsoptional
SlugOptions- Slug options

dist/advanced

Functions

createSlugger
function createSlugger(defaultOptions?: SlugOptions): Slugger

Create a custom slugger with preset options Useful for reusing the same slug configuration multiple times

ParameterTypeDescription
defaultOptionsoptional
SlugOptions- Default options to apply to all slugs
uniqueSlug
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

ParameterTypeDescription
input
string- String to slugify
checker
ExistenceChecker- Set of existing slugs or function to check existence
optionsoptional
SlugOptions- Slug options
uniqueSlugSync
function uniqueSlugSync(input: string, existing: Set<string>, options?: SlugOptions): string

Synchronous version of uniqueSlug for Set-based checkers only

ParameterTypeDescription
input
string- String to slugify
existing
Set<string>- Set of existing slugs
optionsoptional
SlugOptions- Slug options

dist

Functions

transliterate
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)

ParameterTypeDescription
input
string- String to transliterate
optionsoptional
TransliterateOptions- Transliteration options
sanitize
function sanitize(input: string, options?: SanitizeOptions): string

Sanitize a string by removing/replacing unwanted characters

ParameterTypeDescription
input
string- String to sanitize
optionsoptional
SanitizeOptions- Sanitization options
separateWords
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)

ParameterTypeDescription
input
string- String to separate into words
preserveoptional
string[]- Characters to preserve (not treat as separators)
escapeRegex
function escapeRegex(str: string): string

Escape special regex characters

ParameterTypeDescription
str
string

Variables

DEFAULT_REPLACEMENTSRecord<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

slug
function slug(input: string, options?: SlugOptions): string

Convert a string to a URL-safe slug

ParameterTypeDescription
input
string- String to slugify
optionsoptional
SlugOptions- Slugification options

dist/slug

Functions

slug
function slug(input: string, options?: SlugOptions): string

Convert a string to a URL-safe slug

ParameterTypeDescription
input
string- String to slugify
optionsoptional
SlugOptions- Slugification options
Unlimited AccessInstall as many Pool packages as you need.
Fund Real WorkEvery install you run sends revenue directly to the developer who built it.

Taxes calculated at checkout based on your location.

Weekly Installs
5
Version
1.0.0
Published
LicenseMIT
Size233.71 KB
Files27
Node version>= 18
TypeScriptYes