Deno v1.16.4
Deno v1.16.4がリリースされました。
このリリースはバグ修正がメインです。
変更点:
SubtleCrypto.encryptで指定されたキーとアルゴリズムが一致しない場合、例外が投げられるようになりましたdeno testのOpサニタイザーの安定性が向上しましたWebSocketStreamの作成後にAbortControllerで中断すると、AbortErrorではなくDeno.errors.BadResourceエラーが発生する問題が修正されましたWorker#terminateを呼ぶと、プロセスがまれにパニックする問題が修正されました
https://github.com/denoland/deno/releases/tag/v1.16.4
deno_std v0.117.0
deno_std v0.117.0がリリースされました。
httpモジュールでの新機能の追加やnodeモジュールのNode.jsとの互換性の向上が実施されています。
httpモジュール
serveなどの関数でonErrorオプションがサポートされ、handlerで発生したエラーを補足できるようになりました
const handler = (request: Request) => {
throw new Error("Hello");
};
const servePromise = serve(handler, {
addr: "localhost:3000",
onError(_error) {
return new Response("Internal Server Error", { status: 500 });
},
});
nodeモジュール
readline:createInterface()が実装されましたprocess:process.stdin.read()で読み込みが非同期に行われるようになりましたbuffer:Bufferでbase64エンコーディングがサポートされました. またindexOf()やincludes()などの互換性も向上されていますfs:rm/rmSync/stat/statSync/writeFile/writeFileSyncなどの互換性が向上しましたutil:util.inspect()の互換性が向上しましたstreams: Node.jsとの互換性が大幅に向上しました
https://github.com/denoland/deno_std/releases/tag/0.117.0
Denoの--no-check=remoteオプションのサポートについて
以下のプルリクエストでDenoに--no-check=remoteオプションが追加されました。
内容としては、Denoを実行する際に--no-check=remoteを指定することで、リモートモジュール(URLがhttps:やhttp:で始まるモジュール)の型チェックのみをスキップさせるというものです。
$ deno run --no-check=remote main.ts
まだリリースはされていませんが、次のメジャーリリース(v1.17.0)あたりで導入されそうです。
https://github.com/denoland/deno/pull/12766
doc.deno.landがリニューアル
DenoのAPIドキュメンテーションサイトであるdoc.deno.landがリニューアルされました。
これに合わせてリポジトリがdenoland/doc_websiteからdenoland/doclandへ移行されており、内部実装もVercel+Next.jsからDeno Deploy+Oak+NanoJSX+Twindに移行されています。
https://twitter.com/deno_land/status/1466810485337120779
Opine v2.0.0
DenoのExpressポートであるOpineのv2.0.0がリリースされました。
大きな変更点として内部実装がDenoネイティブHTTPサーバ(Deno.serveHttp)に置き換えられており、パフォーマンスの向上などが期待されます。
また補足ですが、OpineはNode.js互換モードが成熟しExpressが安定して動くようになったら、メンテナンスモードへ移行される予定のようです。
- https://github.com/asos-craigmorten/opine/releases/tag/2.0.0
- https://github.com/asos-craigmorten/opine/compare/1.9.0...1.9.1
graffiti
DenoまたはNode.jsを使用してデスクトップアプリなどを開発するためのプラットフォーム
まだ開発途中の段階のようですが、Electronなどと同様にHTML/CSSなどのWeb技術を用いてデスクトップアプリを開発できるようにすることを目指しているようです。
https://github.com/cztomsik/graffiti
Denoに今後導入される新機能
Denoに今後導入される新機能という記事が公開されました。
Denoでの直近の変更内容や、2.0で導入予定の機能などについて詳しくまとめられています