Wpisy z kategorii JavaScript
Strona 1
-
Ukradli mi magazyn
Zbliżał się wieczór. Nie było rady, dopaliłem papierosa i wsiadłem do samochodu. Zaczął padać deszcz, bębnił o dach mojego metalowego dyliżansu. Jechałem na nadbrzeże, do mojego magazynu. Wczoraj powinna być dostawa. Droga strasznie się dłużyła, jakby wraz z deszczem spadały też dodatkowe kilometry asfaltu. W końcu jednak mój stary rzęch dochrapał się na miejsce. Wysiadłem i moja brew mimowolnie się uniosła. Spodziewałem się wszystkiego, ale nie tego, że wyparuje cały budynek. Nie ukradli mi towaru, oni ukradli mi magazyn!
-
Kreda, czyli reakcja łańcuchowa
Node.js w wersji 21.7.0 dodał natywne wsparcie dla kolorków w terminalu, yay! Teraz można łatwo i przyjemnie stylować tekst w terminalu:
import { styleText } from 'node:util'; console.log( util.styleText( 'underline', util.styleText( 'italic', 'Podkreślony, pochylony tekst' ) ) ),
Hmm, powiedziałem łatwo i przyjemnie… A mówiąc to, mam na myśli tak naprawdę to, w jaki sposób zachowuje się Chalk:
import chalk from 'chalk'; console.log( chalk.underline.italic( 'Podkreślony, pochylony tekst' ) );
Zdecydowanie czytelniej i jakoś tak milej. No więc postanowiłem spróbować dorobić taki interfejs do natywnego wsparcia kolorków.
-
Uparte narzędzia
Nie tak dawno temu na fejsowych grupkach poświęconych webdevowi zobaczyłem dwie rzeczy. Jedną z nich był news o nowej wersji jakiejś popularnej JS-owej biblioteki, w którym autor zastanawiał się, jak przetłumaczyć na polski słówko opinionated. Drugą był kod startera dla aplikacji w Next.js i Tailwindzie, który zawierał 20 plików konfiguracyjnych (22, jeśli doliczyć licencję i plik
README
). Co te posty mają ze sobą wspólnego? W sumie to nic, ale skłoniły mnie do dzisiejszej refleksji. -
W odwiedzinach u Bramkarza
Słońce leniwie chowało się za widnokręgiem, rozrzucając pomarańczowe smugi po bezchmurnym, alabastrowym niebie, jakby było wielkim krakenem rozczapierzającym swoje macki. Szedłem złotożółtą plażą kontrastującą z lazurową tonią oceanu, w której odbijały się heroiczne zmagania niebios z wodną bestią. Piasek chrzęścił pod moimi stopami, jakby szepcząco skarżąc się na brutalność mego kroku. Widziałem go – siedział na leżaku, udając, że życiodajna ognista kula wciąż góruje na nieboskłonie, a jej kapryśne promienie tylko czekają, by smagać jego bladą skórę. Gdy stanąłem nad nim i pochyliłem się, miał zamknięte oczy. Drapieżny mrok rzucanego przeze mnie cienia zmusił go do spojrzenia na mnie – spojrzenia jakże zaskoczonego i pytającego. Powolnym, acz zdecydowanym, ruchem dłoni zdjąłem okulary przeciwsłoneczne i, patrząc cynicznie w jego wciąż nierozumiejące oczy, powiedziałem spokojnie ochrypłym głosem: “Wstawaj, Bramkarzu, mamy Node’a do spalenia”.
-
Piękny kod
Ostatnio doszedłem do wniosku, że do formatowania mógłbym używać jakiegoś faktycznego formatera zamiast ESLinta. Oczywistym wyborem byłby Prettier, ale nie byłbym sobą, gdybym nie pisał swojego kodu w stylu, pod który nijak się nie da Prettiera skonfigurować. A nie uśmiechało mi się zmieniać styl pisania kodu tylko po to, żeby odhaczyć sobie na liście “rozpoczęcie używania formatera”. Zacząłem szukać alternatywy i… trafiłem tak naprawdę na jedną obiecującą – dprint. Szybki, mocno konfigurowalny i ogólnie bardzo miły w pracy – tylko że brakowało mu dosłownie 3 opcji konfiguracyjnych, żeby formatował dokładnie tak, jak chcę.
Zatem zrobiłem tylko jedną logiczną rzecz… Co? Nie, oczywiście, że nie chodzi mi o przygotowanie PR-a do dprinta. Zacząłem rzeźbić własny formater!
-
Makrony
Nie tak dawno temu Bun pokazał makra. Spodobały mi się na tyle, że postanowiłem spróbować przenieść je do Rollupa.
-
Cienie przeszłości
Niektóre rzeczy w webdevie wydają się nie być przesadnie ekscytujące. No bo czymże może nas zaskoczyć atrybut
[onclick]
? Cóż, okazuje się, że wieloma rzeczami. -
Jak strzelić sobie różdżką w stopę, część 2.
W czerwcu 2021 opisywałem nieco mój pomysł na pakiet testowy dla reszty moich projektów. Ostatecznie jednak postanowiłem, że nie będę go dłużej rozwijał, ponieważ jest zbyt problematyczny. I w tym poście postaram się wyjaśnić dlaczego.
-
Tworzymy własny bundler typów
Nieco ponad rok temu opisałem proces tworzenia prymitywnego bundlera. Nie tak dawno zacząłem się zastanawiać, czy dałoby się go w prosty sposób dostosować do bundle’owania plików z definicjami typów TS-a. A że to wciąż jest faktyczny problem, postanowiłem to sprawdzić.
-
Bramkarz na urlopie
Byłem zmuszony podjąć decyzję o zakończeniu projektu Bramkarz, który rozpocząłem jakieś 2 miesiące temu. W tym wpisie pokrótce wyjaśnię dlaczego.