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()の呼び出しを無視できるようになりました。