fresh v1.5

fresh v1.5がリリースされました。

以下に内容をまとめたため、よろしければそちらを参照いただければと思います。

Deno v1.37.2

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

Deno.serve

Deno.serveでUnixドメインソケットがサポートされています。(unstable)

Deno.servepathオプションを指定することで有効化されます。


また、Deno.serveから返却されるDeno.Serverがthenableオブジェクトではなくなりました。

これにより、async関数から直接Deno.Serverreturnできなかった問題が解消されたようです。

TransformStreamでキャンセルがサポート (cancelオプションの追加)

readableがキャンセルされたタイミング または writableが中断されたタイミングでcancelオプションに指定された関数が呼ばれるようです。


TransformStream cleanup using “Transformer.cancel” (whatwg/streams#1283)

deno jupyter

deno.land/x/displayのDeno本体への追加

deno.land/x/displayがDeno本体に取り込まれたようです。

これにより、以下のAPIが追加されています。

Deno.jupyter.broadcast

Deno.jupyter.broadcastに以下のオプションが追加されています。

  • metadataオプション
  • buffersオプション (バイナリデータを送信したい場合に使用できます)

Deno.testのサポート

deno repldeno jupyterDeno.testがサポートされています。

$ deno repl
Deno 1.37.2
exit using ctrl+d, ctrl+c, or close()
> Deno.test(function ok() {});
ok ... ok (4ms)

ok | 1 passed | 0 failed (0ms)
undefined

Jupyter.display

Symbol.for("Jupyter.display")に設定した関数からPromiseの返却がサポートされています。

deno lsp

deno.jsonまたはpackage.jsonの変更時にクライアントへ通知(deno/didChangeDenoConfiguration)が送信されるようになりました。

その他の改善点

  • --watch--inspectの併用がサポートされました。
  • FormDataで複数のヘッダーがサポートされました。
  • 同じファイルパスを参照するDeno.Kvインスタンスが複数存在する場合、あるインスタンスでenqueueされたメッセージが全てのインスタンスのlistenQueueで購読できるように改善されました。

deno_std v0.204.0

deno_std v0.204.0がリリースされました。

std/path - モジュール構造の整理

std/pathモジュールの構造が整理されています。

  • std/path/posix/ディレクトリの追加
  • std/path/windows/ディレクトリの追加
  • std/path/posix.tsの非推奨化
  • std/path/win32.tsの非推奨化

std/front_matter - いくつかのAPIの非推奨化

以下のAPIが非推奨化されています。

  • Format
  • 以下のモジュールのtest() (今後はstd/front_matter/test.tsの使用が推奨されます)
    • std/front_matter/any.ts
    • std/front_matter/json.ts
    • std/front_matter/toml.ts
    • std/front_matter/yaml.ts

std/crypto/crypto.ts

BLAKE2B-128がサポートされました。

std/archive/untar.ts

tarファイルの中に含まれるシンボリックリンク先の情報がlinkNameプロパティから参照できるようになりました。

freshのイテレーションプラン (2023/10〜2023/11)

2023/10〜2023/11までのfreshのイテレーションプランが公開されています。

October - November 2023 iteration plan #1891

今のところ、View TransitionsのサポートUnoCSSプラグインなどの開発が想定されているようです。

2023年Q4におけるNode.js互換性の改善計画について

2023年Q4におけるNode.js互換性の改善計画が公開されています。

☂️ Node/npm compatibility issue for Q4 2023 #20851

今のところ、以下の対応などが検討されているようです。

  • npmyarnなどで作成されたnode_modules/のサポート (BYONM)
  • ライフサイクルスクリプト(preinstall/postinstallなど)のインタラクティブな実行のサポート
  • npm workspaceのサポート

このissueは継続的に更新される可能性があるようなので、もし興味がある際はSubscribeしておくとよいかもしれません。

unstable APIの詳細な制御の仕組みについて

以下のissueでDenoのunstable APIの利用に関して、より詳細に制御できるような仕組みを導入することが提案されています。

Granular feature flag system #20779

まだ導入されるかどうかはわかりませんが、--unstable-kv--unstable-httpなど、関連するカテゴリごとにunstable APIを有効化するためのオプションなどが入る可能性もありそうです。

refactor: FeatureChecker integration in ext/ crates #20797

社内で使う npm パッケージの作成に Deno を採用した話

社内用npmパッケージの開発におけるDenoとdntの採用に関する記事が公開されています。