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上などで動かせるようになりそうです。