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.kill
Deno.Process.kill
Deno.resolveDns
URLPattern
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も公開されており、ライブラリとしても利用できるようです。