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/02/12〜2024/02/18の最新情報

Deno v1.40.5 Deno v1.40.5がリリースされています。 denort (deno compile向けの軽量バイナリ) deno compile向けの軽量バイナリであるdenortが再導入されています。これにより、deno compileによって生成される実行可能ファイルのサイズがかなり縮小されるようです。 feat: denort binary for deno compile #22205 GitHub Releaseに各プラットフォーム向けのdenortバイナリがアップロードされており、deno compileを実行する際にダウンロードされ、利用されます。 Remove denort optimization #10350 DENO_FUTURE環境変数の導入 DENO_FUTUREという環境変数が導入されています。この環境変数は、将来的なDenoのバージョンで実施予定の破壊的変更をテストしやすくするために導入されたようです。 今のところ、この環境変数を設定するとglobalThis.windowが削除されるようです。 $ DENO_FUTURE=1 deno repl --eval='console.log(globalThis.window)' undefined Add DENO_FUTURE env var for testing breaking changes (#22315) その他 deno lspでjsr:サポートの実装が進んでいるようです (#22382, #22418) CompressionStream/DecompressionStreamで処理を中断すると、リソースリークが発生する問題が修正されています (Aborting a CompressionStream/DecompressionStream leaks a resource #14212) deno.jsonから依存パッケージを削除すると、deno.lockが壊れてしまうことがある問題が修正されています deno_std v0.216.0 deno_std v0.216.0がリリースされています。...

February 18, 2024

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

Deno v1.40 Deno v1.40がリリースされました。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.40 deno_stdでのワークスペースの導入について deno_stdでワークスペースやdeno publish、“fast check”などの導入に向けた準備が進んでいるようです。 chore: set up workspace publish from CI #4210 もし今後、パッケージの公開やワークスペースの利用などを検討されている際は、参考になるかもしれません。 std/kvについて deno_std/kvモジュールの開発が行われているようです。 feat: std/kv まだ入るかどうかは不明なのですが、今後、こちらからDeno KV関連のユーティリティが提供されていく可能性がありそうです。 Deno v1.40.1 Deno v1.40.1がリリースされています。 v1.40.0でdeno lspにおいてデフォルトでcompilerOptions.experimentalDecoratorsが無効化されていなかったため、改めて無効化されています。 Deno v1.40.2 Deno v1.40.2がリリースされています。 Deno.FsFileでinstanceofが動作しなくなっていた問題が修正されています。 また、v1.40.0で導入された非推奨API使用時の警告メッセージが簡略化されています。 もし、v1.40.0時点での詳細な警告メッセージへ戻したい場合は、DENO_VERBOSE_WARNINGSを設定する必要があります。 deno_std v0.213.0 deno_std v0.213.0がリリースされています。 破壊的変更 非推奨化されていたモジュールやAPIが削除されています。 std/http/cookie_map.tsが削除されています。 std/semver/format.ts: function format(semver: SemVer, style?: FormatStyle): string形式が削除されています。 std/semver/compare_build.tsが削除されています。 std/semver/rsort.tsが削除されています。(reverseSortへの移行が推奨されます) 非推奨化 std/path std/path/constants.tsが追加されています。 これに合わせてstd/path/separator.tsが非推奨化されました。このファイルで公開されていたSEPはSEPARATORに、SEP_PATTERNはSEPARATOR_PATTERNにリネームされており、それぞれconstants.tsからの読み込みが推奨されます。 std/semver std/semver/types.ts: SemVerRangeが非推奨化されています。代わりにRangeが追加されているため、そちらのへの移行が推奨されます。 std/semver/outside....

January 28, 2024

2024/01/01〜2024/01/07の最新情報

