Deno v1.36.4

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

Deno KV

Deno KVでデータベースへのリモート接続がサポートされました。これにより、ローカルからDeno Deploy上のDeno KVデータベースへ接続ができるようになったようです。

Deno.openKvhttp:/https:形式のURLを与えると、従来までのSQLiteベースのバックエンドは使用されず、代わりにHTTP経由でデータベースへリモート接続されます。

このリモート接続機能はDeno Deployに限らず、KV Connectというプロトコルさえ実装されていれば、任意のデータベースへ接続が可能なようです。

また、この機能を利用するには、以下の設定が必要なようです:

  • --allow-envallow-netオプション
  • DENO_KV_ACCESS_TOKEN環境変数 (Deno Deployで発行した認証用アクセストークン)

KV Connectプロトコルについて:

以下のページなどにドキュメントが存在します。

deno lsp

suggest.completeFunctionCallsオプションが実装:

このオプションにtrueを設定すると、関数の引数と括弧()が入力補完されます。

vscode-denoでは"deno.suggest.completeFunctionCalls": trueオプションで有効化できるようです。

{
  // ...
  "deno.suggest.completeFunctionCalls": true
}

テストエクスプローラーに関するバグ修正:

  • TestContext.stepを使っていると、vscodeのテストエクスプローラー経由でテストを実行した際に、LSPがパニックしてしまう問題が修正されました。
  • テストエクスプローラーからテストを実行する際に、対象テストファイルからはimportしていないファイルも実行されてしまう問題が修正されました。

deno_std v0.201.0

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

std/dotenv - パーミッションに関する改善

std/dotenvでパーミッションをより厳格に設定できるように実装が改善されました。

変数展開やexportオプションを使用しない場合、--allow-envオプションの指定が不要になります。

また、変数展開やexportオプションを使用する場合のパーミッションの取り扱いも改善されています。具体的には、以下のような.envファイルを読み込む場合、--allow-env=BAZの指定のみで動作します。(今までは--allow-envによって全ての環境変数の読み込みを許可する必要がありました。)

FOO=bar
HOGE=piyo${BAZ}

これらの変更に合わせて、restrictEnvAccessToオプションが非推奨化されています。

std/urlが追加

新規モジュールとしてstd/urlが追加されました。

URLに関する様々なユーティリティが提供されています。

import { dirname } from "https://deno.land/std@0.201.0/url/dirname.ts";

const url = dirname("https://example.com/foo/bar");
console.info(url.href); // => "https://example.com/foo"

std/semver - 非推奨APIの削除 (破壊的変更)

std/semverから非推奨化されていたAPIが削除されています。

具体的には、以下のAPIが削除されています:

  • valid/satisfies/minVersion/maxVersion/major/minor/patch/prerelease/toComparators/validRange/intersects

また、以下の各関数で文字列引数を受け取る形式とincludePrereleaseオプションが削除されています。(今後は文字列ではなくSemVerオブジェクトを渡す必要あるようです):

  • cmp/compare/compareBuild/difference/eq/gt/gte/gtr/increment/lt/lte/ltr/maxSatisfying/minSatisfying/neq/outside/rcompare/rsort/sort

それ以外には、parseincludePrereleaseオプションが削除されています。

使用率の低いモジュール/APIの非推奨化 (破壊的変更)

以下のモジュールとAPIが非推奨化されました。

std/yaml - バイナリ型の取り扱いが変更 (破壊的変更)

バイナリ型(!!binary "..BASE64..")がBufferではなくUint8Arrayとしてパース/シリアライズされるように挙動が変更されています。

std/fmt/colors.ts - stripColorstripAnsiCodeにリネーム (破壊的変更)

リネーム前のstripColorについては非推奨化されており、v1で削除される予定のようです。

std/streams/readable_stream_from_iterable.tsが削除 (破壊的変更)

今後はReadableStream.fromの使用が推奨されます。

std/log - RotatingFileHandler#setupが同期的に動作するように修正

RotatingFileHandlersetupメソッドの戻り値がPromiseからundefinedに変更されました。

背景としては、FileHandlerなどの他のハンドラーはsetupが同期的に動作するにも関わらず、RotatingFileHandlerのみそうではなかったため、一貫性の向上のため実施されたようです。

deno_kv_oauth v0.6.0

deno_kv_oauth v0.6.0がリリースされています。

freshプラグインが実装されているようです。