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/29〜2024/05/05の最新情報

Deno v1.43 Deno v1.43がリリースされています。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.43 sindresorhus/environment 現在のコードが実行されている環境を判断するためのnpmパッケージが公開されています。DenoやBun, Node.js, ブラウザーなど、様々な環境で利用できるようです。 https://github.com/sindresorhus/environment

May 5, 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/04/01〜2024/04/07の最新情報

Deno v1.42.1 Deno v1.42.1がリリースされています。 deno publish compilerOptions.{noUnusedParameters,noUnusedLocals}にtrueが設定されていると、deno publishの実行時にリモートモジュールで型エラーが発生する問題が修正されています。 node:tty ReadStreamでTypeError: Cannot read properties of undefinedエラーが発生する問題が修正されています。 Introducing Simpler Project Creation in Deno Deploy Deno公式からDeno Deployのアップデートに関する記事が公開されています。 Introducing Simpler Project Creation in Deno Deploy プロジェクトを新規作成する際のフローに関して、以下のような改善が行われているようです。 既存のGitHubリポジトリをDeno Deployに接続する際のフレームワークの自動検出がサポート 任意でビルドステップの指定がサポート。ビルド時に実行するコマンドを入力することで、Deno Deployが自動でGitHub Actionsの設定ファイルを作成してくれるようです deno.re deno.reというモジュールレジストリが公開されています。 モジュールの公開などにあたって特に作業などは不要で、GitHubに公開された任意のモジュールをタグまたはコミットを指定して読み込むことができるようです。また、必要に応じてモジュールのminifyなども実行してくれるようです。 thoth thothというDeno KVをベースに全文検索機能を提供してくれるjsrパッケージが公開されています。

April 7, 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

2024/03/18〜2024/03/24の最新情報

deno lintとdeno lspでのQuickfixのサポートについて deno lintとdeno lspでQuickfixをサポートするPRがマージされています。Deno v1.42あたりでリリースされる可能性がありそうです。 feat(lint): deno lint --fix and lsp quick fixes #22615 deno_lint v0.58.0 deno lintでは--fixオプションを指定することで利用できるようです。 いまのところQuickfixが実装されているのはno-windowとno-window-prefixルールのみのようです。 deployctl v1.12.0 deployctl v1.12.0がリリースされています。 deployctl deployコマンドで--envや--env-fileオプションがサポートされています。これらはDeno Deployのデプロイメントに対して環境変数を設定するためのオプションのようです。これらを介して設定された環境変数はDeno.env経由でアクセスできるようです。 Introducing deployctl, the command line interface for Deno Deploy また、deployments redeployコマンドが実装されており、既存のデプロイに対して環境変数のみを変更したい場合などに使用されることが想定されているようです

March 24, 2024