Deno v1.39.2 Deno v1.39.2がリリースされました。 Node.js互換性 BYONMとImport Mapsを併用できるようになりました。 また、import.meta.resolve()でnpm:URLがサポートされています。 import.meta.resolve("npm:express"); // => "npm:express" Node.jsの組み込みパッケージに関しても様々な改善が行われており、試せてはいないのですが、next buildが動作するようになったようです。 node:dgram: Socketのunref/refが実装 node:http: ClientRequest#setNoDelayが実装 node:crypto: aes-192-ecbとaes-256-ecbがサポート node:process: process.abort()が実装 node:os: os.machine()が実装 node:os: os.cpus()の互換性の向上 (今まではダミーの値が返されていました。) node:test: TestContext#testで2段階以上のネストがサポートされました。 deno lsp V8インスペクターへの接続がサポートされています。 vscode_deno v3.31.0で"deno.internalInspect"オプションが追加されており、これにtrueなどを設定すると有効化されるようです。 Debugger listening on ws://127.0.0.1:9222/ws/<id> Visit chrome://inspect to connect to the debugger. compilerOptions.jsxImportSourceで指定されたモジュールをdeno lspが自動でキャッシュするように挙動が改善されました。 Test code lensでDeno.test.only/Deno.test.ignoreを使用して定義されたテストケースが検出されるように改善されました。 deno check deno checkコマンドでdeno.jsonのexcludeの内容が反映されるように改善されました。 Deno KV DBがクローズされたらウォッチャー(Deno.Kv#watch)も自動で停止するように挙動が改善されています。 Object.groupBy 戻り値の型がRecord<Key, Item[]>からPartial<Record<Key, Item[]>>に変更されました。 deno_std v0.211.0 deno_std v0....

January 7, 2024

2023/12/18〜2023/12/24の最新情報

