Deno v1.40

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

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

deno_stdでのワークスペースの導入について

deno_stdワークスペースdeno publish“fast check”などの導入に向けた準備が進んでいるようです。

chore: set up workspace publish from CI #4210

もし今後、パッケージの公開やワークスペースの利用などを検討されている際は、参考になるかもしれません。

std/kvについて

deno_std/kvモジュールの開発が行われているようです。

feat: std/kv

まだ入るかどうかは不明なのですが、今後、こちらからDeno KV関連のユーティリティが提供されていく可能性がありそうです。

Deno v1.40.1

Deno v1.40.1がリリースされています。

v1.40.0deno lspにおいてデフォルトでcompilerOptions.experimentalDecoratorsが無効化されていなかったため、改めて無効化されています。

Deno v1.40.2

Deno v1.40.2がリリースされています。

Deno.FsFileinstanceofが動作しなくなっていた問題が修正されています。

また、v1.40.0で導入された非推奨API使用時の警告メッセージが簡略化されています。

もし、v1.40.0時点での詳細な警告メッセージへ戻したい場合は、DENO_VERBOSE_WARNINGSを設定する必要があります。

deno_std v0.213.0

deno_std v0.213.0がリリースされています。

破壊的変更

非推奨化されていたモジュールやAPIが削除されています。

  • std/http/cookie_map.tsが削除されています。
  • std/semver/format.ts: function format(semver: SemVer, style?: FormatStyle): string形式が削除されています。
  • std/semver/compare_build.tsが削除されています。
  • std/semver/rsort.tsが削除されています。(reverseSortへの移行が推奨されます)

非推奨化

std/path

std/path/constants.tsが追加されています。

これに合わせてstd/path/separator.tsが非推奨化されました。このファイルで公開されていたSEPSEPARATORに、SEP_PATTERNSEPARATOR_PATTERNにリネームされており、それぞれconstants.tsからの読み込みが推奨されます。

std/semver

  • std/semver/types.ts: SemVerRangeが非推奨化されています。代わりにRangeが追加されているため、そちらのへの移行が推奨されます。
  • std/semver/outside.tsが非推奨化されています。以下への移行が推奨されます。
  • 以下のAPIがリネームされています。リネーム前の名称は非推奨化されています。
    • eqequals
    • neqnotEquals
    • ltlessThan
    • ltelessOrEqual
    • gtgreaterThan
    • gtegreaterOrEqual

非推奨API使用時の警告について

一部非推奨APIの使用時に警告を表示する仕組みが導入されています。

std/collections/map_values.ts

mapValuesの引数であるtransformer関数の第2引数としてキーが渡されるように改善されました。

std/io/buffer.ts

Deno v1.40でDeno.Bufferが非推奨化された関係でstd/io/buffer.tsの非推奨化が解除されています。

std/log

ハンドラーusingに対応されています。

Oak 13.0.0

Oak 13.0.0がリリースされています。

リクエストボディ(ctx.request.body)の取り扱いがRequestをベースとするよう変更されています。

// v13
const body = context.request.body;
if (body.type() === "json") {
  const json = await body.json();
  // ...
}


// v12
const body = context.request.body();
if (body.type === "json") {
  const json = await body.value;
  // ...
}

また、Deno v1.40でのDeno.serveHttpの非推奨化に合わせて、Deno.serveを使用するよう実装が変更されているようです。その影響で、OakでもDeno.serveの方で実装されるまではHTTP/2が利用できなくなるようです。

Denoの静的サイトジェネレータLumeの紹介

Lume v2に関する解説記事が公開されています。