routie dev init since i didn't adhere to any proper guidance up until now

This commit is contained in:
2026-04-29 22:27:29 -06:00
commit e1dabb71e2
15301 changed files with 3562618 additions and 0 deletions
@@ -0,0 +1,35 @@
import { computeOrderedValue } from './compute-ordered-value.js'
import { buildStringFormatter } from './build-string-formatter.js'
import { compare } from 'natural-orderby'
/**
* Compares two strings using natural sort order.
*
* Natural sorting handles embedded numbers intelligently, so "item2" comes
* before "item10". Applies string formatting based on options before performing
* the comparison.
*
* @param a - The first string to compare.
* @param b - The second string to compare.
* @param options - Comparison options.
* @param options.specialCharacters - How to handle special characters.
* @param options.ignoreCase - Whether to ignore case differences.
* @param options.locales - The locale(s) to use for comparison.
* @param options.order - The order direction ('asc' or 'desc').
* @returns A negative number if a < b, positive if a > b, or 0 if equal.
*/
function compareNaturally(
a,
b,
{ specialCharacters, ignoreCase, locales, order },
) {
let naturalCompare = compare({ locale: locales.toString() })
let formatString = buildStringFormatter({
specialCharacters,
ignoreCase,
})
return computeOrderedValue(
naturalCompare(formatString(a), formatString(b)),
order,
)
}
export { compareNaturally }