Deno v1.31.2

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

Node.js互換性の改善

循環依存のあるpeerDependenciesの解決が改善

例えば、以下のようなシナリオにおいて、初回実行時はうまくいくものの、ロックファイルが適用されるとうまく動かないケースがあったようで、この問題が修正されています。

a -> b -> c -> d -> c -> b (peer)

その他の改善

  • npm:URLを使っていると、依存関係が変わっていなくても、毎回Lockfileがtouchされてしまう問題が修正されています。
  • 複数のDenoプロセスが同時にnode_modulesを更新できないように制御が入りました。
  • package.jsonの依存関係の解析に失敗しても、npmパッケージが実際にimportされるタイミングまではエラーが起きないように修正されています。
    • これにより、package.jsonは存在するものの、スクリプト内でnpmパッケージを利用していないようなケースでエラーが発生しなくなります。
  • node:cryptocreateHashが高速化されています。
  • util.types.isSharedArrayBufferが動作しない問題が修正されています。

.d.tsファイルの型チェックに関する修正

以下のようなケースで、deno checkなどでうまく型チェックが行われていなかった問題が修正されています。

  • エントリポイントに指定した.d.tsファイル
  • エントリポイントに含まれるX-TypeScript-Types/<reference types="..." />経由で読み込まれる.d.tsファイル
  • .d.tsファイル内のファイルタイプが指定されていないコードブロック (deno test --docの実行時のみ)

Deno.UnsafePointer.ofの改善

Deno.UnsafePointer.ofでバッファのメモリを取得する際に、もしユーザーがバッファの参照をどこかに保持していなかった場合、孤立したポインタができてしまう可能性がありました。

この問題を解消するため、Deno.UnsafePointer.ofの内部でWeakMapを使ってポインタとバッファのマッピングが管理されるようになりました。

その他

  • WindowsでDeno.stdin.setRaw(false)によって適切にrawモードが無効化されるように修正されています
  • localStorageへのアイテムのINSERT時に、事前に入力内容のサイズがチェックされるように挙動が修正されています

https://github.com/denoland/deno/releases/tag/v1.31.2

deno_std v0.179.0

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

std/encoding/varint.tsの追加, std/encoding/varint/mod.tsの非推奨化

TypeScriptをベースに実装されたstd/encoding/varint.tsが追加されました。 (実装はhttps://deno.land/x/varintがベースのようです)

これに合わせて、WASMベースのstd/encoding/varint/mod.tsが非推奨化されています。

std/fsの改善

  • std/fs/expand_glob: expandGlob()followSymlinksオプションが追加されました (trueを指定すると、シンボリックリンクが解決されます)
  • std/fs/ensure_dir: ensureDir()を同じディレクトリに対して並列で呼んだときに、Deno.errors.AlreadyExiststhrowされる問題が修正されています。
  • std/fs/ensure_symlink: ensureSymlink()targetに対する相対的なリンクを作ろうとすると、意図せぬパスを指すリンクが作成されてしまう問題が修正されています (#2312)

std/http/cookie - =の取り扱いが改善

Cookieの値に=が含まれていると、getSetCookiesが意図せぬ値を返す問題が修正されています。


https://github.com/denoland/deno_std/releases/tag/0.179.0

Fresh v1.1.4

Fresh v1.1.4がリリースされています。

Twind v1向けのプラグインが追加されています。

その他には、HEADリクエストを受信した際に405エラーが返却される問題が修正されています。


https://github.com/denoland/fresh/releases/tag/1.1.4

FreshのIslandコンポーネントの事前ビルドについて

以下のissueでは、Islandコンポーネントを事前ビルドすることでパフォーマンスの向上を図ることが提案されています。

Pre-build islands #1062

この提案に対して、Freshの開発者であるlucacasonato氏も賛成しており、今後、Islandコンポーネントを任意で事前にビルドする機能が追加される可能性がありそうです。


https://github.com/denoland/fresh/issues/1062

denodb v1.4.0

denodb v1.4.0がリリースされています。

README.mdが更新されており、今後はリリース頻度が低下する見込みのようです。


https://github.com/eveningkid/denodb/releases/tag/v1.4.0