Deno v1.15.0
Deno v1.15.0がリリースされました。
Node.jsの互換モードやサブテストの実験的な実装や、URLPatternやDeno.killの安定化、deno uninstallコマンドの実装などが行われています。
新機能:
- CLI
- Node.js互換モードの実装 (
--compatを付与してDenoを実行すると、Node.jsの組み込みモジュールの読み込みが有効化されます) deno uninstallコマンドが実装されました (deno installでインストールされたスクリプトをアンインストールできます)deno lintコマンドで--watchオプションがサポートされました
- Node.js互換モードの実装 (
- テスト
Deno.testでテストケースの入れ子が実験的にサポートされましたDeno.testで定義したテストケースがリソースリークによって失敗した際に、より詳細なエラーメッセージが表示されるようになりました (unstableをつけたときのみ)
- Deno API
- 下記のAPIが安定化されました
Deno.killDeno.Process.killDeno.resolveDnsURLPattern
Deno.startTLS/Deno.connectTLS/Deno.createHttpClientでcaCertsオプションがサポートされ、複数のルート証明書を指定できるようになりました- 合わせて
Deno.startTLSとDeno.connectTLSのcertFileオプションが非推奨化されています - また、
Deno.createHttpClientのcertFileオプションが削除されています
- 合わせて
Deno.resolveDnsの内部でエラーが発生した際に返却されるエラーが改善されました
- 下記のAPIが安定化されました
- Web Crypto API
SubtleCrypto.deriveKeyが実装されましたSubtleCrypto.wrapKeyが実装されましたSubtleCrypto.exportKeyでRSAキーをspkiフォーマットでエクスポートできるようになりましたSubtleCryptoのencryptとdecryptメソッドでAES-CBCによる暗号化と復号がサポートされましたSubtleCrypto.deriveBitsでECDH (p256)がサポートされましたSubtleCrypto.importKeyでraw形式のECDSAキーをインポートできるようになりましたSubtleCryptoでAESキーのインポートとエクスポートがサポートされました
- FFI関連 (
Deno.dlopen)- バッファ引数(
ArrayBuffer)のサポート - 非同期呼び出しのサポート
- バッファ引数(
- WASM
- スタックトレースにおける
WebAssembly.compileStreaming経由でコンパイルされたWASMモジュールのURLの表示が改善されました WebAssembly.ModuleをWorker間で受け渡せるようになりました
- スタックトレースにおける
- その他
- ファイルシステム関連のAPIでエラーが発生した際に、対象のファイル名がスタックトレースに表示されるよう改善されました
DOMException.stackプロパティが実装されました
deno_std v0.111.0
deno_std v0.111.0がリリースされました。
std/fs, std/hash, 及びstd/ioで既存APIの非推奨化や破壊的変更が実施されています。
変更点:
fs:existsとexistsSyncが非推奨化されましたhash: 非推奨化されました (cryptoモジュールが追加されたため)io: ディレクトリ構造が大幅に変更されましたstd/io/bufio.tsが非推奨化されました (今後は代わりにstd/io/buffer.tsから読み込むのを推奨)std/io/streams.tsが非推奨化されました (今後は代わりにstd/streamsから読み込むのを推奨)std/io/ioutil.tsが非推奨化されました (今後は代わりにstd/io/util.tsから読み込むのを推奨)std/io/util.tsで公開されていたAPIがreadRangeとreadRangeSyncを除いてstd/io/streams.tsへ移動されました- 合わせて、
iter及びiterSyncがそれぞれiterateReader及びiterateReaderSyncにリネームされています
- 合わせて、
std/io/util.tsのreadRangeとreadRangeSyncがstd/io/files.tsへ移動しましたstd/io/ioutil.tsにあったcopyN/readShort/readInt/readLong/sliceLongToBytesがstd/io/util.tsへ移動しました
node:dns及びnetモジュールが実装されましたnode:httpモジュールが部分的に実装されましたnode/crypto:randomFillSync/randomFill/randomIntが実装されましたnode/url: UNCパスのサポートnode/url:fileURLToPath関数のNode.jsとの互換性が向上しましたasync/delay: 引数に渡されたAbortControllerがすでにabortされていた場合、rejectされたPromiseを返却するように修正されましたencoding/base64url:encode関数に文字列を渡せるようになりました
https://github.com/denoland/deno_std/releases/tag/0.111.0
Pagic v1.5.0
DenoのスタティックサイトジェネレータであるPagicのv1.5.0がリリースされました
新機能:
- グローバルまたはページ単位でKatexマクロを定義できるようになりました
- グローバルなマクロは
pagic.config.tsのmd.katexMacrosで定義します
- グローバルなマクロは
- markdown-it-deflist が導入されました
https://github.com/xcatliu/pagic/releases/tag/v1.5.0
dnt
Denoで書かれたコードをNode.js向けに変換するツール
JavaScriptやRust向けのAPIも公開されており、ライブラリとしても利用できるようです。