Deno v1.30.3
Deno v1.30.3がリリースされました。
esm.shやunpkg.comなどからパッケージを読み込むと、deno lspが停止してしまう問題が修正されています。
また、console.log()などでclassを出力する際のフォーマットも改善されています。
class User {}
console.info(User);
// v1.30.3: `[Class: User]`
// v1.30.2: `[Function: User]`
https://github.com/denoland/deno/releases/tag/v1.30.3
deno_std v0.177.0
deno_std v0.177.0がリリースされました。
std/encoding/csv - BOMのサポート
stringify()にbomオプションを指定できるようになりました。
trueを指定すると、出力されるCSVの先頭にBOMが付与されます。
また、trimLeadingSpaceオプションが未設定の場合でもparse()がBOMを認識するように改善されています。
std/node
以下のバグが修正されています。
node:child_process:execFile()にutil.promisify()がうまく適用されない問題が修正されています。node:process: 標準入力にファイルがリダイレクトされている場合に、ファイルの末尾に達してもprocess.stdinからnullが返却されない問題が修正されています。
std/semver
semver.increment()のmetadata引数に空文字列が渡された際に、ビルドメタデータが未設定にならない問題が修正されています。
import * as semver from "https://deno.land/std@0.177.0/semver/mod.ts";
const v = semver.increment(
"1.2.3+1", // version
"major", // release
undefined, // options
undefined, // identifier
"", // metadata
);
assert(v === "2.0.0");
https://github.com/denoland/deno_std/releases/tag/0.177.0
Deno 2.0 マイルストーン
Deno v2.0のマイルストーンが公開されています。
ここでは直近で追加されたいくつかのissueについて紹介します。
リモートモジュールのメタデータ管理の効率化
Denoはリモートモジュールをダウンロードする際に、ソースファイルに加えて対象ファイルに関するメタデータをJSONファイルに保存します。
Denoが実際にリモートモジュールを実行する際は、背後ではこれらの2つのファイルの読み込みが行われています。
以下のissueでは、これら2つのファイルをひとつにまとめることが提案されています。
Consider storing remote file cache metadata in same file as text #17707
これにより、モジュールの読み込みを効率化できることが期待されるようです。
deno info --jsonから"emit"と"map"の削除
上記のissueではdeno info --jsonから以下のフィールドを削除することが提案されています。
| フィールド | 背景 |
|---|---|
"map" | 現状、このフィールドには常にnullが設定されるため |
"emit" | このフィールドはCLI内部の挙動に依存しており、バージョンが上がると挙動が変わる可能性があります。また、もしトランスパイル後のソースを読むたい場合はdeno_emitの使用が推奨されます。 |
静的に解析可能なdynamic importの取り扱いに関する変更
以下のissueで、静的に解析可能なdynamic importに関する取り扱いを変更することが提案されています。
Do not permission prompt for statically analyzable dynamic imports #17697
現状、dynamic import経由で読み込まれるモジュールはdeno infoの出力には含まれまず、またそれがリモートモジュールであれば--allow-netの指定も要求されます。
今後は、dynamic importでモジュールが読み込まれた場合であっても、それが静的解析可能であればdeno infoの出力に含むようにすることが検討されているようです。
また、そのようなモジュールの読み込みに対しては、--allow-netオプションの指定も不要にすることも考慮されているようです。
deno bundleコマンドの非推奨化
deno bundleコマンドを非推奨化するPRが作成されています。
今後、deno bundleコマンドを実行した際は、以下への移行を促す警告メッセージが表示されるようです。
今のところ、この変更はDeno v1.31でリリースされることが検討されているようです。
Aurae
コンテナやVM、プロセスなどの実行を管理する分散システムランタイム
AuraeScriptというTypeScriptベースのスクリプト言語を搭載しており、内部ではdeno_coreが使用されているようです。
https://discord.com/channels/684898665143206084/712010403302866974/1072883570357571604