Deno v1.36.4
Deno v1.36.4がリリースされました。
Deno KV
Deno KVでデータベースへのリモート接続がサポートされました。これにより、ローカルからDeno Deploy上のDeno KVデータベースへ接続ができるようになったようです。
Deno.openKv
にhttp:
/https:
形式のURLを与えると、従来までのSQLiteベースのバックエンドは使用されず、代わりにHTTP経由でデータベースへリモート接続されます。
このリモート接続機能はDeno Deployに限らず、KV Connectというプロトコルさえ実装されていれば、任意のデータベースへ接続が可能なようです。
また、この機能を利用するには、以下の設定が必要なようです:
--allow-env
とallow-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
それ以外には、parseのincludePrerelease
オプションが削除されています。
使用率の低いモジュール/APIの非推奨化 (破壊的変更)
以下のモジュールとAPIが非推奨化されました。
- std/crypto/crypto.tsの
crypto.subtle.timingSafeEqual
- std/bytes/bytes_list.ts
- std/encoding/binary.ts
- std/permissions
- std/signal
std/yaml
- バイナリ型の取り扱いが変更 (破壊的変更)
バイナリ型(!!binary "..BASE64.."
)がBufferではなくUint8Array
としてパース/シリアライズされるように挙動が変更されています。
std/fmt/colors.ts
- stripColor
がstripAnsiCode
にリネーム (破壊的変更)
リネーム前のstripColorについては非推奨化されており、v1で削除される予定のようです。
std/streams/readable_stream_from_iterable.ts
が削除 (破壊的変更)
今後はReadableStream.from
の使用が推奨されます。
std/log
- RotatingFileHandler#setup
が同期的に動作するように修正
RotatingFileHandlerのsetup
メソッドの戻り値がPromise
からundefined
に変更されました。
背景としては、FileHandlerなどの他のハンドラーはsetup
が同期的に動作するにも関わらず、RotatingFileHandler
のみそうではなかったため、一貫性の向上のため実施されたようです。
deno_kv_oauth v0.6.0
deno_kv_oauth v0.6.0がリリースされています。
freshプラグインが実装されているようです。