Deno v1.20.2
permissions
オプションへの破壊的変更について
Deno v1.20で行われる予定であったpermissions
オプションへの破壊的変更が正式に反映されました。
詳細については下記を参照ください。
deno task
コマンドの改善
deno task
コマンドの内部で使われているdeno_task_shellがアップデートされています。
これにより、cp -R
や|&
のサポートなどが行われています。
deno lsp
でenablePaths
オプションがサポート
deno lsp
でenablePathsオプションがサポートされました。
ワークスペース内の特定のフォルダでのみdeno lsp
を有効化したいが、それ以外のフォルダでは組み込みのJavaScript/TypeScriptランゲージサーバを使いたいようなときに設定することが想定されているようです。
その他の変更
--unstable
なしでdeno bench
を実行した際のエラーメッセージが改善deno upgrade
コマンドでDENO_CERT
環境変数による証明書の指定がサポート- HTTPサーバのパフォーマンスチューニング
など
https://github.com/denoland/deno/releases/tag/v1.20.2
Deno v1.20.3
Deno v1.20.2に続けて、v1.20.3もリリースされています。
セキュリティに関する修正が含まれるので早めのアップデートが推奨されています。
変更点:
- Denoは
fetch
の第一引数としてURL
の指定をサポートしていますが、この形式での呼び出しが非推奨化されました。 (v2で削除される予定のようです) - FFI関連の各API(
Deno.UnsafeFnPointer#call
など)でちゃんと--unstable
オプションが与えられているかチェックされるよう変更されました。 Deno.RunOptions
のcmd
プロパティがreadonly
に変更されました。
https://github.com/denoland/deno/releases/tag/v1.20.3
deno_std v0.131.0
deno_std v0.131.0がリリースされました。
collections
BinaryHeap
が追加されました。
import { BinaryHeap } from "https://deno.land/std@0.132.0/collections/binary_heap.ts";
const heap = new BinaryHeap<number>();
heap.push(4);
heap.push(1);
heap.push(10);
heap.push(6);
heap.push(3);
console.log(Array.from(heap)); // [ 10, 6, 4, 3, 1 ]
async
async/abortable
モジュールの内部関数であったabortablePromise
とabortableAsyncIterable
が公開APIに変更されました。
node
node/events
でEventTargetが実装されました。node/console
でConsole
コンストラクタが実装されました。worker_threads
パッケージが実装されました。process.allowedNodeEnvironmentFlags
が実装されました。
https://github.com/denoland/deno_std/releases/tag/0.131.0
deno_std v0.132.0
deno_std v0.132.0がリリースされました。
collections
モジュールにBSTree
(二分探索木)とRBTree
(赤黒木)が追加されています。
import { BSTree } from "https://deno.land/std@0.132.0/collections/bs_tree.ts";
const tree = new BSTree<number>();
tree.insert(4);
tree.insert(2);
tree.insert(10);
tree.insert(9);
tree.insert(1);
console.log(Array.from(tree)); // [ 1, 2, 4, 9, 10 ]
また、node/fs
でfs.createReadStream()
が実装されています。
https://github.com/denoland/deno_std/releases/tag/0.132.0
deno check
コマンド
Deno本体にdeno check
コマンドを追加するPRが作成されています。
feat: Add “deno check” subcommand for type checking (#14072)
このコマンドは、現在のdeno cache
コマンドと同様に機能します。
また、deno run
コマンドなどに--check
オプションが追加されており、将来的にはこれを指定しないと型チェックが行われなくなる想定のようです。
また、DENO_FUTURE_CHECK
環境変数も追加されており、これに1
を設定した場合もdeno run
の型チェックが無効化されます。(将来的なデフォルトの挙動)
現在の予定としては、下記のスケジュールが想定されているようです。(https://github.com/denoland/deno/issues/11786#issuecomment-1076188236)
- v1.21:
deno check
コマンドを追加 - v1.23:
deno run
での型チェックをデフォルトで無効化
deno serve
コマンド
Deno本体にdeno serve
コマンドを追加するPRが作成されています。
使い方としては、Request
を引数として受け取りResponse
またはPromise<Response>
を返す関数をdefault export
したファイルを用意します。
export default function handler(req: Request): Response {
return new Response("Hello world!");
}
このファイルを引数にdeno serve
を実行すると、定義されたハンドラを元にHTTPサーバが起動されます。
$ deno serve --port 8888 handler.ts
deployctl v1.1.0
deployctl v1.1.0がリリースされました。
CLIとGitHubアクションでImport mapsファイルの指定がサポートされました (import-map
オプション)
https://github.com/denoland/deployctl/releases/tag/1.1.0
esm.sh v74
?no-require
パラメータがサポートされ、ESMパッケージ中のrequire()
の呼び出しを無視できるようになりました。