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

@ts-typesと@ts-self-typesプラグマについて Denoで@ts-typesと@ts-self-typesというプラグマが実装されていたようです。 Document @ts-self-types (denoland/deno-docs#502) @ts-typesについては@deno-typesプラグマと同様に、特定のJavaScriptモジュールに対して型定義を適用したい場合に指定することが想定されているようです。今後は@deno-typesではなく@ts-typesの方の使用が推奨されるようです。 // @ts-types="./add.d.ts" import { add } from "./add.js"; @ts-self-typesについても、JavaScriptで書かれたモジュールに型を適用するための機能のようですが、実質的に/// <reference types="..." />と同様に動作するようです。基本的にJavaScriptモジュールに対して型を適用したい場合を除いて、/// <reference types="..." />の方の使用が推奨されるようです。 // @ts-self-types="./globals.d.ts" feat(unstable): add @ts-types and clean up @deno-types (denoland/deno_graph#444) feat(unstable): add support for @ts-self-types pragma (denoland/deno_graph#445) deno_stdのリリース deno_stdがリリースされています。 @std/async@1.0.0 @std/async@1.0.0がリリースされています。 @std/cli@1.0.0 @std/cli@1.0.0がリリースされています。 @std/text@1.0.0 @std/text@1.0.0がリリースされています。 このリリースに合わせて@std/text/caseが削除されています。代わりに@std/text/caseで提供されていた各APIは@std/text/to-camel-caseや@std/text/to-kebab-caseなどのファイルへ移行されています。 @std/ulid@1.0.0 @std/ulid@1.0.0がリリースされています。 @std/csv@1.0.0-rc.4 @std/csv@1.0.0-rc.4がリリースされています。 ParseErrorが削除されています (今後はSyntaxErrorがthrowされます) @std/yaml@1.0.0-rc.4 @std/yaml@1.0.0-rc.4がリリースされています。 stringify()やparse()で利用されていたYamlErrorが削除されています。今後はstringify()からはTypeError, parse()からはSyntaxErrorがthrowされます。 @std/expect@1.0.0-rc.3 @std/expect@1.0.0-rc.3がリリースされています。 expect.extend()との併用を想定して、expect()に型引数が追加されています。 @std/semver@1.0.0-rc.3 @std/semver@1.0.0-rc.3がリリースされています。 @std/semver/increment: increment()のprereleaseとbuildmetadata引数が削除されています。代わりにoptions引数が追加されており、そこでprereleaseやbuildオプションを指定できます。 @std/dotenv@0.225.0 @std/dotenv@0....

July 21, 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/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/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/02/05〜2024/02/11の最新情報

Deno v1.40.4 Deno v1.40.4がリリースされています。 Deno.FsFile.lock(Sync)/unlock(Sync) Deno.FsFileにlock(Sync)とunlock(Sync)メソッドが追加されています。 挙動については既存のDeno.flockなどと同様です。 ARM64ビルド ARM64向けのビルドがサポートされています。 これに合わせてdeno-arm64も非推奨化されているようです。 https://github.com/denoland/deno/pull/22298 https://github.com/LukeChannings/deno-arm64/commit/d7419ea6472b89f56fc9f3ea5c9d370fbf7794c2 Symbol.metadata Symbol.metadataが追加されています。 CLI DENO_AUTH_TOKENS環境変数でIPアドレスの指定がサポートされています。 v1.40.3でdeno jupyterが動かなくなっていた問題が修正されています。(#22231) deno testコマンドで../がうまく認識されない問題が修正されています。 --allow-sysに指定できる値としてcpus(--allow-sys=cpus)がサポートされていいます。node:osのcpus()などの使用を許可できます。 deno_std v0.215.0 deno_std v0.215.0がリリースされています。 破壊的変更 std/log/levels.ts LogLevels.WARNINGが削除されています。(LogLevels.WARNへの移行が推奨されます) std/path std/path/glob.tsが削除されています。下記への移行が推奨されます。 std/path/is_glob.ts std/path/glob_to_regexp.ts std/path/join_globs.ts std/path/normalize_glob.ts また、std/path/separator.tsも削除されています。(std/path/constants.tsへの移行が推奨されます) std/semver 以下のファイルが削除されています。 削除対象 移行先 std/semver/test_comparator.ts std/semver/test_range.ts std/semver/try_parse_comparator.ts std/semver/try_parse_range.ts std/semver/range_format.ts std/semver/format_range.ts std/semver/sort.ts Array#sort + std/semver/compare.ts 非推奨化 (std/semver) 以下のAPIが非推奨化されています。...

February 11, 2024

2024/01/29〜2024/02/04の最新情報

dax v0.38.0 dax v0.38.0がリリースされています。 サブシェルやリダイレクト、パイプなどのサポートが追加されています。 import { $ } from "https://deno.land/x/dax@0.38.0/mod.ts"; // サブシェル await $`(export VAR=123; echo $VAR) && echo $VAR`; // リダイレクト { const request = $.request( "https://raw.githubusercontent.com/denoland/deno_std/0.214.0/version.ts", ) .showProgress(); await $`cat - < ${request}`; const path = $.path("test.txt"); await $`echo foobar > ${path}`; } // パイプ { await $`cat deno.json | jq .imports`; const imports = await $`cat deno....

February 4, 2024

2023/12/25〜2023/12/31の最新情報

Temporal APIのサポートについて まだマージはされていませんが、Deno本体にTemporal APIのサポートを追加するPRが作成されています。 feat(unstable): add Temporal API support #21738 現時点では、--unstableまたは--unstable-temporalを指定したときのみTemporal APIが有効化される想定のようです。 Danet v2 DenoのWebフレームワークであるDanetのv2がリリースされています。 内部で使用されているフレームワークがHonoへ移行されているようです。また、パフォーマンスについても60%の向上が実現されているようです。 このリリースに合わせてdeno.land/x/danet_swaggerのv2もリリースされており、Swagger UIからscalarへの移行が行われているようです。 https://discord.com/channels/684898665143206084/712010403302866974/1189921808883912775 Comparing 1.8.0…2.0.0 · Savory/Danet Netzo Netzoというプロダクトが公開されているようです。 FreshのメタフレームワークであるNetzo frameworkやNetzo platformというビジネス向けのWebアプリケーションの開発やデプロイなどを容易にしてくれるプラットフォームなどが提供されるようです。 Netzo frameworkについてはOSSとして開発されているようで、以下のリポジトリで公開されているようです。 https://github.com/netzo/netzo https://github.com/uki00a/awesome-fresh/pull/38

December 31, 2023

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/11/06〜2023/11/12の最新情報

Deno v1.38.1 Deno v1.38.1がリリースされました。 Node.js互換性の改善 require() .jsが見つからなければ.jsonも探すように挙動が改善されました。 BYONMが有効化された際に、scopedパッケージ(@foo/bar)が適切に解決されるように修正されました。 node:crypto createPrivateKey()が実装されました。 node:child_process spawnSync()でstdioオプションが適切に取り扱われるように改善されました。 これにより、execaパッケージが動くようになったようです。 node:util toUSVString()が実装されました。 deno doc --lintの出力内容の改善 deno doc --lintを実行した際の出力内容が変更されました。 今までは、lintに成功した際はAPIドキュメントが表示されました。 このリリースでは、lintに成功した際はAPIドキュメントを表示せず、チェックされたファイル数を表示するように変更されています。 $ deno doc --lint bytes/copy.ts Checked 1 file Deno.AtomicOperation#checkで指定できるキー数の増加 Deno.AtomicOperation#checkが最大で合計100個のキーまでチェックできるように改善されました。(今までは10個が最大値でした) Promise.withResolvers()の型定義の改善 Promise.withResolvers()が返すresolve関数の引数がオプショナルから必須に変更されています。 deno_std v0.206.0 deno_std v0.206.0がリリースされました。 std/async/deferred.tsが非推奨化 Deno v1.38でPromise.withResolvers()が利用できるようになったため、deferred()が非推奨化されました。 std/encoding/binary.tsが削除 非推奨化されていたstd/encoding/binary.tsモジュールが削除されています。 std/path/glob.tsに関するAPIの移動 std/path/glob.tsで提供されていた以下のAPIが移動されています。 API 移動先 isGlob std/path/is_glob.ts globToRegExp std/path/normalize_glob.ts joinGlobs std/path/join_globs.ts std/http/server_sent_event_stream....

November 12, 2023

2023/10/02〜2023/10/08の最新情報

WebGPU APIの再導入について Deno v1.32で一時的に削除されていたWebGPU APIを再度導入するPRが作成されています。 bring back WebGPU #20812 まだマージはされていませんが、今後、再びWebGPU APIが導入される可能性がありそうです。 denoland/terraform-provider-deno Deno公式からDeno DeployのTerraformプロパイダーが公開されています。 denoland/terraform-provider-deno Ree.js Bun/Deno/Node.jsなどをサポートする軽量・高速なWebフレームワーク。 https://github.com/rovelstars/reejs 以下のような特徴を備えているようです。 React/Twindなどをサポート esm.shなどのCDNからのURLインポートをサポート npm:<パッケージ名>によるnpmパッケージの読み込みをサポート Import Mapsのサポート Packitという独自のビルドツールの採用 Honoベースの高速なサーバー ファイルシステムベースのルーティングシステム 以下で作者の方による紹介記事が書かれています。 Welcome to the dark side. Ree.js awaits you!

October 8, 2023