Deno v1.26.2
Deno v1.26.2がリリースされました。
サブプロセス関連のAPIやnpmサポートの改善、fetch()の互換性の向上などが実施されています。
Deno.SpawnOptionsでwindowsRawArgumentsオプションがサポート
Windows上でこのオプションにtrueを指定すると、コマンドライン引数のクォーテーションの付与とエスケープがスキップされます。
const { success, stdout } = await Deno.spawn(cmd, {
  args,
  windowsRawArguments: true,
});
この機能は、後述するdeno_std v0.160.0におけるwindowsVerbatimArgumentsの実装に利用されています。
npmサポートの改善
dist-tagがサポートされています。
例)
import ts from "npm:typescript@next";
その他の改善として、npmレジストリからのパッケージ情報のダウンロード処理が並列化されています。
Fetch APIの互換性の向上
Fetch Standardとの互換性の改善が実施されています。
例)
- Headersで不正な形式のヘッダを連続で解析すると、二度目以降の解析時にエラーが発生しない問題が修正
- fetch()の呼び出し時に- Rangeヘッダが指定された際は、- Accept-Encoding: identityが自動で設定されるように修正
- Responseや- Requestに空の- FormDataを渡せるように改善
- Responseに設定した- ReadableStreamから非- Uint8Array型のチャンクが読み込まれた際は、- TypeErrorが発生するように修正
- レスポンスボディがContent-Lengthを超過した際などにTypeErrorが発生するように修正
それ以外にもCache APIやWeb Streams APIなどでも互換性の向上が実施されています。
その他の変更点
- deno taskでのスクリプト実行時に- INIT_CWD環境変数が設定されるように修正 (npm runとの互換性の向上が目的のようです)
- deno.json(c)の- importMapオプションにリモートURLを指定できるように改善
- deno lspでの補完時に、スニペットが適切に取り扱われるように修正
- コンパイル対象ファイルの名前が@で始まるときに、deno compileがパニックする問題が修正
https://github.com/denoland/deno/releases/tag/v1.26.2
deno_std v0.160.0
deno_std v0.160.0がリリースされました。
このリリースではstd/nodeのNode.js互換性の向上が実施されています。
変更点:
- std/node/readline/promisesが実装
- std/node/child_process:- windowsVerbatimArgumentsオプションがサポート
- std/node/fs: Windowsで- fs.access()が失敗する問題が修正
- std/node/fs:- fs.Dirでディレクトリエントリを読み込んだ際に、- Deno.DirEntryではなく- fs.Direntが返却されるように修正されています
https://github.com/denoland/deno_std/releases/tag/0.160.0
Prisma v4.5.0
Prisma v4.5.0で、Denoの初期サポートが追加されました。
これにより、Prisma CLIやPrisma ClientをDenoで動かすことができるようになりました。
このリリースに合わせて、公式ドキュメントでDeno Deployへのデプロイガイドが公開されています。
制限として、現在ではPrisma Data Proxy経由でのデータベース接続のみがサポートされています。
また、PrismaにおけるDenoサポートは、まだプレビュー機能という位置づけのため、本格的な使用にはまだ注意が必要かもしれません。
- https://github.com/prisma/prisma/releases/tag/4.5.0
- https://github.com/prisma/prisma/issues/2452#issuecomment-1282956083
- https://github.com/prisma/docs/blob/716d297399d507b6a8f6165455412ac1be7aa150/content/300-guides/200-deployment/110-deployment-guides/550-deploying-to-deno-deploy.mdx
Nuxt 3でのDenoサポート
Nuxt 3のサーバエンジンであるNitroでDeno presetの実装が進んでいるようです。
これが実装されれば、Nuxt 3で開発されたアリケーションをDeno Deploy上などで動かせるようになりそうです。