Bemutatjuk a new-js-clock-ot
Több mint 15 évvel ezelőtt közzétettem egy kis jQuery beépülő modult JS-Clock névvel. Egy egyszerű widget volt, amely egy ketyegő órát jelenített meg egy DOM-elemben — hasznos, egyszerű és teljesen a maga korának szülötte. jQuery-re támaszkodott, volt néhány problémája a több példány támogatásával, és az első kiadás után soha nem frissítették érdemben.
Ma ez megváltozik. Kiadom a new-js-clock 1.0.0-t — egy nulláról újraírt TypeScript-verziót, amely megőrzi az eredeti szellemét, miközben maga mögött hagyja minden korlátját. Akcióban megtekintheti a demóoldalon.
Mi az új az 1.0.0-ban
Minden, ami ebben a kiadásban megjelent:
- 🔒 TypeScript — Teljes típusbiztonság átfogó interfészekkel a teljes kódbázisban.
- 🌐 E2E + egységteszt csomag — Determinisztikus Jest lefedettség plusz Selenium E2E böngészőtesztek, beleértve a háttérlapfüleken való viselkedés kiterjesztett validálását.
- 📦 Nulla függőség — Tiszta vanilla JavaScript. jQuery nem szükséges.
- 🐛 Hibajavítások — A több példány támogatása most már helyesen működik — ez volt a fő probléma a 0.8-as verzióban.
- ⚡ Modern API — Tiszta, intuitív API megfelelő példánymetódusokkal minden létrehozott órán.
- 🧪 Teljesen tesztelt — 162 determinisztikus Jest-teszt 99,74 %-os sorlefedettséggel, 99,02 %-os utasításlefedettséggel, 100 %-os függvénylefedettséggel és 98,32 %-os ágalefedettséggel.
- 🐳 Dockerizált E2E rács — Selenium Grid, amely headless Chrome-ot, Firefoxot és Edge-t futtat helyileg és CI-ban a
pnpm run e2e:dockersegítségével. - 📱 ES modulok — ES Module importok tree-shaking támogatással, CommonJS és IIFE csomagok mellett.
- 🌍 DST-tudatos időzónák — IANA időzóna-támogatás automatikus nyári időszámítás-kezeléssel.
- ⏱️ Stopperóra mód — Új stopperóra, amely 00:00:00-tól felfelé számol.
- 🏁 Kör- és split idők — Rögzítsen köridőket (delta) és kumulatív időket (split) stopperóra módban.
- 📊 Legjobb/legrosszabb kör — Beépített segédfüggvények a leggyorsabb és leglassabb kör megtalálásához egy munkamenetben.
- 🎯 Nagy felbontású időzítés — Köridő-delták mérve
performance.now()segítségével, ezredmásodperc alatti pontossággal.
Telepítés
npm install new-js-clock
# vagy
pnpm add new-js-clock CDN-en keresztül is elérhető közvetlen böngészőhasználathoz — lásd a README-t az unpkg és jsDelivr hivatkozásokért.
Miért tartott ilyen sokáig?
Őszintén? Az élet. Az eredeti JS-Clock elhunyt barátom, Gustavo Beltrão kérésére született (akkoriban igazi PHP-mester, akivel megtiszteltetés volt együtt dolgozni több alkalommal is), hogy vállalati belső irányítópultokon és különböző időzónákból érkező látogatókkal rendelkező rendezvények egyoldalas weboldalain legyen használható. Elég jól végezte a dolgát ahhoz, hogy soha ne tűnjék sürgetőnek felülvizsgálni. De a jQuery már rég eltűnt a modern projektekből, a TypeScript könyvtárfejlesztés standard jává vált, és a több példány támogatásával kapcsolatos hiba mindig bosszantott. Amikor végre leültem rendesen kijavítani, ésszerű volt jól csinálni — típusokkal, tesztekkel, modern modulrendszerrel és annyi funkcióval, hogy 2026-ban valóban hasznos legyen. Ráadásul tervezem, hogy a következő kereskedelmi projektemben is felhasználom.
Jobb későn, mint soha.
Egyedül Jézus Krisztusnak legyen dicsőség!