mirror of
https://github.com/nicotsx/ironmount.git
synced 2025-12-10 12:10:51 +01:00
refactor: switch from go to bun
This commit is contained in:
30
apps/client/app/lib/utils.ts
Normal file
30
apps/client/app/lib/utils.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { type ClassValue, clsx } from "clsx";
|
||||
import { twMerge } from "tailwind-merge";
|
||||
|
||||
/** Conditional merge of class names */
|
||||
export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs));
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an arbitrary string into a URL-safe slug:
|
||||
* - lowercase
|
||||
* - trims whitespace
|
||||
* - replaces non-alphanumeric runs with "-"
|
||||
* - collapses multiple hyphens
|
||||
* - trims leading/trailing hyphens
|
||||
*/
|
||||
/**
|
||||
* Live slugify for UI: lowercases, normalizes dashes, replaces invalid runs with "-",
|
||||
* collapses repeats, but DOES NOT trim leading/trailing hyphens so the user can type
|
||||
* spaces/dashes progressively while editing.
|
||||
*/
|
||||
export function slugify(input: string): string {
|
||||
return input
|
||||
.toLowerCase()
|
||||
.replace(/[ ]/g, "-")
|
||||
.replace(/[^a-z0-9_-]+/g, "")
|
||||
.replace(/[-]{2,}/g, "-")
|
||||
.replace(/[_]{2,}/g, "_")
|
||||
.trim();
|
||||
}
|
||||
Reference in New Issue
Block a user