Deno 1.4 z zintegrowanym pokryciem testów i API WebSocket
Deno to bezpieczne środowisko wykonawczym dla JavaScript i TypeScript. W czerwcu pisaliśmy o wersji 1.0 oddanej do produkcji. Z kolei w tym tygodniu otrzymaliśmy wiadomość o kolejnym wydaniu. Nowa wersja Deno 1.4 zapewnia bardziej rygorystyczne sprawdzanie typu, zintegrowane pokrycie testów, a także automatyczne ponowne uruchamianie. Wersję 1.4 nazwano największą wersją tego środowiska.
WebSocket API w Deno 1.4
Najważniejszą funkcją jest przede wszystkim standardowy interfejs API WebSocket. Dostępny jest on we wszystkich nowoczesnych przeglądarkach. Dzięki niemu można się komunikować ze zdalnymi serwerami przez protokół WebSocket.
// Start the connection to the WebSocket server at echo.websocket.org const ws = new WebSocket("ws://echo.websocket.org/"); // Register event listeners for the open, close, and message events ws.onopen = () => { console.log("WebSocket ready!"); // Send a message over the WebSocket to the server ws.send("Hello World!"); }; ws.onmessage = (message) => { // Log the message we recieve: console.log("Received data:", message.data); // Close the websocket after receiving the message ws.close(); }; ws.onclose = () => console.log("WebSocket closed!"); ws.onerror = (err) => console.log("WebSocket error:", err.error); // When running this the following is logged to the console: // // WebSocket ready! // Received data: Hello World! // WebSocket closed!
Ponadto, w tej wersji nie znajdziemy już metod łączenia protokołu WebSocket z std/ws
Zintegrowany monitor plików
Programiści otrzymali teraz możliwość ponownego uruchomienia skryptu, jeśli zmieni się w nim jakaś zależność. W celu skorzystania z niego programiści uruchamiają skrypt tradycyjnie, dodając jeszcze flagę –watch. Funkcja nie jest jeszcze stabilna, więc czasu jej ustabilizowania należy dodać jeszcze flagę –unstable. Ponadto dodawana flaga nie przyjmuje żadnych argumentów do katalogów lub plików do obejrzenia. Automatycznie określa i obserwuje wszystkie lokalne importy pliku.
Pokrycie testów w Deno 1.4
Nowa wersja Deno oferuje także zintegrowane pokrycie testów. Wykorzystując flagę –coverage dla deno test, programiści mają też możliwość znalezienia fragmentów kodu nieobjętego testami. W tym przypadku opcja także nie jest stabilna, więc należy dodać flagę –unstable.
Opcja unstable
Od teraz opcje kompilatora isolatedModules oraz importsNotUsedAsValues są domyślnie włączone. Pozwalają one na bardziej rygorystyczne kontrole w kompilatorze TypeScript. Z tego powodu najprawdopodobniej pojawią się nowe błędy. Pojawiają się one gdy interfejsy lub aliasy typów są importowane lub reeksportowane.
ERROR TS1205: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'. ERROR TS1371: This import is never used as a value and must use 'import type' because the 'importsNotUsedAsValues' is set to 'error'.
Styl CSS w console.log
W większości przeglądarek stylizowanie wiadomości console.log odbywa się za pomocą CSS. Tak jest też teraz w Deno 1.4. Przede wszystkim wystarczy dodać parametr %c formatu do wiadomości i określić style, które będą zastosowane jako argument do console.log:
console.log("%cStop!", "color:red;font-weight:bold"); // This will print a bold red `Stop!` to the console.
Instalacja Deno 1.4
Przede wszystkim aktualizację środowiska można przeprowadzić przez uruchomienie deno upgrade. Instalując Deno po raz pierwszy można użyć jednej z poniższych funkcji.
# Using Shell (macOS and Linux): curl -fsSL https://deno.land/x/install/install.sh | sh # Using PowerShell (Windows): iwr https://deno.land/x/install/install.ps1 -useb | iex # Using Homebrew (macOS): brew install deno # Using Scoop (Windows): scoop install deno # Using Chocolatey (Windows): choco install deno
Kod źródłowy Deno 1.4 można także znaleźć na GitHub.