ts-utils: TypeScript utilita knižnica pokrývajúca takmer všetko
Viac ako dvadsať utilita modulov pre TypeScript pokrývajúcich reťazce, polia, dátumy, matematiku, farby, kryptografiu, URL adresy, médiá a ďalšie. Jeden balíček, konzistentne typizovaný, postavený s Bun.
Každý TypeScript projekt hromadí rovnaké utility. Funkcia na skracovanie reťazca. Debounce pomocník. Niečo na formátovanie čísla s čiarkami. Funkcia na konverziu farieb, ktorú si vytiahol zo Stack Overflow pred rokmi.
@germondai/ts-utils je môj pokus dať to všetko do jedného konzistentne udržiavaného, plne typizovaného balíčka namiesto kopírovania medzi projektmi.
Čo je v ňom
Knižnica je organizovaná do modulov, každý pokrývajúci konkrétnu doménu:
string: orezanie, veľkosť písmen, skrátenie, generovanie slugov, interpolačné pomocníky.
array: chunking, deduplikácia, splošťovanie, radenie, zoskupovanie, miešanie.
object: hlboké zlúčenie, hlboký klon, filtrovanie kľúčov, transformačné utility.
math: clampovanie, zaokrúhľovanie, generovanie rozsahov, štatistické pomocníky.
time: formátovanie, parsovanie, výpočet trvania, relatívne časové reťazce.
color: konverzie hex/rgb/hsl, kontroly svetlosti, miešanie farieb.
url: budovanie, parsovanie, manipulácia query stringom, path utility.
regex: predpripravené vzory pre e-maily, URL adresy, slugy, heslá a ďalšie.
crypto: hashovacie pomocníky, generovanie UUID, utility náhodných reťazcov.
data: serializácia, validačné pomocníky, schéma utility.
media: detekcia MIME typu, formátovanie veľkosti súboru, pomocníky rozmerov obrázkov.
promise: logika opakovania, timeoutové obaly, pomocníky súbežnosti.
function: debounce, throttle, memoize, compose.
type: kontroly typov za runtime a zužujúce utility.
convertor: konverzie jednotiek, konverzia číselnej základne, kódovacie utility.
normalize: normalizácia vstupu pre mená, telefónne čísla, adresy.
collection: nemenné operácie zbierok.
constants: bežné konštantné hodnoty používané naprieč projektmi.
errors: typizované triedy chýb a utility na spracovanie chýb.
size: formátovanie bajtov, utility veľkosti viewportu.
Inštalácia
bun add @germondai/ts-utils
# alebo
npm install @germondai/ts-utils
Všetko je exportované z root balíčka s plnými TypeScript typmi. Tree-shaking funguje, takže bundluješ len to, čo skutočne importuješ.
Prečo jeden balíček
Alternatívou je kopírovanie utilít medzi projektmi alebo udržiavanie samostatných mikro-balíčkov pre každú doménu. Oboje vytvára drift: string utility v projekte A sa odchýlia od tých v projekte B a nabudúce, keď budeš musieť opraviť bug, opravuješ ho na dvoch miestach.
Jeden balíček znamená jeden zdroj pravdy. Oprav to raz, aktualizuj to všade.
Zdrojový kód je na GitHube pod licenciou MIT.