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:crypto
のcreateHash
が高速化されています。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.AlreadyExists
がthrow
される問題が修正されています。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コンポーネントを事前ビルドすることでパフォーマンスの向上を図ることが提案されています。
この提案に対して、Freshの開発者であるlucacasonato氏も賛成しており、今後、Islandコンポーネントを任意で事前にビルドする機能が追加される可能性がありそうです。
https://github.com/denoland/fresh/issues/1062
denodb v1.4.0
denodb v1.4.0がリリースされています。
README.md
が更新されており、今後はリリース頻度が低下する見込みのようです。