Deno v1.16.4

Deno v1.16.4がリリースされました。

このリリースはバグ修正がメインです。

変更点:


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が安定して動くようになったら、メンテナンスモードへ移行される予定のようです。


graffiti

DenoまたはNode.jsを使用してデスクトップアプリなどを開発するためのプラットフォーム

まだ開発途中の段階のようですが、Electronなどと同様にHTML/CSSなどのWeb技術を用いてデスクトップアプリを開発できるようにすることを目指しているようです。


https://github.com/cztomsik/graffiti

Denoに今後導入される新機能

Denoに今後導入される新機能という記事が公開されました。

Denoでの直近の変更内容や、2.0で導入予定の機能などについて詳しくまとめられています


https://qiita.com/access3151fq/items/a4b3db6bbd1e2d2d92df