ts-utils: TypeScript utilita knihovna pokrývající téměř vše

Více než dvacet utilita modulů pro TypeScript pokrývajících řetězce, pole, data, matematiku, barvy, kryptografii, URL adresy, média a další. Jeden balíček, konzistentně typizovaný, postavený s Bun.

·2 min čtení

Každý TypeScript projekt hromadí stejné utility. Funkce pro zkracování řetězce. Debounce pomocník. Něco pro formátování čísla s čárkami. Funkce pro konverzi barev, kterou jsi vytáhl ze Stack Overflow před lety.

@germondai/ts-utils je můj pokus dát to vše do jednoho konzistentně udržovaného, plně typizovaného balíčku místo kopírování mezi projekty.

Co je v něm

Knihovna je organizována do modulů, každý pokrývající konkrétní doménu:

string: oříznutí, velikost písmen, zkrácení, generování slugů, interpolační pomocníci.

array: chunking, deduplikace, zploštění, řazení, seskupování, míchání.

object: hluboké sloučení, hluboký klon, filtrování klíčů, transformační utility.

math: clampování, zaokrouhlování, generování rozsahů, statistické pomocníky.

time: formátování, parsování, výpočet trvání, relativní časové řetězce.

color: konverze hex/rgb/hsl, kontroly světlosti, míchání barev.

url: budování, parsování, manipulace query stringem, path utility.

regex: předpřipravené vzory pro e-maily, URL adresy, slugy, hesla a další.

crypto: hashování pomocníci, generování UUID, utility náhodných řetězců.

data: serializace, validační pomocníci, schéma utility.

media: detekce MIME typu, formátování velikosti souboru, pomocníci rozměrů obrázků.

promise: logika opakování, timeoutové obaly, pomocníci souběžnosti.

function: debounce, throttle, memoize, compose.

type: kontroly typů za runtime a zužující utility.

convertor: konverze jednotek, konverze číselné základny, kódovací utility.

normalize: normalizace vstupu pro jména, telefonní čísla, adresy.

collection: neměnné operace sbírek.

constants: běžné konstantní hodnoty používané napříč projekty.

errors: typizované třídy chyb a utility pro zpracování chyb.

size: formátování bajtů, utility velikosti viewportu.

Instalace

bun add @germondai/ts-utils
# nebo
npm install @germondai/ts-utils

Vše je exportováno z root balíčku s plnými TypeScript typy. Tree-shaking funguje, takže bundluješ pouze to, co skutečně importuješ.

Proč jeden balíček

Alternativou je kopírování utilit mezi projekty nebo udržování samostatných mikro-balíčků pro každou doménu. Obojí vytváří drift: string utility v projektu A se odchýlí od těch v projektu B a příště, kdy budeš muset opravit bug, opravuješ ho na dvou místech.

Jeden balíček znamená jeden zdroj pravdy. Oprav to jednou, aktualizuj to všude.

Zdrojový kód je na GitHubu pod licencí MIT.