Deno v1.45.3
Deno v1.45.3がリリースされています。
Node.js互換性の改善
npm workspaces
npm workspace内の複数のメンバー間で特定のパッケージのバージョンがコンフリクトした際に、それぞれのメンバー配下にnode_modulesが作られるように挙動が改善されています。(例: ./workspace-aと./workspace-bがそれそれ@foo/barパッケージのv1とv2に依存している場合、./workspace-a/node_modulesと./workspace-b/node_modulesが作られるようです)
--allow-scripts
deno.jsonでnodeModulesDir: trueが未設定の場合であっても、コマンドラインで--node-modules-dirが指定されていれば--allow-scriptsが動作するように改善されています。
node:fs
exists(Sync)のパフォーマンスが最適化されています (#24613)
また、WindowsでStats.modeに適切な値が設定されるように改善されています (chokidarがWindowsで動かない問題があったようです)
node:http
request()でBufferのsubarrayをボディに指定すると、データが欠損してしまう問題が修正されています。
node:tty
WriteStreamでhasColors()とgetColorDepth()メソッドが実装されています。
deno publish
deno publishコマンドにLICENSEファイルが含まれていない場合に警告を表示する機能が追加されています。
現状では警告が表示されるようですが、エラーとするように挙動を変更することも検討されているようです。(Error when missing license file for deno publish (denoland/deno#24676))
deno lsp
deno lspでnpm workspacesがサポートされています。
また、依存関係のキャッシュに失敗するとLSPがフリーズする問題が修正されています。
deno compile
deno compileで生成されたバイナリーでNode-APIがサポートされました。
その他
console.logなどでErrorのcauseプロパティの内容がフォーマットして出力されるように改善されています。
また、lib.deno_web.d.tsのlib.dom.d.tsやlib.webworker.d.tsとの互換性が改善されています。(#24599)
Deno v1.45.4
Deno v1.45.4がリリースされています。
deno lint
no-sloppy-importsルール
sloppy importsに関する警告がdeno lintへ移動されています。deno lintに--unstable-sloppy-importsを指定するとno-sloppy-importsルールが有効化されるようです。
構文エラーの報告
構文エラーなどが検出された際に、deno lintがエラーを報告してくれるように挙動が改善されています。
deno lsp
Infer function return typeによってnpmパッケージから提供される型が推論される際に、常にfile:形式のURLが挿入されてしまう問題が修正されています (#24344)
Node.js互換性の改善
node:os
Linuxにおいてcpus()で意図せぬ値が返されていた問題が修正されています (#24731)
node:worker_threads
MessagePortでonceメソッドが実装されています。
deno_stdのリリース
deno_stdがリリースされています。
@std/fs@1.0.0
@std/fs@1.0.0がリリースされています。
このリリースに合わせて、以下のエラーが削除されています。
SubdirectoryMoveError(move()でthrowされていたエラーです)WalkError(walk()でthrowされていたエラーです)
今後は上記エラーの代わりにDeno.errors.NotSupportedがthrowされます。
@std/streams@1.0.0
@std/streams@1.0.0がリリースされています。
このリリースに合わせて、toJson()とtoText()の引数の型定義がReadableStreamからReadableStream<string> | ReadableStream<Uint8Array>へ変更されています。
@std/expect@1.0.0
@std/expect@1.0.0がリリースされています。
@std/front-matter@1.0.0
@std/front-matter@1.0.0がリリースされています。
@std/json@1.0.0
@std/json@1.0.0がリリースされています。
@std/jsonc@1.0.0
@std/jsonc@1.0.0がリリースされています。
@std/yaml@1.0.0
@std/yaml@1.0.0がリリースされています。
@std/testing@1.0.0-rc.5
@std/testing@1.0.0-rc.5がリリースされています。
FakeTimeがAbortSignal.timeoutに対応されています。
@std/text@1.0.1
@std/text@1.0.1がリリースされています。
@std/text/levenshtein-distance
levenshteinDistance()のパフォーマンスが147倍まで高速化されています (#5527)