Deno v1.39.1 Deno v1.39.1がリリースされました。 Deno.serveのUnixドメインソケットサポートの安定化 Deno.serveのUnixドメインソケットサポートが--unstableなしで動作するようになりました。(Deno v1.39) deno coverage deno coverageの実行時にディレクトリの省略が任意に変更されました。(デフォルトとしてcoverage/が使われます) deno jupyter importされたモジュールでDeno.testを使っているとパニックする問題が修正されています。 Node.js互換性 Prismaなどが動かなくなってた問題が修正されているようです。(https://github.com/prisma/prisma/issues/2452#issuecomment-1866409306) また、node:cryptoで以下の対応が実施されています。 pseudoRandomBytes()が実装されています。 fork()から返却されたChildProcessに対してkillを呼ぶと、プロセスがハングする問題が修正されています。 deno_std v0.210.0 deno_std v0.210.0がリリースされました。 非推奨モジュール・APIの削除 std/crypto/to_hash_string.tsが削除されました。(encodeHexやencodeBase64への移行が推奨されます。) std/encoding: ascii85.ts/base32.ts/base58.ts/base64.ts/base64url.ts/hex.tsからencodeとdecodeが削除されました。 std/http/method.tsが削除されました。 非推奨化 std/semver parse()とcanParse()からSemVerを引数に取る形式が非推奨化されました。 rcompare.tsが非推奨化されています。 isSemVerComparatorがisComparatorへリネームされています。(isSemVerComparatorは非推奨化されています) SemVerComparatorがComparatorへリネームされています。(SemVerComparatorは非推奨化されています) std/encoding/base32.ts byteLength()が非推奨化されています。 cli/spinner.tsが実装 CLI向けにスピナーを表示できます。 import { Spinner } from "https://deno.land/std@0.210.0/cli/spinner.ts"; const spinner = new Spinner({ message: "Loading..." }); spinner.start(); try { await doSomething(); } finally { spinner.stop(); } std/logでJSONL形式でのロギングがサポート handlersのセットアップ時に、formatterにjsonFormatterを指定すると有効化されます。...

December 24, 2023

2023/12/11〜2023/12/17の最新情報

Deno v1.39 Deno v1.39がリリースされました。 以下に内容をまとめたため、よろしければそちらを参照いただければと思います。 Deno v1.39 deno_std v0.209.0 deno_std v0.209.0がリリースされました。 非推奨モジュール・APIの削除 以下の非推奨化されていたモジュールやAPIが削除されています。 std/fs/eol.ts: EOLがenumから文字列("\n" | "\r\n")に変更されています。 std/async/deferred.tsが削除されています。(Deno v1.38からPromise.withResolversがサポートされたため) std/bytes/concat.ts: スプレッド形式のシグネチャ(concat(...buf: (Uint8Array | Uint8Array[])[]): Uint8Array)が削除されました。 std/collections: binary_heap.tsなどのデータ構造に関わるファイルが削除されています。 deno_std v0.207.0でstd/data_structuresが追加されていて、今回削除されたデータ構造はそちらから利用できます。 std/datetime/to_imf.tsが削除されました。(Date#toUTCString()の使用が推奨されます。) std/http/server_sent_event.tsが削除されました。(std/http/server_sent_event_stream.tsの使用が推奨されます。) 既存モジュール・APIの非推奨化 std/types.d.tsが非推奨化されました。 今後はWeb Streams APIの使用が推奨されます。 また、std/io/types.d.tsが追加されており、こちらはdeno_std v1までは維持されるようなので、もしstd/types.d.tsを利用したいケースではこちらの利用が推奨されます。 std/log: LogLevelsがenumから通常のオブジェクトへ変更されています。(これに伴い、一部フィールドが非推奨化されています。) これに合わせてLogLevel型が追加されており、v0.211.0でログレベルをnumber型として扱っていた箇所がLogLevelに変更される予定のようです。 std/front_matter: Formatが非推奨化されています。 std/webgpuが追加 Deno v1.39でのWebGPU APIの再導入に伴い、deno_stdにstd/webgpuモジュールが追加されています。 WebGPU APIに関連するユーティリティが提供されているようです。 std/netが追加 新規モジュールとしてstd/netが追加されています。 現在はgetAvailablePort()というシステムの空きポートを返してくれる機能のみが提供されています。 std/iniが追加 新規モジュールとしてstd/iniが追加されています。 INIファイルの解析やJavaScriptオブジェクトからの生成がサポートされています。...

December 17, 2023

Deno v1.39

Deno v1.39がリリースされました。 この記事では主な変更点などについて解説します。 WebGPU APIの再導入 Deno v1.32で削除されたWebGPU APIが再導入されました。 利用するにはdeno.jsonでunstable: ["webgpu"]を指定するか--unstable-webgpuオプションの指定が必要です。 { "unstable": ["webgpu"] } 以下のリポジトリではWebGPU APIに関する使用例が公開されています。 https://github.com/denoland/webgpu-examples また、この追加に合わせて、deno_stdにもWebGPU API向けのユーティリティが追加されています。(std/webgpu) deno coverage サマリー/HTMLレポーターの追加 deno coverageコマンドにサマリーレポーターとHTMLレポーターが追加されました。 サマリーレポーターは新しくdeno coverageコマンドのデフォルトで使用されるレポーターとして設定されていて、以下のような形式でレポートが出力されます。 $ deno coverage ./coverage ----------------------------------------------------------- File | Branch % | Line % | ----------------------------------------------------------- demo/components/Button.tsx | 100.0 | 0.0 | demo/fresh.gen.ts | 100.0 | 100.0 | ... 省略 ... internal/test_utils/mod.ts | 100.0 | 100.0 | server.ts | 83....

December 17, 2023

2023/12/04〜2023/12/10の最新情報

Deno v1.38.5 Deno v1.38.5がリリースされました。 Deno.Kvにwatch()メソッドが実装されています。引数として監視したいキーの一覧を指定すると、戻り値として返却されたReadableStream<Deno.KvEntryMaybe<T>[]>からそれらのキーに関する変更が通知されます。 const kv = await Deno.openKv(":memory:"); const watcher = kv.watch( [ ["users", 1], ["users", 2] ] ); (async () => { for await (const entries of watcher) { // 変更があった際は通知されます。 console.info(entries); } })(); await kv.set(["users", 1], "foo"); await kv.set(["users", 2], "bar"); await kv.set(["users", 3], "baz"); --unstable-sloppy-importsの実装について まだリリースはされていませんが、Deno本体に--unstable-sloppy-importsというオプションを導入するPRがマージされています。 feat(unstable): ability to resolve specifiers with no extension, specifiers for a directory, and TS files from JS extensions #21464...

December 10, 2023