Predstavljamo new-js-clock
Pred več kot 15 leti sem objavil majhen jQuery vtičnik z imenom JS-Clock. Bil je to preprost pripomoček, ki je prikazoval tiktakajoče ure znotraj elementa DOM — koristen, preprost in popolnoma v duhu svojega časa. Bil je odvisen od jQuery, imel je nekaj težav s podporo za več instanc in po tistem prvem izdaju ni bil nikoli smiselno posodobljen.
Danes se to spreminja. Objavljam new-js-clock 1.0.0 — od temeljev prepisano različico v TypeScriptu, ki ohranja duha izvirnika in za seboj pušča vsako njegovo omejitev. Vidite jo v akciji na demo strani.
Kaj je novega v 1.0.0
Vse, kar je prišlo s to izdajo:
- 🔒 TypeScript — Popolna varnost tipov s celovitimi vmesniki po celotni kodi.
- 🌐 Zbirka testov E2E + enota — Deterministična pokritost Jest plus Selenium E2E testi v pravih brskalnikih, vključno z razširjenim preverjanjem vedenja v zavihkih v ozadju.
- 📦 Nič odvisnosti — Čisti vanilla JavaScript. Brez jQuery.
- 🐛 Popravki napak — Podpora za več instanc zdaj deluje pravilno — to je bila glavna težava v različici 0.8.
- ⚡ Sodobni API — Čist, intuitiven API z ustreznimi metodami instanc na vsakih ustvarjenih urah.
- 🧪 Popolnoma preizkušeno — 162 determinističnih testov Jest s pokritostjo vrstic 99,74 %, pokritostjo stavkov 99,02 %, pokritostjo funkcij 100 % in pokritostjo vej 98,32 %.
- 🐳 Dockerizirana E2E mreža — Selenium Grid, ki poganja headless Chrome, Firefox in Edge lokalno in v CI prek
pnpm run e2e:docker. - 📱 ES moduli — Uvozi ES Module s podporo za tree-shaking, skupaj z bundli CommonJS in IIFE.
- 🌍 Časovni pasovi z zavedanjem poletnega časa — Podpora za IANA časovne pasove z avtomatskim upravljanjem poletnega časa.
- ⏱️ Način štoparice — Nova štoparica, ki šteje od 00:00:00.
- 🏁 Časi krogov in razdelkov — Beležite čase krogov (delta) in kumulativne čase (split) v načinu štoparice.
- 📊 Najboljši/najslabši krog — Vgrajene pomožne funkcije za iskanje najhitrejšega in najpočasnejšega kroga v seji.
- 🎯 Visoko ločljivo merjenje časa — Delte krogov merjene prek
performance.now()z natančnostjo pod milisekundo.
Namestitev
npm install new-js-clock
# ali
pnpm add new-js-clock Na voljo tudi prek CDN za neposredno uporabo v brskalniku — oglejte si README za unpkg in jsDelivr povezave.
Zakaj je trajalo tako dolgo?
Iskreno? Življenje. Izvirni JS-Clock je bil napisan na prošnjo mojega pokojnega prijatelja Gustava Beltrãa (tedanjega mojstra PHP, s katerim sem imel privilegij delati več kot enkrat) za uporabo v notranjih korporativnih nadzornih ploščah in na enostranskih spletnih mestih za dogodke z obiskovalci iz različnih časovnih pasov. Opravljal je svoje delo dovolj dobro, da se nikoli ni zdelo nujno, da bi ga pregledali. Toda jQuery je že zdavnaj izginil iz modernih projektov, TypeScript je postal standard za razvoj knjižnic in napaka s podporo za več instanc me je vedno motila. Ko sem se končno usedel, da jo pravilno popravim, je imelo smisel narediti vse prav — s tipi, testi, sodobnim modulnim sistemom in dovolj funkcijami, da bo resnično koristna v letu 2026. Poleg tega jo načrtujem uporabiti v svojem naslednjem komercialnem projektu.
Bolje pozno kot nikoli.
Edinemu Jezusu Kristusu slava!