2024/06/10〜2024/06/16の最新情報

Deno v1.44.2 Deno v1.44.2がリリースされています。 CLI deno lsp textDocument/formattingで DocumentFormattingParamsのoptionsが考慮されるように挙動が改善されています。(LSP: Formatting ignores passed formatting options (#23257)) また、auto importにおいて.d.tsなどが提案されるべき場面で、誤って.jsが提案されてしまうことがある問題が修正されています。(lsp: import suggestion imports .d.ts file as .js (#23017)) deno lint BOM付きのUTF-8形式のファイルでdeno lintがパニックする問題が修正されています。 バグ修正 複数のDenoプロセスが並列で同時にリモートモジュールのダウンロードを行っていると、処理が失敗することがある問題が修正されています。 また、dynamic importをするとプロセスがハングすることがある問題が修正されています。(Investigating hung/paused process while dynamically importing async module (#24098)) Node.js互換性の改善 Node-API Node-APIの実装がリライトされています。これにより、Prismaがハングしてしまう問題が解消されるようです。(Prisma library using N-API hangs often (#24010)) node:child_process stdioオプションで'ipc'とファイルディスクリプタ(整数)の指定がサポートされました。 node:http ServerResponse#setHeaderのvalue引数に配列が指定された場合の挙動が修正されています。 今までの挙動: 配列の各値をカンマ区切りで結合し、単一のヘッダーとして追加されていました。 Deno v1.44.2: 配列の各要素ごとにヘッダーが追加されます。 node:vm Scriptにおける以下の問題が修正されています。 node:processがimportできない問題 (#22441) globalが未定義になる問題 (#23852) メモリリーク (#23913) WebSocket WebSocketでBlobを送信する際に、順番通りにメッセージが送られない問題が修正されています。(websocket....

June 16, 2024

2024/06/03〜2024/06/09の最新情報

Deno v1.44.1 Deno v1.44.1がリリースされています。 Node.js互換性の改善 dynamic import 以下のような形式のdynamic importがサポートされています (ただし、importの引数に指定された変数が静的に解析可能な場合にのみ限定されます) const specifier = "npm:chalk@5.3.0"; const chalk = await import(specifier); .npmrc あるパッケージのtarballのURLに対して、常にそのパッケージが属するスコープ向けの認証設定が適用されてしまう問題が修正されています。 fix(npm): use configured auth for tarball urls instead of scope auth (#24111) レジストリとパッケージのtarballを配信するドメインが異なる場合、v1.44.0の時点では、それぞれのドメインに対して別々の認証設定を適用できない課題があったようです。 Workerにおけるパッケージ解決の改善 Workerにおいて特定のnpmパッケージを利用しようとすると、プロセスがパニックしてしまうことがある問題が修正されています。 deno lsp jsr:向けのマッピングがImport mapsで定義されている場合、うまく補完が動作しない問題が修正されています。(#24050) Deno.exitCode Deno.exitCodeに整数以外の値を設定しようとした際にTypeErrorが発生するように挙動が変更されています。 deno_stdのリリース deno_stdのリリースが行われています。 release-2024.06.03 release-2024.06.06 @std/bytes@1.0.0 @std/bytes@1.0.0がリリースされています。特に大きい変更はありませんが、deno_stdのパッケージとしては初の安定版リリースになります。 @std/assert 0.226.0と1.0.0-rc.1の2つのバージョンがリリースされています。 0.226.0 assertEqualsからformatterオプションが削除されています。 @std/assert@0.226.0 1.0.0-rc.1 assertAlmostEqualsのtolerance引数のデフォルト値が変更されています。 今までは1e-7がデフォルト値として使用されていました。 このバージョンでは、デフォルト値が以下のように変更されています。 expected引数が有限な値であればexpected * 1e-7 そうでなければ1e-7 @std/assert@1....

June 9, 2024

2024/05/27〜2024/06/02の最新情報

Deno v1.44 Deno v1.44がリリースされています。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.44 deno_stdのリリース deno_stdがリリースされています。 @std/uuid@0.224.3 @std/uuid/v1 generateのbufとoffset引数が非推奨化されています。 また、V1OptionsがGenerateOptionsにリネームされています。 @std/data-structures@0.225.0 BinarySearchNodeがprivate APIに変更されています Hono v4.4.0 Hono v4.4.0がリリースされています。 HonoがJSRに公開されています。 @hono/hono

June 2, 2024

2024/05/20〜2024/05/26の最新情報

Fresh v2のアルファバージョンが公開 Fresh v2向けに開発されていたコードがmainブランチに取り込まれています。 major: import Fresh 2.0 code (denoland/fresh#2449) 合わせて、Fresh v2のアルファバージョンとして公開されています。 現状、大きな変更として以下のような内容がありそうです。 FreshのJSRへの公開 preactやesbuildなどのパッケージがnpm:経由で読み込まれるように変更されています (例: www/deno.json) ExpressライクなAPIの採用 (例: www/main.ts) ハンドラーやページコンポーネントなどの定義方法の改善 (例: www/routes/showcase.tsx) 現状、わかっている変更点などを少しずつ以下のページにまとめているため、もし興味がありましたら参照ください。 https://scrapbox.io/uki00a/Fresh_v2 Deno v1.43.6 Deno v1.43.6がリリースされています。 Node.js互換性の改善 JestやVitest, avaなどのテストフレームワーク向けの対応を中心に進められています。 node:worker_threads: Workerを介して転送されるメッセージの中にMessagePortがあった場合に、addListenerなどのメソッドが未定義になってしまう問題が修正されています (vitestなど向けの対応) node:module: avaを動かせるようにするため、findSourceMapの空実装が追加されています。 node:process: process.listeners()に'SIG*'を渡した際に、きちんとリスナー数が返却されるように改善されています。 deno task deno.jsonでnodeModulesDir: true設定されていて かつ node_modulesディレクトリがない場合に、deno taskの実行に失敗してしまう問題が修正されています。 deno serve deno serveコマンドで指定されたエントリポイントでfetchが引数を受け取らない形式で定義されている場合に、TypeErrorが発生する問題が修正されています。 URL.{canParse,parse}の型定義の改善 URL.canParseの第2引数にURLオブジェクトを渡せるように型定義が改善されています。 URL.parseの型定義が追加されています。 deno_stdのリリース deno_stdのリリースが行われています。主要な変更点についてのみ紹介します。 @std/collections@1.0.0-rc.1 @std/collections v1のRCバージョンが公開されています。近いうちにv1がリリースされる可能性がありそうです。 @std/streams@0.224.1 新規APIとしてconcatReadableStreamsが追加されています。...

May 26, 2024

2024/05/13〜2024/05/19の最新情報

Deno v1.43.4 Deno v1.43.4がリリースされました。このリリースはバグ修正やパフォーマンス改善などがメインです。 deno publish expandoプロパティのサポート deno publish(fast check)やdeno docでexpandoプロパティが認識されない問題が修正されています。 --dry-runの改善 deno publish --dry-runの実行時に、以下のケースでエラーが発生するように挙動が改善されています。 バージョン指定がないjsr:specifierが検出された場合 deno.jsonが存在しない場合 Node.js互換性の改善 node:worker_threads メインスレッドとWorkerスレッドでモジュールキャッシュが分離されました。SvelteKitなどのパッケージがこの挙動に依存しているようです。(#23461) node:os homedirの互換性が改善されています。 node:fs EISDIRが発生する状況下でReferenceErrorが発生してしまう問題が修正されています。 Deno API "junction"に関する型定義の追加 Deno.SymlinkOptionsのtypeプロパティの型定義に"junction"が追加されています。 "junction"のサポートは以前に実装されていたものの、型定義が追加されていなかったようです。 ReadableStream ReadableStreamのSymbol.asyncIteratorメソッドが返却する非同期イテレーターに対して.return()の直後に.next()を呼ぶと、.next()が返却したPromiseが.return()が返却したものよりも先に解決される問題が修正されています。 Update ongoing promise in async iterator return() method #22389 その他 DenoがTypeScriptなどのファイルをトランスパイルする際に、トランスパイル後のソースからコメントが削除されてしまう問題が修正されています。 Deno v1.43.5 Deno v1.43.5がリリースされています。 Deno v1.43.4でいくつかのnpmパッケージを使おうとするとエラーが発生していたため、その修正が行われています。(#23862) deno_stdのリリース deno_stdのリリースが行われています。主要な変更点だけ抜粋します。 @std/collections@0.224.2 invertとinvertByが追加されています。オブジェクトのキーと値を入れ替えることができます。 const actual = invert({ "foo": 1, "bar": 2 }); const expected = { "1": "foo", "2": "bar" }; assertEquals(actual, expected); freshのホームページの新デザイン freshのホームページのデザインが更新されています。...

May 19, 2024

2024/05/06〜2024/05/12の最新情報

Deno v1.43.2 Deno v1.43.2がリリースされています。 N-API napi_get_elementとnapi_set_elementがオブジェクトでも動作するように改善されています。この改善により、duckdb-nodeのexampleが動くようです。 deno lsp いくつかのQuickfixの実行時にDebug Failureが発生することのある問題が修正されています。 また、deno lspからnpmパッケージがキャッシュできないことがある問題も修正されています。 deno publish パッケージでクラスがexportされていて かつ その基底クラスがパッケージでexportされていない場合、deno publishが失敗する問題が修正されています。 deno test deno test --docで適切に型チェックが行われなくなっていた問題が修正されています。 ランタイム Deno v1.43から/etc配下のファイルへの読み書きに--allow-allフラグが要求されていた問題が修正されています。 Web API createImageBitmapにBlobオブジェクトを渡すとTypeErrorが発生する問題が修正されています。 また、importScriptsでスクリプトが並列に読み込まれるように改善されています。 TypeScript Denoに組み込まれたTypeScriptがv5.4.3からv5.3.5へアップデートされています。 Deno v1.43.3 Deno v1.43.3がリリースされています。 ランタイム Homebrewなどでインストールした場合にDenoがパニックする問題が修正されています。 また、v1.43.2での/etcに関する変更に合わせて、/dev/fd配下のファイルを--allow-allを指定しないと読み込めなかった問題が修正されています。 deno lsp usingまたはawait usingを使っている場合でも補完が動作するように改善されています。 deno task deno taskでnpx <npmバイナリ> ...のように定義されたスクリプトを実行する際に、対象のnpmバイナリをうまく検出できないことがあった問題が修正されています。 deno_stdのリリース (2024/05/07) deno_stdの以下のパッケージで最新バージョンがリリースされています (release-2024.05.07) @std/assert@0.225.1 @std/bytes@1.0.0-rc.1 @std/cli@0.224.1 @std/collections@0.224.1 @std/log@0.224.1 deno_std v1向けに、各モジュールごとに独立してリリースする運用が開始されたようです。 主要な変更についていくつか紹介します。 @std/bytes@1.0.0-rc.1 特に大きな変更はないものの、@std/bytesのv1に向けたRCバージョンが公開されています。 @std/cli@0.224.1 @std/cli/spinner.tsでNO_COLOR環境変数によってスピナーに色を付けないように制御できるような改善が導入されています。 @std/collections@0.224.1 chunkに不正なサイズが与えられた際に、ErrorではなくRangeErrorがthrowされるように改善されています。 @std/log@0.224.1 FileHandlerにバッファーサイズを調節するためのbufferSizeオプションが追加されています。...

May 12, 2024

2024/04/22〜2024/04/28の最新情報

Deno v1.43.0について Deno v1.43.0は先週にリリース予定だったようですが、延期されることになりました。 ただし、直近でv1.43.0向けと思われる機能がいくつか入っていたので紹介します。(⚠️正式にリリースされる際には仕様などが変わる可能性があります) deno serveコマンド deno serveコマンドが追加されています。 以下のようにfetch関数を実装したオブジェクトをdefault exportしたファイルを用意します。 // main.ts export default { fetch(req: Request) { return new Response("OK"); }, }; このファイルを指定してdeno serveコマンドを実行すると、HTTPサーバーが起動されます。 $ deno serve main.ts deno serve: Listening on http://localhost:8000/ $ curl http://localhost:8000 OK ポートはデフォルトで8000が使用されますが、--portオプションで変更が可能です。 Deno.serveでRequest.signalがサポート Deno.serveのハンドラーに渡されれるRequestオブジェクトでsignalプロパティがサポートされています。先程のdeno serveコマンドでも利用可能です。 export default { fetch(req: Request) { // レスポンスがクライアントへ送信されると`abort`が発火します req.signal.addEventListener("abort", () => console.info("aborted")); return new Promise<void>((resolve) => { setTimeout(() => { resolve(new Response("OK")); }, 5000); }); }, }; V8コードキャッシュ V8によって生成されたコードキャッシュを保存する仕組みが導入されています。...

April 28, 2024

2024/04/15〜2024/04/21の最新情報

deno_stdの安定化について deno_stdの安定化とそれに関する運用について以下のようなissueが公開されています。 The Road to Stabilizing the Standard Library (denoland/deno_std#4600) 今後の運用と計画について 今までdeno_stdは全てのモジュール(std/assert, std/pathなど)がdeno.land/stdで単一のパッケージとして公開されていました。JSRがリリースされたことで、各モジュールを個別のパッケージとして公開することが可能になりました。そのため、今後は@std/assertや@std/pathなどの各パッケージごとに独立してバージョンを割り当てて管理することが想定されているようです。 また、今後はdeno_stdのリリースをDeno本体とは独立して行うことも計画されているようです。 Deno v1.42.4 Deno v1.42.4がリリースされています。 Node.js互換性の改善 node:vmでrejectされたPromiseがうまく取り扱われるように改善されています。これによりDenoでdocusaurus buildコマンドが動作するようになったようです。そのためdeno-docsリポジトリではDenoを使用してDocusaurusのビルドを実行するように変更が行われています。 use Deno (denoland/deno-docs#423) deno publish classのprivate指定されたプロパティでdefinite assignment assertionが使用されている場合に、deno publishコマンドが失敗する問題が修正されています。 kvdex v1 kvdex v1がリリースされています。 JSRパッケージが公開されています。また、@deno/kvもサポートすることで、Node.jsやBunでの利用がサポートされているようです。

April 21, 2024

2024/04/08〜2024/04/14の最新情報

Deno v1.42.3 Deno v1.42.3がリリースされています。 deno run --inspect Inspector用のポートがすでに使用されていた場合に、deno run --inspectがパニックする問題が修正されています。 nodeModulesDir (--node-modules-dir) "nodeModulesDir": trueの有効化時に、同一npmパッケージが重複して二重に読まれてしまうことのある問題が修正されています。 jsr 型チェックなどに関する様々なバグが修正されています。 dynamic importでjsr:がうまく解決されないことのある問題が修正されています。 オーバーロード関数の定義にスプレットパラメータが使用されているものがあった場合、deno publishなどによる型チェックが失敗する問題が修正されています。 https://github.com/denoland/deno/pull/23187 deno_std v0.222.0 deno_std v0.222.0がリリースされています。 std/testing/bdd.ts 以下のエイリアスが追加されています。 test (itのエイリアス) before (beforeAllのエイリアス) after (afterAllのエイリアス) std/expect expect.addSnapshotSerializersが実装されています。 std/semver std/semver/types.ts Comparatorオブジェクトの非推奨化されていたsemverプロパティが削除されています。 greaterThanRange/lessThanRange 新しいAPIとしてgreaterThanRangeとlessThanRangeが追加されました。 std/console std/consoleがstd/cliに統合されています。std/consoleはまだ削除されずに残っているものの非推奨化されています。 std/crypto/crypto.ts 下記APIが非推奨化されています。 FNVAlgorithms wasmDigestAlgorithms (DIGEST_ALGORITHM_NAMESへの移行が推奨) WasmDigestAlgorithm (DigestAlgorithmNameへの移行が推奨) std/encoding/varint.ts std/encodingにおける他のモジュールとの命名の一貫性向上のため、以下のAPIが非推奨化されています。 非推奨API 移行先 decode decodeVarint decode32 decodeVarint32 encode encodeVarint std/yaml/schema 下記の定数がリネームされています。...

April 14, 2024

2024/03/25〜2024/03/31の最新情報

Deno v1.42 Deno v1.42がリリースされています。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.42 deno_std v0.221.0 deno_std v0.221.0がリリースされています。 @std/expect 以下のAPIが実装されました。 expect.closeTo expect.stringContaining expect.stringMatching @std/crypto FNVハッシュ関連の実装がTypeScriptからRust+Wasmベースへ移行されています。 これによりWeb StreamsなどのIterableな入力も処理できるように改善されているようです。 https://github.com/denoland/deno_std/pull/4515 Deno v2におけるBYONMのデフォルトでの有効化について Deno v2におけるBYONMのデフォルトでの有効化に関するissueが作成されています。 Enable BYONM by default for Deno 2 (#23151) まずDENO_FUTURE=1が指定された際にBYONMをデフォルトで有効化することが検討されているようです。 @david/publish-on-tag Gitタグの作成時にGitHub Actionsからjsrへパッケージを公開するためのツールが公開されています。 @david/publish-on-tag

March 31, 2024