<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>週刊Deno</title><link>https://uki00a.github.io/deno-weekly/</link><description>Recent content on 週刊Deno</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Sun, 05 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://uki00a.github.io/deno-weekly/index.xml" rel="self" type="application/rss+xml"/><item><title>2026/03/30〜2025/04/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/04/05.html</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/04/05.html</guid><description>Deno v2.7.10 &amp;amp; v2.7.11がリリース (`deno upgrade` - `alpha`及び`beta`チャネルがサポート, `deno compile` - `deno.json`における`compile.{include,exclude}`フィールドがサポート, `deno lsp` - Import mapsにおけるディレクトリ向けのマッピングの取り扱いが改善, Windowsにおけるファイルシステム関連のパーミッションオプションの挙動が変更, など), Denoの最近のアップデートについて (グローバルのタイマーAPIがNode.jsベースのものへ移行, デフォルトでテストサニタイザーが無効化)</description></item><item><title>2026/03/23〜2025/03/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/03/29.html</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/03/29.html</guid><description>Deno v2.7.8 &amp;amp; v2.7.9がリリース , (`OTEL_EXPORTER_OTLP_PROTOCOL=console`がサポート, `deno approve-scripts` - WindowsにおけるUIの振る舞いが改善, `deno fmt --unstable-component` - 設定項目として`fmt.vueComponentCase`及び`fmt.angularNextControlFlowSameLine`がサポート, `node:sqlite` - `defensive`オプションのデフォルト値が`true`に変更, Base64関連のAPIのパフォーマンスが改善, など), denoland/deploy-cli が公開</description></item><item><title>2026/03/16〜2025/03/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/03/22.html</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/03/22.html</guid><description>Deno v2.7.6 &amp;amp; v2.7.7がリリース (`--cpu-prof-flamegraph`オプションが追加, OpenTelemetry - Logレコードへの`exception.*`及び`log.iostream`属性の追加, `node:util` - `MIMEType`/`MIMEParams`/`convertProcessSignalToExitCode()`が実装, `node:net`/`node:dgram` - パーミッションの取り扱いの改善, ライフサイクルスクリプトの並列実行がサポート, Linuxにおけるメモリ使用量の削減, `URLPattern`/`TextDecoder`/`TextEncoder`の最適化, など), Deno Deploy のアップデート (`Deno.cron()`のサポート, デプロイ先リージョンの変更とOrganizationの削除がサポート, TanStack Startのサポート, 外部OpenTelemetryコレクターへの接続がサポート, Builderプランの追加, など), Deno Deploy Classicの停止予定日が発表, `deno lint`コマンドにおける`deno_lint`から`oxlint`への置き換えについて</description></item><item><title>2026/03/09〜2025/03/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/03/15.html</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/03/15.html</guid><description>Deno v2.7.5がリリース (`--cpu-prof`オプションの追加, `DENO_AUDIT_PERMISSIONS=otel`による要求されたパーミッションのOpenTelemetryバックエンドの送信がサポート, `deno coverage` - 関数のカバレッジがサポート, `deno doc` - npmパッケージがサポート, `--env` - 環境変数の置き換えがサポート, `node:fs` - `cp()`がRustにより再実装, `node:http2` - `denoland/libnghttp2`をベースに再実装, など), MikroORM 7</description></item><item><title>2026/03/02〜2025/03/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/03/08.html</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/03/08.html</guid><description>Deno v2.7.2/v2.7.3/v2.7.4がリリース (`deno install` - npmパッケージのインストールが高速化, `deno compile --self-extracting` - extraction directoryの名前が変更, `require(esm)` - 読み込まれたESMモジュールにおいて投げられた例外をキャッチできるように改善, など), `node:wasi`の実装について</description></item><item><title>2026/02/23〜2025/03/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/03/01.html</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/03/01.html</guid><description>Deno v2.7 がリリース, `denoland/deno_core`がアーカイブ</description></item><item><title>Deno v2.7</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v2.7.html</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v2.7.html</guid><description>Deno v2.7がリリース (`deno compile --self-extracting`, `deno create`, `deno check --check-js`, `deno add --save-exact`, `deno install -g` - npmパッケージインストール時の振る舞いの変更, `deno install -g --compile` - `--allow-scripts`と`--force`がサポート, `deno task` - `failglob`が無効化, `deno upgrade` - アーカイブのキャッシュがサポート, `deno audit --ignore`, `deno lsp` - `DENO_UNSTABLE_TSGO_LSP`の導入, Temporal APIが安定化, `CompressionStream`/`DecompressionStream`でBrotliがサポート, `Deno.FsFile#tryLock()`, `Deno.spawn()`, `package.json`の`overrides`がサポート, など)</description></item><item><title>2026/02/16〜2026/02/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/02/22.html</link><pubDate>Sun, 22 Feb 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/02/22.html</guid><description>Deno v2.7のリリースタイミングについて, Deno v2.6.10 (`deno install --global --compile`, `SSLKEYLOGFILE`, `node:worker_threads` - 入出力の取り扱いの改善, `AbortSignal.any()`で作成した`AbortSignal`が意図せずGCによって回収されてしまう問題の修正, など), `deno_std`のリリース (`@std/xml`パッケージが追加, `@std/async@1.2.0` - `@std/async/unstable-{lazy,poll,all-keyed}`の追加など, `@std/cli@1.0.28` - `StaticLine`の追加など, `@std/expect@1.0.18` - スナップショットテストのサポート, など), DenoとVultrのパートナーシップについて, Hono v4.12.0</description></item><item><title>2026/02/09〜2026/02/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/02/15.html</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/02/15.html</guid><description>Deno v2.6.9 (`deno doc` - Markdownのプレビューがサポート, `deno upgrade` - `--checksum`オプションが追加, `node:worker_threads` - `threadName`や`BroadcastChannel#unref()`などが実装, `node:sqlite` - `DatabaseSync#setAuthorizer()`が実装, など), `deno pack`コマンドについて, Cliffy v1</description></item><item><title>2026/02/02〜2026/02/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/02/08.html</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/02/08.html</guid><description>Deno Deployの一般公開とDeno Sandboxのアナウンス, Deno v2.6.8 (Windows ARM64のサポート, `package.json`の`dependencies`において`jsr:`スキームがサポート, `node:sqlite` - `SQLTagStore`が実装), dax v0.45.0 (`set`/`shopt`のサポート, `failglob`がデフォルトで無効化, `?`文字の取り扱いの変更, など)</description></item><item><title>2026/01/26〜2026/02/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/02/01.html</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/02/01.html</guid><description>Deno v2.6.7 (`@jsr`スコープの取り扱いの変更, `Deno.cron()` - `DENO_UNSTABLE_CRON_SOCK`による外部サーバーへのタスク管理の移譲がサポート, `node:test` - 各種`mock.*`APIの実装, `node:sqlite` - `DatabaseSync`で未実装であった各種オプションのサポート, など), deno_stdのリリース (@std/http@1.0.24 - 実験的APIとして`ServerSentEventParseStream`/`FormDataDecoderStream`/`FormDataEncoderStream`が追加, `@std/tar@0.1.10` - `TarStream`でシンボリックリンクがサポート, など), denoland/skills - Deno公式のAgent Skills, Deno Deployのアップデート (`deno.json`でのアプリケーション設定がサポート, `DENO_TIMELINE`の追加), fresh-session v0.9.0 (Fresh v2のサポートなど)</description></item><item><title>2026/01/19〜2026/01/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/01/25.html</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/01/25.html</guid><description>Deno v2.6.6 (`deno task` - `shopt`と`set`コマンドが実装, `UNSTABLE_INSPECTOR_WS_EVENTS`環境変数が追加, `Deno.cron()`への計装, `node:perf_hooks` - `PerformanceObserver`が実装, など), @std/async@1.1.0 (`retry`の`isRetriable`オプションが安定化, `CircuitBreaker`が実装, など), @std/collections@1.1.4 (各種APIの引数として渡される関数への`index`引数の追加, など), Deno Sandboxes から Deno Sandbox へ名称が変更</description></item><item><title>2026/01/12〜2026/01/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/01/18.html</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/01/18.html</guid><description>Deno v2.6.5 (`createImageBitmap()`でgif/webpがサポート, `performance.clearResourceTimings()`及び`performance.setResourceTimingBufferSize()`が実装, `deno audit` - 終了コードの取り扱いの改善, `node:sqlite` - `DatabaseSync`/`StatementSync`におけるGCに関する問題の修正, など), LogTape v2</description></item><item><title>2026/01/05〜2026/01/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/01/11.html</link><pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/01/11.html</guid><description>Deno v2.6.4 (`deno compile`で`--unstable-npm-lazy-caching`がサポート, `node:sqlite` - `Session[Symbol.dispose]`が実装, `?NNN`形式のパラメーターがサポート, `node:http` - `Agent`で`keepAlive: true`がサポート, など), denoland/deno_pypi</description></item><item><title>2025/12/29〜2026/01/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2026/01/04.html</link><pubDate>Sun, 04 Jan 2026 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2026/01/04.html</guid><description>Juniper - Hono &amp;amp; React Routerベースのメタフレームワーク, dax v0.44.2 - daxのnpmパッケージがリネーム</description></item><item><title>2025/12/22〜2025/12/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/12/28.html</link><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/12/28.html</guid><description>Happy Eyeballsのサポートについて, `deno sandbox`コマンドのドキュメントが追加, `deno_std`のリリース (`@std/uuid@1.1.0` - UUIDv7サポートの安定化, `@std/async@1.0.16` - `Semaphore`が追加, `@std/streams@1.0.16` - `CappedDelimiterStream`が追加, など)</description></item><item><title>2025/12/15〜2025/12/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/12/21.html</link><pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/12/21.html</guid><description>Deno v2.6.1 (`deno x` - Windows向けの改善, `deno add` - jsrパッケージのダウンロードに関する挙動の修正, `deno deploy` - `deploy.app`の省略がサポート, `node:sqlite` - `DatabaseSync#location()`の実装や`DatabaseSync`で`timeout`オプションがサポート, など), Deno v2.6.2 (`deno sandbox`コマンドが追加, OpenTelemetry - Baggageに関するサポートの改善, `deno x` - バグ修正, `deno check` - ワークスペースにおける`compilerOptions.jsxImportSource`のサポートなど, `node:sqlite` - `backup()`における`progress`コールバックのサポート, `node:net` - Windows向けに名前付きパイプがサポート, `--inspect`オプションなどによる`Worker`のデバッグがサポート, など), Deno v2.6.3 (`deno check` - Node.js組み込みモジュールなどに関するバグ修正), Deno Deployのアップデート (ワークスペースサポートの改善, リビジョンの自動的な無効化について, など), LogTape v1.3.0 (各種フレームワークとの統合やDrizzle ORM向けのアダプターの追加, など)</description></item><item><title>2025/12/08〜2025/12/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/12/14.html</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/12/14.html</guid><description>Deno v2.6 がリリース, Deno Sandboxes</description></item><item><title>Deno v2.6</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v2.6.html</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v2.6.html</guid><description>Deno v2.6がリリース (`deno x`コマンドが追加, `deno approve-scripts`コマンドが追加, `deno audit` - `socket.dev`との統合がサポート, `--ignore-read`/`--ignore-env`オプションの追加, `deno publish` - 公開したくないパッケージの指定がサポート, `deno init` - `--empty`オプションが追加, `deno init --npm` - `--yes`オプションが追加, `deno install -g`の挙動が変更, `--lockfile-only`オプションが追加, `deno lint` - プラグインでファイルと環境変数の読み込みがサポート, `deno bundle` - Androidでの利用がサポート, `Deno.bundle()`の`Worker`での利用がサポート, `deno lsp` - `source.organizeImports`におけるバグ修正, `deno check` - typescript-go連携におけるバグ修正, Source Phase Importsがサポート, `BroadcastChannel`が安定化, Streamの移譲がサポート, Float16Arrayがサポート, Deno本体に`@types/node`がバンドル, `--require`オプションが実装, Subpath importsで`#/`から始まるマッピングがサポート, Windows向けのshimの生成が改善, `node:sqlite` - `DatabaseSync`に`aggregate`や`function`メソッドが追加, `node:child_process` - Advanced serializationがサポート, ソースマップサポートの改善, など)</description></item><item><title>2025/12/01〜2025/12/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/12/07.html</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/12/07.html</guid><description>直近のDenoのアップデート (`deno approve-scripts`コマンドが追加, `--ignore-read`オプションが実装, `deno.json`で`publish: false`の指定がサポート, Deno v3 向けのタイマーAPIと`deno compile`への破壊的変更が一時的に Revert), Deno Advent Calendar 2025 が開始</description></item><item><title>2025/11/24〜2025/11/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/11/30.html</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/11/30.html</guid><description>Deno Deploy のアップデート (Googleアカウントによるサインイン, 全Organizationでの請求の有効化, jsr:@deno/oidcパッケージが公開, など), @lowlighter/vercel-deno</description></item><item><title>2025/11/17〜2025/11/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/11/23.html</link><pubDate>Sun, 23 Nov 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/11/23.html</guid><description>Denoの直近のアップデート (`--ignore-env`オプションが追加, `deno audit --socket` - `socket.dev`との統合, など), deno_stdのリリース (`@std/math`パッケージが追加, `@std/cache@0.2.1` - `LruCache`および`TtlCache`に`onEject`オプションが追加, など), @fresh/core@2.2.0 (レスポンスの生成を簡素化するためにHonoライクなヘルパーメソッドが追加), dax v0.44.0 (globによるファイルパスの展開がサポート, など)</description></item><item><title>2025/11/10〜2025/11/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/11/16.html</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/11/16.html</guid><description>Deno 3.0.0-rc.0 (グローバルのタイマーAPIがWeb標準ではなくNode.js互換のものへ変更, `--deny-*`と`--allow-*`併用時の挙動の変更, `allowScripts`フィールドのサポート, `deno compile`で`--preload`オプションがサポート, `Deno.kill()`および`Deno.ChildProcess#kill()`で数値によるシグナルの指定がサポート, `node:process` - GID/UID 関連のAPIが追加, など)</description></item><item><title>2025/11/03〜2025/11/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/11/09.html</link><pubDate>Sun, 09 Nov 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/11/09.html</guid><description>Denoの直近のアップデート (`deno.json`に`allowScripts`フィールドが追加, パーミッションブローカーのドキュメントが追加), Deno Advent Calendar 2025</description></item><item><title>2025/10/27〜2025/11/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/11/02.html</link><pubDate>Sun, 02 Nov 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/11/02.html</guid><description>Deno v2.5.5 &amp;amp; Deno v2.5.6 (`--unstable-tsgo` - `typescript-go`の実験的サポート, `minimumDependencyAge`のサポート, `deno audit`コマンドが実装, パーミッションブローカーのリクエストで`pid`フィールドがサポート, `deno completions` - `--dynamic`オプションが追加, `deno check`に`compilerOptions.skipLibCheck`及び`compilerOptions.isolatedDeclarations`のサポートが追加, `deno lsp` - `source.organizeImports`コードアクションがサポート, `node:sqlite` - `StatementSync#columns()`と`backup()`が実装, など), @fresh/init@2.2.2 (`nodeModulesDir`の設定が`auto`から`manual`に変更)</description></item><item><title>2025/10/20〜2025/10/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/10/26.html</link><pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/10/26.html</guid><description>Denoの直近のアップデート (typescript-goサポートがマージ, `deno.json`での`minimumDependencyAge`の指定と特定のパッケージの除外がサポート, `deno audit`コマンドがマージ, など), Deno Deployのアップデート (Databases - データベースマイグレーションのサポート), `dependencies`/`devDependencies`のサポートについて, freshのリリース (@fresh/init@2.2.1 - `@/`形式のパスエイリアスが設定されるよう改善, @fresh/core@2.1.3 - HEADの取り扱いの改善, など)</description></item><item><title>2025/10/13〜2025/10/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/10/19.html</link><pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/10/19.html</guid><description>Denoにおけるサプライチェーン攻撃関連の対応について (`--minimum-dependency-age`と`deno.json`への`minimumDependencyAge`の追加について), Hono v4.10.0 (`hono/client` - Middlewareに関する型推論の改善, `hono/request` - `cloneRawRequest`が追加, `hono/ssg` - `defaultPlugin`が追加), Hono CLIが公開</description></item><item><title>2025/10/06〜2025/10/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/10/12.html</link><pubDate>Sun, 12 Oct 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/10/12.html</guid><description>Deno v2.5.4 (`deno update`でのバージョン更新時にバージョンレンジの`~`を維持する改善が実施, `node:fs` - Windowsにおいて`Stats`オブジェクトに`ino`/`nlink`/`blocks`の3つのプロパティーが設定されるよう改善, JSXプラグマコメントに関するバグの修正, など), deno_stdのリリース (`@std/assert@1.0.15` - `@std/assert/unstable-equals`と`@std/assert/unstable-strict-equals`が追加, `@std/async@1.0.15` - `@std/async/unstable-throttle`に`ensureLastCall`オプションが追加, `@std/html@1.0.5` - `escapeCss()`と`escapeJs()`が追加, など), `deno audit`コマンドについて</description></item><item><title>2025/09/29〜2025/10/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/10/05.html</link><pubDate>Sun, 05 Oct 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/10/05.html</guid><description>Deno v2.5.3 (パーミッションブローカーが実装, `deno check`で`cloudflare:`などのURLスキームが検出されるとエラーが発生する問題が修正, `Deno.FsFile#utime()`及び`Deno.FsFile#utime()`のパーミッションの見直し, `node:sqlite` - `--allow-all`が指定されている場合のみ、`ATTACH DATABASE` の実行がサポート, など), `typescript-go`との統合について (`--unstable-tsgo`), Deno Deploy EA に関するアップデート (Prisma Postgresのプロビジョニングがサポート, `repository_dispatch`のサポート, Deno Deploy EAの名称について)</description></item><item><title>2025/09/22〜2025/09/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/09/28.html</link><pubDate>Sun, 28 Sep 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/09/28.html</guid><description>Deno v2.5.2 (`deno lsp` - BDDスタイルのテストケースの検出と実行がサポート, `deno bundle --watch`でHTMLエントリーポイントの再ビルドが適切に動作するよう改善, `deno check`で`compilerOptions.paths`がサポート, `Uint8Array`にBase64/Hex関連のAPIの型定義が追加, など), Deno の直近の変更やPRについて (パーミッションブローカー, `deno approve-scripts`コマンド, `deno.json`への`private: true`フィールドの追加), Deploy EA Databases へのデータベースのプロビジョニング機能のサポートについて</description></item><item><title>2025/09/15〜2025/09/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/09/21.html</link><pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/09/21.html</guid><description>Deno v2.5.1 (WebSocketでプロキシーの利用や`Host`ヘッダーのカスタマイズなどがサポート, macOSで`deno init --npm`が動作しなくなっていた問題が修正, `deno lsp` - `deno.cacheOnSave`で`deno.lock`を更新しないよう挙動が変更, など), Fresh v2.1 (CSPミドルウェアが追加, 複数ミドルウェアのサポート), Deno への`--minimum-dependency-age`オプションの追加について</description></item><item><title>2025/09/08〜2025/09/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/09/14.html</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/09/14.html</guid><description>Deno v2.5 がリリース, Fresh v2 が正式にリリース</description></item><item><title>Deno v2.5</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v2.5.html</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v2.5.html</guid><description>Deno v2.5がリリース (`Deno.bundle()`が追加, `deno bundle`でHTMLエントリーポイントがサポート, `deno lint`に`no-import-prefix`及び`no-unversioned-import`ルールが追加, `deno install` - インストール結果やライフサイクルスクリプトに関するレポートの改善, 引数なしで`deno run`を実行した際のタスクの一覧表示機能が再導入, `deno check` - SvelteKit向けの機能改善, `deno.json`でのパーミッションの定義がサポート, `DENO_AUDIT_PERMISSIONS`環境変数の導入, `Deno.ChildProcess`の`stdout`と`stderr`に`Response`ライクな問い合わせメソッドが追加, `Deno.test`に`before*`/`after*`フックが追加, `Deno.serve()`などに`tcpBacklog`オプションが追加, `WebSocket`に`headers`オプションが追加, TypeScript 5.9へのアップデート, V8 14.0.0へのアップデート, `--unstable-node-globals`の再導入, `bundleDependencies`のサポート, など)</description></item><item><title>2025/09/01〜2025/09/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/09/07.html</link><pubDate>Sun, 07 Sep 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/09/07.html</guid><description>Deno v2.5 向けの機能の追加について (`Deno.bundle()`APIが追加, `--permission-set`オプションが追加, など), `deno_std`のリリース (`@std/net@1.0.6` - `matchSubnets()`などのAPIが追加, `@std/streams@1.0.12` - `AbortStream`の非推奨化), Fresh 2.0 Graduates to Beta, Adds Vite Support</description></item><item><title>2025/08/25〜2025/08/31の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/08/31.html</link><pubDate>Sun, 31 Aug 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/08/31.html</guid><description>Deno v2.5 向けの機能の追加について (`Deno.test`への`before*`/`after*`フックのサポート, `Deno.ChildProcess.{stdout,stderr}`への`Response`ライクな問い合わせメソッドの追加), Fresh v2 関連のアップデート (`@fresh/init@2.0.0`が公開, Fresh v2 の beta バージョンが公開, Fresh 公式サイトが`@fresh/plugin-vite`ベースへ移行), Deno Deploy EA - `DENO_DEPLOY`や`DENO_DEPLOY_ORG_ID`などの環境変数が追加</description></item><item><title>2025/08/18〜2025/08/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/08/24.html</link><pubDate>Sun, 24 Aug 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/08/24.html</guid><description>Deno v2.4.5 (`deno lsp` - Pull Diagnostics が実装, `DENO_INSTALL_ARCH`環境変数が追加, `deno install`の出力が改善, `deno publish` - precompiled JSX transform のサポート, `Deno.chmod`のWindowsサポート, TCPソケットの`backlog`パラメーターの調整, など), Deno Deploy EA に関するアップデート (Deno KV のサポート, Exposing an environment variable as a file)</description></item><item><title>2025/08/11〜2025/08/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/08/17.html</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/08/17.html</guid><description>Deno v2.4.4 (`EventSource`でヘッダーのカスタマイズがサポート, Deno KV向けの環境変数の追加, `deno repl`で`--json`がサポート, など), `@std/net@1.0.5` (`@std/net/unstable-ip`が追加), `@std/text@1.0.16` (`@std/text/unstable-trim-by`が追加), `@std/toml@1.0.9` (プロトタイプ汚染攻撃への対策), `deno deploy`コマンドのドキュメント</description></item><item><title>2025/08/04〜2025/08/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/08/10.html</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/08/10.html</guid><description>`deno.json`でのパーミッションセットの定義について, FreshのViteプラグインが公開 (`@fresh/plugin-vite`), Hono v4.9.0 (`hono/deno` - プラグインの導入に伴う`toSSG()`における各種フックの非推奨化, `hono/client` - `parseResponse()`の追加, `hono/jwt` - `iss`の検証がサポート, など)</description></item><item><title>2025/07/28〜2025/08/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/08/03.html</link><pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/08/03.html</guid><description>Deno v2.4.3 (`deno bundle` - `--node-modules-dir=manual`のサポート, `deno task` - `--recursive`の挙動の改善, など), FreshのViteプラグインについて</description></item><item><title>2025/07/21〜2025/07/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/07/27.html</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/07/27.html</guid><description>Deno Deploy EA におけるデータベースのサポートについて, Fresh v2 に関する直近でのアップデート (Tailwind CSS v4のサポート, 公式ミドルウェアの拡充など), `@std/cli@1.0.21` (`promptSelect()`や`promptMultipleSelect()`で選択肢の絞り行みがサポート, など), `@std/testing@1.0.15` (`stubProperty()`が追加), `@std/data-structures@1.0.9` (`D2Array`が追加)</description></item><item><title>2025/07/14〜2025/07/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/07/20.html</link><pubDate>Sun, 20 Jul 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/07/20.html</guid><description>Deno v2.4.2 (`deno lsp`で`tsconfig.json`がサポート, `--unstable-raw-imports` - npmパッケージ中のファイルの読み込みがサポート, など), `@deno/esbuild-plugin@1.1.0` (`bytex`/`text`形式での`import`がサポート), Upyo - クロスプラットフォームで動作するメール送信ライブラリ</description></item><item><title>2025/07/07〜2025/07/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/07/13.html</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/07/13.html</guid><description>Deno v2.4.1 (Tunnelling - `deno run`に`--connected`オプションが追加, OpenTelemetry - vsockトランスポート, `deno serve`でImport mapsによるエントリーポイントの解決がサポート, `--unstable-raw-imports` - npmパッケージに関する挙動の変更), `deployd`: Self-Hosted Deno Deploy, Deno Deploy Cloud Connections</description></item><item><title>2025/06/30〜2025/07/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/07/06.html</link><pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/07/06.html</guid><description>Deno v2.4.0, `@std/text@1.0.15` (`longestCommonPrefix()`, `toSentenceCase()`, `toTitleCase()`が追加), Aleph.jsのメンテナンスが停止</description></item><item><title>Deno v2.4</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v2.4.html</link><pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v2.4.html</guid><description>Deno v2.4がリリース, OpenTelemetryサポートが安定化, `--unstable-raw-imports`が追加 (ファイルのテキスト/バイト形式での読み込みがサポート), `deno bundle`について, `deno update`コマンドが追加, `deno deploy`コマンドについて, `deno check` - `tsconfig.json`の検出がサポート, `--preload`/`--import`オプションの追加, `Deno.execPath()`で`--allow-read`が不要化, `--unstable-subdomain-wildcards`が安定化, `--allow-net`でCIDR表記による指定がサポート, `--deny-import`がサポート, `deno fmt`がSVG/XML/Mustacheのフォーマットをサポート, `deno run` - Import mapsによるエントリーポイントの解決がサポート, `deno run`で`--coverage`がサポート, `Deno.Command`で`detached`オプションがサポート, `Deno.addSignalListener`でSIGHUPがサポート (Windows), `--unstable-sloppy-imports`と`--unstable-node-conditions`が安定化, `DENO_COMPAT`環境変数が導入, `Buffer`/`global`/`setImmediate`/`clearImmediate`がデフォルトでグローバル化</description></item><item><title>2025/06/23〜2025/06/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/06/29.html</link><pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/06/29.html</guid><description>Denoの直近の変更について (`--unstable-raw-imports`, `Deno.execPath()`における`--allow-read`の指定が不要化, `deno update`コマンドが追加, `deno fmt`で`.svg`/`.xml`/`.mustache`のサポート), Deno v2.3.7 (`deno bundle`の改善 - `--watch`オプションのサポートなど, `deno install -g` - `@{scope}/cli`形式のパッケージの取り扱いが改善, など), LogTape 1.0.0 (CloudWatch Logsのサポート, nonBlockingオプションの追加, Pinoやwinstonとの統合, など)</description></item><item><title>2025/06/16〜2025/06/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/06/22.html</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/06/22.html</guid><description>OpenTelemetryサポートの安定化について, `deno publish`でのnpmパッケージの公開について, Freshにおける`esbuild_deno_loader`から`@deno/esbuild-plugin`への移行について, Hono v4.8.0 (`hono/route`が追加, `hono/ssg`でプラグインシステムが実装, `@hono/mcp`パッケージの追加, など)</description></item><item><title>2025/06/09〜2025/06/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/06/15.html</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/06/15.html</guid><description>Deno v2.3.6 (`deno.json` - `patch`から`links`へのリネーム, esbuildベースの`deno bundle`コマンドが追加, `deno deploy`サブコマンドが追加, `deno install`の安定性の改善, `deno test --doc` - `Deno.test()`のサポート, `--unstable-node-conditions`オプションが追加, WindowsでPlaywrightが動作するように, OpenTelemetry - ログの`timeUnixNano`フィールドが設定されるよう改善, `Deno.createHttpClient()` - vsockによるプロキシーのサポート, `Deno.Command`のパフォーマンス改善), `@std/streams@1.0.10` (`AbortStream`が追加), `@deno/esbuild-plugin` (Deno公式のesbuildプラグイン), など</description></item><item><title>2025/06/02〜2025/06/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/06/08.html</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/06/08.html</guid><description>直近でのDenoの変更について (`--unstable-node-conditions`オプションが実装, esbuildベースの`deno bundle`を実装するPRがマージ, `--preload`/`--import`オプションの追加), @deno/rolldown-plugin (Deno公式のRolldownプラグイン), @deno/loader (各種バンドラーなど向けのモジュール解決用パッケージ)</description></item><item><title>2025/05/26〜2025/06/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/06/01.html</link><pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/06/01.html</guid><description>Deno v2.3.4 及び v2.3.5 がリリース (`--unstable-subdomain-wildcards`オプションが追加, `DENO_USR2_MEMORY_TRIM`環境変数の導入, `globalThis.performance`の取り扱いの変更, WebGPU - `Deno.UnsafeWindowSurface#resize`及び`GPUQueue#onSubmittedWorkDone`が実装, `deno lsp` - `deno/testRun`の改善やプロジェクト外の`deno.json`の参照がサポート, `deno fmt` - Tagged template中のCSSのフォーマットに関する改善、`require()`でのnpmパッケージ時の読み込みで`--allow-read`が不要化, OpenTelemetry - シグナル受信時にバッファリングされていたシグナルがフラッシュされるよう改善, など), Deno Deploy Early Access (EA) について, esbuildをベースにした`deno bundle`コマンドの再導入について, deno_stdのリリース (`@std/testing@1.0.13` - `assertInlineSnapshot()`が追加, `@std/cli@1.0.19` - `ProgressBar` APIの見直し, `@std/collections@1.1.1` - `binarySearch()`が追加, `@std/dotenv@0.225.5` - プロトタイプ汚染攻撃への対策, `@std/path@1.1.0` - `URL`オブジェクトのサポートが安定化, `@std/random@0.1.2` - `getRandomValuesSeeded()`と`nextFloat64()`が追加, など), `vlt`がJSRをサポート</description></item><item><title>2025/05/19〜2025/05/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/05/25.html</link><pubDate>Sun, 25 May 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/05/25.html</guid><description>Reports of Deno&amp;#39;s Demise Have Been Greatly Exaggerated (Deno DeployやDeno KVに関して現在進んでいる取り組みについての紹介など), `deno deploy`サブコマンドについて, Deno SvelteKit adapter (`@deno/svelte-adapter`) が公開</description></item><item><title>2025/05/12〜2025/05/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/05/18.html</link><pubDate>Sun, 18 May 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/05/18.html</guid><description>Deno v2.3.2 &amp;amp; v2.3.3がリリース (`deno lint`のプラグインでコメントがサポート, `deno coverage --html`でOS設定に基づいたテーマの切り替えがサポート, `deno jupyter`で複数カーネルの管理がサポート, `deno check` - Ambient moduleの取り扱いの改善や`deno.lock`の書き込みタイミングの変更など, `deno fmt` - Tagged templateリテラル中の構文エラーの取り扱いが改善, `deno lsp`で巨大なファイルの取り扱いが改善, `DENO_USE_CGROUPS`環境変数が導入, OpenTelemetry - `boot_failure`及び`uncaught_exception`イベントが追加, `Deno.serve()` - `DENO_UNSTABLE_CONTROL_SOCK` (unconfigured jsruntime)に対する通知がサポート, `Deno.createHttpClient()` - UNIXソケットによるプロキシーのサポート, TypeScriptコードでExplicit Resource Managementがネイティブでサポート, Node.js互換性の改善により`create-vue`などが動作するように), An Update on Fresh (Fresh v2のリリース計画や変更点について), deno_stdのリリース (`@std/collections@1.1.0` - 各種APIでのIterable引数のサポートが安定化, など), denoland/setup-deno v2.0.3 (DENO_DIRのキャッシュがサポート, LTSバージョンがサポート), Prisma v6.8.0 (`prisma-client-js`からDenoのサポートが削除され、`prisma-client`へ移行)</description></item><item><title>2025/05/05〜2025/05/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/05/11.html</link><pubDate>Sun, 11 May 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/05/11.html</guid><description>Lume v3 (Site#addの追加、プラグインの振る舞いの変更, jsxプラグインの刷新, esbuildプラグインの改善, など), dnt v0.42.0 (Workspaceのサポート, deno.jsonの自動検出, legacy decoratorsがデフォルトで無効化)</description></item><item><title>2025/04/28〜2025/05/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/05/04.html</link><pubDate>Sun, 04 May 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/05/04.html</guid><description>Deno v2.3.0がリリース, deno_stdのパッケージをBunでテストする仕組みが導入</description></item><item><title>Deno v2.3</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v2.3.html</link><pubDate>Sun, 04 May 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v2.3.html</guid><description>Deno v2.3がリリース, `deno.lock`のv5がデフォルトで有効化, `deno add`コマンドに`--npm`と`--jsr`オプションが追加, 引数なしでの`deno check`がサポート, `tsconfig.json`の自動検出がサポート, `deno compile`でFFIとNode.jsネイティブアドオンのサポート, `deno compile`コマンドに`--exclude`オプションが追加, `deno fmt`コマンドでTagged template内のHTML/CSS/SQLのフォーマットがサポート, `deno fmt`コマンドで`dprint-plugin-typescript`のオプションのサポートが拡充, `deno test --coverage`がカバレッジレポートの生成も行うよう変更, コメントによるカバレッジ収集の制御がサポート, `deno lsp`で`deno jupyter`向けの挙動の改善が実施, `deno clean`に`--except`オプションが追加, `Deno.connect()`で`AbortSignal`がサポート, `Deno.webgpu`APIの追加, `--allow-env`の挙動の改善, Windows向けの実行可能ファイルへのコード署名, `node:sqlite` - `DatabaseSync#loadExtension`が実装, TypeScript v5.8へのアップデート, OpenTelemetry - Span Links/Span Eventsに設定されたAttributesの送信がサポート, など</description></item><item><title>2025/04/21〜2025/04/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/04/27.html</link><pubDate>Sun, 27 Apr 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/04/27.html</guid><description>Deno v2.2.12 (Windowsにおけるdeno compileの安定性の改善), Deno v2.3のリリースについて (`Deno.connect`での`AbortSignal`のサポート, TypeScript v5.8, `DENO_EMIT_CACHE_MODE`のサポート), Deno v2.3.0-rc.1〜rc.3 (deno lsp - npmパッケージのサブパスに関する振る舞いの改善, deno doc --html - ダークモードのサポート, Node.js組み込みモジュールを`node:`なしで読み込んだ際の警告が削除), deno_stdのリリース (@std/encoding@1.0.10 - Base32/64関連APIの`proposal-arraybuffer-base64`への追従, @std/cli@1.0.17 - `promptSelect`へ`visibleLines`オプションが追加, @std/data-structures@1.0.7 - `BidirectionalMap`の改善, @std/fs@1.0.17 - Node.jsサポートの改善, @std/text@1.0.13 - `dedent`のパスが変更, @std/toml@1.0.5 - `parse`のバグ修正), pnpmとYarnがJSRをサポート, deno-postgres v0.19.4 (`jsr:@db/postgres`からの利用やDeno v2向けのサポートの改善)</description></item><item><title>2025/04/14〜2025/04/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/04/20.html</link><pubDate>Sun, 20 Apr 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/04/20.html</guid><description>Deno v2.2.10 (JavaScriptファイルでのusingのサポート, vsockのサポート, `node:stream`の互換性の大きな改善, `node:test` - `describe()`の実装, など), Deno v2.2.11 (npmパッケージの解決が高速化, CommonJS/ESMモジュールの検出の改善, `node:test` - `TestContext.assert`が追加, など), Deno v2.3.0-rc.0が公開, dax v0.43.0 (組み込みの`deno`コマンドや`$.cd`の削除など)</description></item><item><title>2025/04/07〜2025/04/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/04/13.html</link><pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/04/13.html</guid><description>Deno v2.2.9 (Lockfile v5, `deno task` - チルダの展開やバッククォートによるコマンド実行がサポート, `deno compile` - `node_modules`の取り扱いが改善, `node:process` - `loadEnvFile()`が実装, `node:fs/promises` - `FileHandle`に`createReadStream()`と`createWriteStream()`が実装, `node:util` - `parseArgs()`で`allowNegative`オプションがサポート, `node:child_process` - `spawnSync()`で`input`オプションがサポート, など), deno_stdのリリース (`@std/encoding@1.0.9` - APIの見直しやUint8Arrayサポートの拡充, `@std/fs@1.0.16` - Node.jsサポートの改善, など), node-test-viewer.deno.dev</description></item><item><title>2025/03/31〜2025/04/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/04/06.html</link><pubDate>Sun, 06 Apr 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/04/06.html</guid><description>Deno v2.2.7 (`panic.deno.com`の導入, OpenTelemetry - V8 JS Engine Runtime metrics のサポート, npmライフサイクルスクリプトに関する改善, など), Deno v2.2.8 (`deno compile` - `--include`におけるatime/birthtime/mtime/ctimeのサポート, `deno fmt`の終了コードの改善, など), vsockのサポートについて</description></item><item><title>2025/03/24〜2025/03/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/03/30.html</link><pubDate>Sun, 30 Mar 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/03/30.html</guid><description>Deno v2.2.6 (`--unstable-lazy-dynamic-imports`の追加, peerDependenciesに関する取り扱いの変更, `deno install`におけるnpmパッケージのインストールが高速化, など), deno_stdのリリース (@std/uuid@1.0.6 - UUIDv6の実験的サポート, @std/encoding@1.0.8 - 各モジュールの整理や`@std/encoding/unstable-base64`の追加など, @std/cache@0.2.0 - `memoize()`に`errorIsCacheable`オプションが追加, など), `deno add`/`deno install`への`--npm`/`--jsr`オプションの追加について</description></item><item><title>2025/03/17〜2025/03/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/03/23.html</link><pubDate>Sun, 23 Mar 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/03/23.html</guid><description>Deno v2.2.5 (npmパッケージに対するパッチの実験的サポート, OpenTelemetry - Span Eventsのサポート, node:sqlite - ATTACH DATABASEが無効化, など), 静的解析可能なdynamic importに対する遅延読み込みのサポートについて (`--unstable-lazy-dynamic-imports`)</description></item><item><title>2025/03/10〜2025/03/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/03/16.html</link><pubDate>Sun, 16 Mar 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/03/16.html</guid><description>Deno v2.2.4 (OpenTelemetry - Context propagationのサポートや`node:http`の`request()`の計装, `deno check` - `package.json`のTypeScript関連の仕様のサポートが改善, `deno install` - プライベートなnpmパッケージや`package.json`における`file:`形式の依存のサポート, `deno lint` - プラグインシステムのバグ修正, CommonJSサポートに関する改善, `FORCE_COLOR`環境変数のサポート), TypeScript 7, GoatDB - Lightweight NoDB for Deno &amp;amp; React</description></item><item><title>2025/03/03〜2025/03/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/03/09.html</link><pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/03/09.html</guid><description>Deno v2.2.3 (deno lint - JavaScriptプラグインにおけるセレクターの改善, ESM/CommonJSの相互運用性に関する改善, node:sqliteやOpenTelemetryサポートなどに関するバグの修正, など), deno_stdのリリース (@std/cli@1.0.14 - ProgressBarの再描画に関するインターバルが変更, @std/fs@1.0.14 - Node.jsサポートの改善, @std/tar@0.1.6 - mode, uid, gidの取り扱いの変更), Nitro v2.11.0 (Deno v2との互換性の改善やデータベースレイヤーにおけるnode:sqliteのサポートなど), Platform Node.js compat (Deno DeployやCloudflare Workersなどの各種プラットフォームにおけるNode.js互換性を掲載)</description></item><item><title>2025/02/24〜2025/03/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/03/02.html</link><pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/03/02.html</guid><description>Deno v2.2.2 (`deno check` - `compilerOptions.jsxImportSource`に関するリグレッションの修正, `deno lint`のプラグインシステムに関するバグ修正, など), @sigma/deno-compile-extra (deno compile向けのポリフィル), bxnch (`deno bench --json`から画像を生成してくれるサービス)</description></item><item><title>2025/02/17〜2025/02/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/02/23.html</link><pubDate>Sun, 23 Feb 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/02/23.html</guid><description>Deno v2.2.0がリリース, Deno v2.2.1 (@types/*へのフォールバックのサポート, deno publishでjsx/tsxファイルを含むパッケージの公開がサポート, など)</description></item><item><title>Deno v2.2</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v2.2.html</link><pubDate>Sun, 23 Feb 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v2.2.html</guid><description>Deno v2.2がリリース (deno lintでJavaScriptプラグインがサポート, deno lintにReact/JSX関連のルールが追加, `deno lint --rules`の挙動が変更, WebTransportの実験的サポート, `Deno.cwd()`でパーミッションが不要化, `Deno.cpuUsage()`が実装, OpenTelemetry - `Deno.serve()`に関するMetricsの拡充, `node:sqlite`が実装, `Temporal.ZonedDateTime#getTimeZoneTransition`が実装, `createImageBitmap()`の互換性が改善, Web Cache APIでlscacheバックエンドがサポート, deno outdatedで依存関係の対話的更新がサポート, deno taskでワイルドカード指定によるタスクの一括実行がサポート, deno checkで`compilerOptions.rootDirs`がサポート, deno compileでsloppy importsがサポート, deno jupyterでGPUTextureとGPUBufferの表示がサポート, `Deno.bench`に`warmup`と`n`オプションが再導入, TypeScript v5.7, V8 v13.4)</description></item><item><title>2025/02/10〜2025/02/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/02/16.html</link><pubDate>Sun, 16 Feb 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/02/16.html</guid><description>Deno v2.2のリリースについて (おそらくV8 13.4へのアップデートなどの関係で延期されています), JavaScriptファイルでのExplicit Resource Managementのサポートについて, deno fmtでのTOMLのサポートについて, deno transpileコマンドの追加に関する提案, Deno v2.1.10 (deno compileの--includeオプションの改善, ReadableStreamに関するバグ修正, npmパッケージ中の拡張子を持たないモジュールの取り扱いの改善, など), @std/cli@1.0.13 (ProgressBar/ProgressBarStream APIが追加)</description></item><item><title>2025/02/03〜2025/02/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/02/09.html</link><pubDate>Sun, 09 Feb 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/02/09.html</guid><description>Deno v2.2のリリースタイミングと直近の変更について (deno lintのJavaScriptプラグイン, node:sqliteの実装, deno outdatedでの対話的更新のサポート), `typescript-runtime-type-benchmarks`にDenoが追加, Hono v4.7.0 (`hono/proxy`, `hono/language`及び`hono/jwk`が追加)</description></item><item><title>2025/01/27〜2025/02/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/02/02.html</link><pubDate>Sun, 02 Feb 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/02/02.html</guid><description>Deno v2.1.8/v2.1.9 (OpenTelemetry - HTTPSエンドポイントのサポート, ワークスペースの各メンバーごとにcompilerOptionsが定義できるよう改善, ホームディレクトリの.npmrcに関するサポート, など), DenoにおけるTypeScript v5.7のサポートについて, deno_stdのリリース (TypeScript v5.7向けの調整, @std/logの非推奨化について, @std/cli@1.0.12 - Spinnerで標準エラー出力がサポート, など)</description></item><item><title>2025/01/20〜2025/01/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/01/26.html</link><pubDate>Sun, 26 Jan 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/01/26.html</guid><description>Deno v2.1.7 (v2.1.6で発生していたWorkerに関する問題の修正など), deno_stdのリリース (@std/async@1.0.10 - `waitFor`の追加, @std/fs@1.0.10 - Node.js向けサポートの改善), wasmbuild v0.19.0 (古いバージョンのDenoやブラウザーなど向けに --inline オプションが追加), @preact/preset-vite v2.10.0 (Denoのサポート)</description></item><item><title>2025/01/13〜2025/01/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/01/19.html</link><pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/01/19.html</guid><description>Deno v2.1.6 (compilerOptions.typesの取り扱いの改善, vite/client向けの改善, npm-check-updatesパッケージやplaywright installコマンドを動かすための対応など), esm.sh v136 (jsrパッケージの正式サポート, pkg.pr.newのサポートなど), Nuxtのチュートリアルが公開</description></item><item><title>2025/01/06〜2025/01/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/01/12.html</link><pubDate>Sun, 12 Jan 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/01/12.html</guid><description>Deno v2.1.5 (QUICサポート, deno lintのJavaScriptプラグイン向けの内部的な基盤の追加, OpenTelemetryサポートにおける@deno/otelの不要化, など), WinterTCに関するアナウンス, deno_stdのリリース (@std/fs@1.0.9 - lstatSync/statSyncの追加), wasmbuild v0.18.0 (WASMモジュールへの移行)</description></item><item><title>2024/12/30〜2025/01/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2025/01/05.html</link><pubDate>Sun, 05 Jan 2025 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2025/01/05.html</guid><description>直近のDenoの変更について (Geometry Interfaces Module Level 1 の実装, OpenTelemetryサポートにおける`@deno/otel`の不要化について), `deno_std`の今後の安定化に関する計画, lint.deno.land から docs.deno.com への移行について</description></item><item><title>2024/12/23〜2024/12/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/12/29.html</link><pubDate>Sun, 29 Dec 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/12/29.html</guid><description>permission sets in deno.json (deno.jsonでのパーミッション管理機能について), deno lint - JavaScriptプラグインでのセレクターのサポートについて</description></item><item><title>2024/12/16〜2024/12/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/12/22.html</link><pubDate>Sun, 22 Dec 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/12/22.html</guid><description>QUICとWebTransport APIのサポートについて, deno lint - JavaScriptプラグインを実行するための内部APIが追加, @std/cli@1.0.9 (promptMultipleSelectが追加), @std/fs@1.0.7 &amp;amp; @std/fs@1.0.8 (DenoのAPIのポート), @std/testing@1.0.7 &amp;amp; @std/testing@1.0.8 (configureGlobalSanitizersが実験的に追加), `lint.deno.land`から`docs.deno.com`への移行について, 次世代JSランタイム（Deno,Bun）の使い方</description></item><item><title>2024/12/09〜2024/12/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/12/15.html</link><pubDate>Sun, 15 Dec 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/12/15.html</guid><description>Deno v2.1.4 (--unstable-npm-lazy-cachingオプションの導入など), deno_lint v0.69.0 (JSX関連のルールやrules-of-hooksルールなどの追加), Deno本体での`node:sqlite`のサポートについて, Denoのファイルシステム関連APIの@std/fsへの移植について, UnstorageでのDeno KVドライバーの実装について</description></item><item><title>2024/12/02〜2024/12/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/12/08.html</link><pubDate>Sun, 08 Dec 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/12/08.html</guid><description>Deno v2.1.3 (deno taskで--recursiveオプションが動作するように, deno taskにおける子プロセスの取り扱いの改善, deno fmtでscriptを持つHTMLファイルのフォーマットの安定性が改善, OpenTelemetry - metricsのexportがサポート, npm workspaceにおけるworkspace:~及びworkspace:^がサポート, Temporal.Duration#toLocaleStringでロケールが考慮されるよう改善), @std/http@1.0.12 (@std/http/unstable-route - ハンドラーのinfo引数とparams引数の順番が変更), deno lintにおけるJavaScriptプラグインのサポートについて, Run your Next.js SSR app on Deno Deploy</description></item><item><title>2024/11/25〜2024/12/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/12/01.html</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/12/01.html</guid><description>Deno v2.1.2 (WASMモジュールから提供される関数以外の要素の読み込みがサポート, deno checkで@importがサポート, TypeScriptのresolution-modeがサポート, SQLファイルに対するdeno fmt --checkが常に失敗する問題が修正, deno init --npmでscopedパッケージがサポート, deno lsp - import宣言の補完時にWASMモジュールが候補として含まれるよう改善, deno publishで`bun:`URLがサポート, OpenTelemetry向けにDeno.serveとfetch APIで計装が実施, `--unstable-detect-cjs`が再導入), @std/cli@1.0.7 (promptSelectが実装), @std/tar@0.1.4 (pax形式のアーカイブを展開できない問題の修正), deno lintへのJSX関連のルールの追加について, Prisma v6 (Deno v2との互換性が改善), SimpleWebAuthn v12 (JSRパッケージが公開)</description></item><item><title>2024/11/18〜2024/11/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/11/24.html</link><pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/11/24.html</guid><description>Deno v2.1.0, Deno v2.1.1, @std/archiveが削除, @std/async@1.0.9 (retryにisRetriableオプションが実験的に追加), @std/csv@1.0.4 (stringifyにおけるカラム名の推論が実験的にサポート)</description></item><item><title>Deno v2.1</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v2.1.html</link><pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v2.1.html</guid><description>Deno v2.1がリリース。WASMモジュールのサポート, deno outdatedという新規コマンドが追加, deno taskでタスク間の依存関係を定義できるように, deno taskでDeno workspacesがサポート (--filterオプション), deno task --eval, deno init --npm (pnpm create相当のコマンド), deno compileでローカルファイル/ディレクトリの埋め込みがサポート, deno fmtでSQLのフォーマットが実験的にサポート, deno fmtとdeno lintで.gitignoreがサポート, DENO_TRACE_PERMISSIONS環境変数の導入, --env-fileで複数の.envファイルの読み込みがサポート, --allow-envで特定の名前で始まる環境変数を一括で許可できるように, Deno.telemetry (OpenTelemetryの実験的サポート), --unstable-detect-cjsの安定化, --unstable-node-globalsオプションの導入, fetch()のリクエストボディでのAsyncIterableサポートが再導入</description></item><item><title>2024/11/11〜2024/11/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/11/17.html</link><pubDate>Sun, 17 Nov 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/11/17.html</guid><description>Denoの直近の変更について (deno task - オブジェクト形式でのタスク定義がサポート, --unstable-detect-cjsが安定化, fetchのリクエストボディでAsyncIterableがサポート, Deno.jupyter.imageが追加), @std/assert@1.0.8 (assertEqualsでプロトタイプチェーンをさかのぼってプロパティーの比較が行われるよう改善), @std/expect@1.0.8 (expect.addSnapshotSerializerが実装), @std/ini@1.0.0-rc.5 (parseで数値やboolean値などがサポート), Deno Advent Calendar 2024</description></item><item><title>2024/11/04〜2024/11/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/11/10.html</link><pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/11/10.html</guid><description>Deno v2.0.5 (ワークスペースメンバーのワイルドカード形式での指定がサポート, .cts形式のサポート, など), Deno v2.0.6 (Deno.serveでのRequest.signalのサポートなど), Deno v2.1で導入が検討されている機能について (deno updateとdeno outdatedコマンド, deno fmtでの.sqlのサポート, Deno.tracing), denoland/kv-utils</description></item><item><title>2024/10/28〜2024/11/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/11/03.html</link><pubDate>Sun, 03 Nov 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/11/03.html</guid><description>Deno v2.0.4 (deno lspにtypescript.preferences.preferTypeOnlyAutoImportsオプションが追加など), @std/expect@1.0.7 (Asymmetric Matchersサポートの改善, expect.assertionsのサポート), @std/testing@1.0.4 (stubでオブジェクトのプロパティーのスタブがサポート), Wasmモジュールのサポートについて, package-manager-detectorにおけるDenoサポートとdeno updateコマンドについて, Build an Astro site with Deno</description></item><item><title>2024/10/21〜2024/10/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/10/27.html</link><pubDate>Sun, 27 Oct 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/10/27.html</guid><description>Denoのv2.0.3 (Interactive Inlay Hints for Typesのサポート, deno compileでのNode-APIのサポート, など), Deno v2.1向けの変更について (wireitを参考にしたタスクの依存関係の定義, など), @deno/nextjs-start (Deno Deployでnext startを動かすためのパッケージ), @std/async@1.0.7 (throttleが実装), @std/collections@1.0.9 (slidingWindowsでIterableがサポート), @std/expect@1.0.6 (expect.objectContainingが実装)</description></item><item><title>2024/10/14〜2024/10/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/10/20.html</link><pubDate>Sun, 20 Oct 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/10/20.html</guid><description>Denoのv2.0.1とv2.0.2がリリース (--unstable-detect-cjsが追加, SvelteKit/Wrangler/Next.jsなどのサポートの改善, deno addやdeno removeの改善, など), @deno/otel (OpenTelemetryのエクスポーター), deno_stdへの@std/kvパッケージの追加について, esbuild_deno_loader v0.11.0 (Deno v2とDeno workspacesのサポート)</description></item><item><title>2024/10/07〜2024/10/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/10/13.html</link><pubDate>Sun, 13 Oct 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/10/13.html</guid><description>Deno v2がリリース (LTSリリースチャネルとDeno for Enterpriseが正式に発表), deno_stdのリリース (@std/cborの追加, @std/collectionsでのIterableサポートの拡充, など), UnJSにおけるDenoサポートについて</description></item><item><title>2024/09/30〜2024/10/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/10/06.html</link><pubDate>Sun, 06 Oct 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/10/06.html</guid><description>The Final Touches: What’s New In v2.0.0-rc.10 (Deno v2の正式リリースについて), Deno Deploy NextGen, Deno v2.0.0-rc.{8,9,10}がリリース (`URLPattern#exec`の振る舞いの変更, deno lspで`npm:@types/*`を追加するQuick fixがサポート, など), Denoの直近の変更について (--allow-importのデフォルトの許可対象として`cdn.jsdelivr.net`が追加), `jsr:@eslint/*`, fresh 1.7.2 (Partialsに関するバグの修正), Danetがjsrに公開</description></item><item><title>2024/09/23〜2024/09/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/09/29.html</link><pubDate>Sun, 29 Sep 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/09/29.html</guid><description>Deno v2.0.0-rc.{5,6,7}がリリース (--allow-importの導入など), @deno/vite-plugin (Deno公式のViteプラグイン), deno_stdのリリース (@std/archiveの非推奨化, @std/ioで複数のAPIが非推奨化, など), @types/deno, Deno 2.0 rcでreactとnext.jsの設定を試す, Slack Platform（Deno）を活用したインシデント対応標準化の取り組み, rusty_v8の安定版がリリース</description></item><item><title>2024/09/16〜2024/09/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/09/22.html</link><pubDate>Sun, 22 Sep 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/09/22.html</guid><description>Deno 2.0 Release Candidate, Deno v2.0.0-rc.3とv2.0.0-rc.4がリリース (deno addでJSRパッケージを追加する際にjsr:の指定が必須に, v1.46.0で追加されたdeno runによるタスクの一覧表示が廃止, Deno内部のTypeScriptがv5.6へアップデート, noImplicitOverrideがデフォルトで有効化, deno test --docでコードブロックの実行がサポート, deno lspのAuto importで型を挿入する際の振る舞いが改善, allow-listなしで--allow-runを使用した際に警告が導入, Node.js互換性の改善によりQwikが動作するように), Deno公式からNext.jsのチュートリアルが公開</description></item><item><title>2024/09/09〜2024/09/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/09/15.html</link><pubDate>Sun, 15 Sep 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/09/15.html</guid><description>Deno v2.0.0-rc.2 (直近の変更内容について - Deno.errors.NotCapableの導入や非推奨APIの削除, Deno.createHttpClientの安定化, deno addでの--devオプションのサポート, など), deno_stdにおける実験的機能の取り扱いについて, @std/urlの削除, @std/randomの追加, @std/http/routeから@std/http/unstable-routeへのリネーム</description></item><item><title>2024/09/02〜2024/09/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/09/08.html</link><pubDate>Sun, 08 Sep 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/09/08.html</guid><description>Deno v2.0.0-rc.1 (直近の変更内容について), Deno v1.46.3 (deno publishやdeno upgradeの改善), @std/uuid@1.0.3 (UUIDv7の実験的サポート), @std/tarの追加, Oak v17.0.0 (リクエストボディが複数回読めるように改善), mirror-jsr-to-npm</description></item><item><title>2024/08/26〜2024/09/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/09/01.html</link><pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/09/01.html</guid><description>Deno v2.0.0-rc.0 (DENO_FUTURE=1の挙動がデフォルト化), Deno v1.46.2 (fetchのbodyでのAsyncIterableサポートがrevert, Node.js互換性の改善など), @std/encoding@1.0.3 (@doctor/encoding-streamが取り込まれています), @std/http@1.0.4/route (HTTPメソッドによるルーティングがサポート), @std/assert@1.0.3 (assertNeverが追加), NativeScript macOS Node-API Preview, Deno DeployにおけるWeb Cache APIのサポートについて, Deno KV internals</description></item><item><title>2024/08/19〜2024/08/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/08/25.html</link><pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/08/25.html</guid><description>Deno v1.46.0, Deno v1.46.1 (URLPattern#execに関する挙動の変更), std/wsの追加に関する提案</description></item><item><title>Deno v1.46</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.46.html</link><pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.46.html</guid><description>Deno v1.46がリリース。Deno v2.0のリリースについて, deno cleanコマンドが追加, deno removeコマンドが追加, deno &amp;lt;entrypoint&amp;gt;, deno run &amp;lt;task&amp;gt;, パーミッションフラグの短縮形式の導入, deno serve --parallel, deno fmtでYAML/CSS/HTML/Vueなどの形式がサポート, deno compileがコード署名に対応, deno lintにno-node-globalsルールが追加, deno upgradeがRCバージョンに対応, deno addがdist tagsに対応, deno publishでライセンスが未定義の場合にエラーが発生するように, deno checkとdeno cacheがglob形式に対応, deno.lock v4, JSRパッケージへのパッチ, HMRの安定化, --env-fileが追加, ヘルプの改善, Node.js互換性の改善 (LinuxとMac限定でPlaywrightが動くように), 廃止されたTemporal APIの削除, Deno.watchFsでrenameイベントがサポート, fetchのbodyでAsyncIterableがサポート, など</description></item><item><title>2024/08/12〜2024/08/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/08/18.html</link><pubDate>Sun, 18 Aug 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/08/18.html</guid><description>Denoの直近の変更について (deno remove, deno serve --parallel, HMRの安定化, など), deno_stdに@std/cacheパッケージが追加, fresh v1.7.0 (UNIXドメインソケットのサポート)</description></item><item><title>2024/08/05〜2024/08/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/08/11.html</link><pubDate>Sun, 11 Aug 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/08/11.html</guid><description>Denoの直近の変更について (CLI引数の簡略化, deno fmtでのCSSやYAMLのサポート, deno cleanコマンド), @std/csv@1.0.0がリリース, @std/http@1.0.1がリリース (URLPatternベースのルーティングモジュールの追加など)</description></item><item><title>2024/07/29〜2024/08/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/08/04.html</link><pubDate>Sun, 04 Aug 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/08/04.html</guid><description>What we got wrong about HTTP imports (HTTPインポートとJSRについて, Deno v2のリリース時期について, など), node:sqliteのサポートについて, Deno v1.45.5 (child_process.forkの再実装, Scheduling APIsの実装, など), deno_stdのリリース (@std/testingと@std/httpのv1がリリース, など), codesign for deno compile binaries</description></item><item><title>2024/07/22〜2024/07/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/07/28.html</link><pubDate>Sun, 28 Jul 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/07/28.html</guid><description>Deno v1.45.3 (npm workspacesや--allow-scriptsの改善, deno compileでのNode-APIサポートなど), Deno v1.45.4 (deno lintでno-sloppy-importsルールや構文エラーの報告がサポートなど), deno_stdのリリース (@std/{fs,streams,expect,front-matter,json,jsonc,yaml}@1.0.0がリリースなど)</description></item><item><title>2024/07/15〜2024/07/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/07/21.html</link><pubDate>Sun, 21 Jul 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/07/21.html</guid><description>Denoの@ts-typesと@ts-self-typesプラグマについて, deno_stdのリリース (@std/{async,cli,text,ulid}@1.0.0がリリース, など), Hono v4.5.0 (IP制限などに関するミドルウェアの追加, hono/jsxでReact v19関連のフックが追加, @hono/react-compat, など)</description></item><item><title>2024/07/08〜2024/07/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/07/14.html</link><pubDate>Sun, 14 Jul 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/07/14.html</guid><description>Deno v1.45がリリース, deno_stdのリリース (@std/{assert,path,toml,regexp,msgpack}のv1がリリース), Deno v1.45.1, Deno v1.45.2,</description></item><item><title>Deno v1.45</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.45.html</link><pubDate>Sun, 14 Jul 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.45.html</guid><description>Deno v1.45がリリース。Denoのワークスペースサポートの改善, npm workspacesのサポート, npmパッケージのライフサイクルスクリプトのサポート (--allow-scripts), --frozen(--frozen-lockfile)のサポート, deno init --lib, deno compileで--envオプションがサポート, deno jupyterでpromptとconfigがサポート, deno testで__tests__がサポート, deno lspでの複数deno.jsonの取り扱いの改善, TypeScript v5.5へのアップデート, --lock-writeとdeno vendorの非推奨化, Blob#bytesの実装, など</description></item><item><title>2024/07/01〜2024/07/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/07/07.html</link><pubDate>Sun, 07 Jul 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/07/07.html</guid><description>Denoのnpm workspacesサポートについて, deno_stdのリリース (@std/crypto@1.0.0のリリースなど), run test in Node.js (denoland/deno_std#5258), LogTape (Deno, Node.js, Bunなど様々なランタイムをサポートするロギングライブラリ)</description></item><item><title>2024/06/24〜2024/06/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/06/30.html</link><pubDate>Sun, 30 Jun 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/06/30.html</guid><description>deno_stdのリリース (@std/media-types@1.0.0がリリース, @std/http/serverや@std/testing/assertsの削除など), deno_stdext, deno_mysqlにおけるdeno-sqlxへの対応について, ts-morphがJSRに公開</description></item><item><title>2024/06/17〜2024/06/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/06/23.html</link><pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/06/23.html</guid><description>History of WebGPU in Deno (Web Engines Hackfest &amp;#39;24), Deno v1.44.3 (deno lspにおける複数のdeno.jsonの取り扱いが改善, など), Deno v1.44.4 (SIGPOLLとSIGUNUSEDのサポート), deno_stdのリリース (@std/collections@1.0.0がリリース, など), Implement SQLx interface (denodrivers/mysql#168)</description></item><item><title>2024/06/10〜2024/06/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/06/16.html</link><pubDate>Sun, 16 Jun 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/06/16.html</guid><description>Deno v1.44.2 (deno lspの改善やNode-APIのリライトなど), deno_stdの安定化に関する予定, Deno for Enterprise, deno_stdのリリース (様々なパッケージでv1.0.0-rc.1がリリース), @hongminhee/deno-task-hooks (Gitフックのセットアップ用ツール)</description></item><item><title>2024/06/03〜2024/06/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/06/09.html</link><pubDate>Sun, 09 Jun 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/06/09.html</guid><description>Deno v1.44.1 (.npmrcサポートやdeno lspに関する改善など), deno_stdのリリース(@std/bytes v1など)</description></item><item><title>2024/05/27〜2024/06/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/06/02.html</link><pubDate>Sun, 02 Jun 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/06/02.html</guid><description>Deno v1.44がリリース, @std/uuid@0.224.3, @std/data-structures@0.225.0, Hono v4.4.0 (JSRにパッケージが公開)</description></item><item><title>Deno v1.44</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.44.html</link><pubDate>Sun, 02 Jun 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.44.html</guid><description>Deno v1.44がリリース。.npmrcのサポート, Node.js互換性の改善によりNext.jsが動作するように, Deno.exitCodeが追加, FFIでi64とu64が常にbigintで取り扱われるように, DENO_FUTURE=1が指定された際は--unstable-*なしでFFIやWebGPUが利用できるように, Deno.upgradeWebSocketのidleTimeoutのデフォルト値が変更, RequestとResponseでbytesメソッドが実装, deno testで時間がかかっているテストケースへ警告が表示されるように, deno lintにno-boolean-literal-for-argumentsルールが追加, deno serveに--port=0を指定するとランダムなポートが採番されるように, v8のPointer Compressionの有効化, キャッシュ用のSQLiteデータベースでWALモードが有効化, など</description></item><item><title>2024/05/20〜2024/05/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/05/26.html</link><pubDate>Sun, 26 May 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/05/26.html</guid><description>Fresh v2のアルファバージョンが公開, Deno v1.43.6 (JestやVitest向けの互換性の改善, URLの静的メソッドに関する型の改善など), `deno_std`のリリース (@std/collections@1.0.0-rc.1, @std/streamsにconcatReadableStreamsが追加), deno installでのnpmやpnpmなどのロックファイルのサポートについて, deno_coreにARCHITECTURE.mdが追加</description></item><item><title>2024/05/13〜2024/05/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/05/19.html</link><pubDate>Sun, 19 May 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/05/19.html</guid><description>Deno v1.43.4 (deno publishやNode.js互換性の改善など), Deno v1.43.5, @std/collections@0.224.2 (invertとinvertByの追加), freshのホームページの新デザイン, @cross - Cross-Runtime JavaScript Libraries, The Deno Standard Library is now available on JSR (deno_stdのバージョン管理やDenoのワークスペース機能についてなど), DenoでHonoやReactを使ったテンプレートを作ってみた</description></item><item><title>2024/05/06〜2024/05/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/05/12.html</link><pubDate>Sun, 12 May 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/05/12.html</guid><description>Deno v1.43.2 (duckdb-nodeが動作するように, deno lspでQuickfixを実行する際のDebug Failureエラーに関する修正, など), Deno v1.43.3 (Homebrew経由でインストールした際などにパニックする問題の修正など), @std/bytes v1.0.0-rc.1がリリース, Deno ユーザーは https import と jsr import のどちらを使うべきか?</description></item><item><title>2024/04/29〜2024/05/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/05/05.html</link><pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/05/05.html</guid><description>Deno v1.43がリリース, sindresorhus/environment</description></item><item><title>Deno v1.43</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.43.html</link><pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.43.html</guid><description>Deno v1.43がリリース。deno serveコマンドの追加, compilerOptions.jsxImportSourceTypesやcompilerOptions.jsxPrecompileSkipElementsなどの独自オプションの導入, Import mapsへのworkspaceメンバーの自動登録がサポート, Deno.UnsafeWindowSurfaceでのWaylandのサポート, deno taskでのnpmバイナリの実行がサポート, URL.parseやFloat16Arrayのサポート, deno lspのパフォーマンス改善, V8コードキャッシュの導入などが行われています。</description></item><item><title>2024/04/22〜2024/04/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/04/28.html</link><pubDate>Sun, 28 Apr 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/04/28.html</guid><description>Deno v1.43.0について (deno serve, V8コードキャッシュなど), deno_std v0.224.0 (std/semver - testRangeがsatisfiesにリネーム), JSR Is Not Another Package Manager</description></item><item><title>2024/04/15〜2024/04/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/04/21.html</link><pubDate>Sun, 21 Apr 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/04/21.html</guid><description>deno_stdの安定化について, Deno v1.42.4 (Docusaurusのbuildコマンドが動作するように), kvdex v1</description></item><item><title>2024/04/08〜2024/04/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/04/14.html</link><pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/04/14.html</guid><description>Deno v1.42.3 (Node.js互換性やjsrに関するバグ修正など), deno_std v0.222.0 (非推奨APIの削除, std/consoleのstd/cliへの統合, std/testing/bdd.tsでtestやbefore/afterなどのエイリアスが追加, など), How we built JSR (JSRの内部実装について), vscode_deno v3.37.0 (deno.futureオプションのサポート), Fedify (ActivityPub server framework in TypeScript)</description></item><item><title>2024/04/01〜2024/04/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/04/07.html</link><pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/04/07.html</guid><description>Deno v1.42.1, Deno Deployのプロジェクト作成フローが改善, deno.re (GitHubベースのパッケージレジストリ), thoth (Deno KVをベースに全文検索機能を提供するパッケージ)</description></item><item><title>2024/03/25〜2024/03/31の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/03/31.html</link><pubDate>Sun, 31 Mar 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/03/31.html</guid><description>Deno v1.42, deno_std v0.221.0 (`expect.{closeTo, stringContaining, stringMatching}`の実装), Deno v2におけるBYONMのデフォルトでの有効化について, @david/publish-on-tag</description></item><item><title>Deno v1.42</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.42.html</link><pubDate>Sun, 31 Mar 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.42.html</guid><description>Deno v2に向けてdeno installに--globalオプションが追加, deno lintでQuickfixがサポート, deno taskでのリダイレクトサポートの改善, deno testのJUnitレポーターでのサブステップの取り扱いが改善, vendorディレクトリの取り扱いの変更, --watch-excludeオプションの追加, TypeScript v5.4へのアップデート, EventSourceの安定性の改善, など</description></item><item><title>2024/03/18〜2024/03/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/03/24.html</link><pubDate>Sun, 24 Mar 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/03/24.html</guid><description>deno lintとdeno lspでのQuickfixのサポートについて, deployctl v1.12.0 (デプロイメントへの環境変数の設定などがサポート)</description></item><item><title>2024/03/11〜2024/03/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/03/17.html</link><pubDate>Sun, 17 Mar 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/03/17.html</guid><description>Deno v1.41.3 (Node.js互換性の改善によりVitePressが動くように), Fresh v2について, deno-sqlx</description></item><item><title>2024/03/04〜2024/03/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/03/10.html</link><pubDate>Sun, 10 Mar 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/03/10.html</guid><description>Deno v1.41.2 (deno addでnpmパッケージやバージョン指定がサポート, deno lspのjsr:URLをhoverした際の挙動が改善, SvelteKitが動作するように, など), deno_std v0.219.0 (std/semverの非推奨APIの削除, expect.extendが実装, など)</description></item><item><title>2024/02/26〜2024/03/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/03/03.html</link><pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/03/03.html</guid><description>jsr.ioが公開, esm.shでJSRの実験的サポートが追加, Deno v1.41.1 (deno addコマンドが追加, deno publishでprovenance attestationやjsr.jsonなどがサポート, deno compileでARM64向けのバイナリの生成がサポート, など), deno_std v0.218.0 (std/collectionsへのomitとpickの追加, std/expectでのexpect.any/anything/arrayContainingの実装), alosaur v1, Oak v14.1.0 (BunやCloudflare Workersのサポート), Survey Results and Roadmap</description></item><item><title>2024/02/19〜2024/02/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/02/25.html</link><pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/02/25.html</guid><description>Deno v1.41, deno addコマンドについて, deno_std v0.217.0 (std/semver - Operatorに関する非推奨化, std/testing/mock.tsがusingに対応, など), Lume v2.1.0 (LumeCMSのサポート), Danet v2.2.0 (Deno Cronベースのタスクスケジューリング)</description></item><item><title>Deno v1.41</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.41.html</link><pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.41.html</guid><description>Deno.FsFileにisTerminalとsetRawメソッドが追加, Deno.DatagramConnとHttpClientからridプロパティが削除, deno lintにno-slow-typesルールが導入, deno publishの実行時に型チェックが行われるように, denortバイナリがさらに軽量化, process.envの参照時にパーミッションプロンプトが表示されるように挙動が変更</description></item><item><title>2024/02/12〜2024/02/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/02/18.html</link><pubDate>Sun, 18 Feb 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/02/18.html</guid><description>Deno v1.40.5 (denortバイナリの再導入, DENO_FUTURE環境変数の導入), deno_std v0.216.0 (std/semverの非推奨APIの削除), fresh v1.6.4 (Twindのセットアップの再導入など), LumeCMS, denoland/deno-lambda</description></item><item><title>2024/02/05〜2024/02/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/02/11.html</link><pubDate>Sun, 11 Feb 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/02/11.html</guid><description>Deno v1.40.4, deno_std v0.215.0, dax v0.39.0 (npmパッケージが公開), esbuild_deno_loader v0.9.0 (jsr:のサポートなど), Slint v1.4.0 (Denoがサポート), Hono v4 (hono/ssg, hono/jsx/dom, HonoX), Oak v13.1.0 (Fetch APIとの相互運用性の改善)</description></item><item><title>2024/01/29〜2024/02/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/02/04.html</link><pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/02/04.html</guid><description>dax v0.38.0 (サブシェル、リダイレクト、パイプなどのサポート), Hono v4について, Deno in 2023, Deno v1.40.3 (navigator.gpu.getPreferredCanvasFormatの実装など), deno_std v0.214.0 (非推奨モジュール・APIの削除など)</description></item><item><title>2024/01/22〜2024/01/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/01/28.html</link><pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/01/28.html</guid><description>Deno v1.40, `deno_std`でのワークスペースの導入について, deno_std v0.213.0 (非推奨APIの削除など), std/kvについて, Oak 13.0.0 (Fetch APIとの互換性の向上など), Denoの静的サイトジェネレータ`Lume`の紹介</description></item><item><title>Deno v1.40</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.40.html</link><pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.40.html</guid><description>Temporalサポート, Decorators proposal (stage 3)のサポート, Import Mapsで`npm:`URLのマッピングを定義する際の挙動の改善, deno checkでのunstable APIに関する挙動の変更, windowやrid関連のAPIなどの非推奨化, Unixドメインソケットサポートなどの安定化, External WebGPU surfaces / BYOW (Bring your own Window), deno lintで`no-console`ルールがサポート, import.meta.filename/dirname, deno.lockにworkspaceセクションが追加</description></item><item><title>2024/01/15〜2024/01/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/01/21.html</link><pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/01/21.html</guid><description>fresh v1.6.2 (Tailwind CSSサポートの改善、Partialに関するバグ修正など), fresh v1.6.3 (プロトタイプ汚染への対策が強化), Deno v1.39.4 (deno.jsonのinclude/excludeに関するバグ修正), External WebGPU surfaces / BYOW, 非推奨APIの使用に関する警告について, The Deno Survey</description></item><item><title>2024/01/08〜2024/01/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/01/14.html</link><pubDate>Sun, 14 Jan 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/01/14.html</guid><description>Deno v1.39.3 (deno compileで--unstable-*オプションがサポート, EventSourceの型定義の追加, Androidでのビルドのサポートなど), deno_std v0.212.0 (非推奨化されていたstd/streamsのIO関連のAPIがstd/ioへ移動, std/text/caseの追加, など), `Deno.serveHttp`の非推奨化</description></item><item><title>2024/01/01〜2024/01/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2024/01/07.html</link><pubDate>Sun, 07 Jan 2024 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2024/01/07.html</guid><description>Deno v1.39.2 (BYONMとImport Mapsの併用がサポート, deno lspでV8インスペクターへの接続がサポート, など), deno_std v0.211.0 (std/httpなどから非推奨APIが削除, std/semverの一部APIの非推奨化など), WASMやBlobなどのimportについて, unstable APIの型チェックに関する挙動の変更について, 「RustでWebバックエンドを書き始めてから1年くらい経った」</description></item><item><title>2023/12/25〜2023/12/31の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/12/31.html</link><pubDate>Sun, 31 Dec 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/12/31.html</guid><description>Temporal APIのサポートについて, Danet v2 (Honoへの移行やパフォーマンス改善など), Netzo</description></item><item><title>2023/12/18〜2023/12/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/12/24.html</link><pubDate>Sun, 24 Dec 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/12/24.html</guid><description>Deno v1.39.1 (Deno.serveのUnixドメインソケットサポートの安定化, deno coverageでディレクトリの指定が省略可能に, など...), deno_std v0.210.0 (cli/spinnerの追加, std/logでJSONL形式でのロギングがサポートなど), RxDBがDenoとDeno KVをサポート, 「DenoとFreshでペアプロ・モブプロ用タイマー『timer.team』を開発して得た知見⏰」, 「Honoの今の状況」</description></item><item><title>2023/12/11〜2023/12/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/12/17.html</link><pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/12/17.html</guid><description>Deno v1.39, deno_std v0.209.0 (std/webgpuやstd/netの追加など), `Deno.Kv.watch`のアナウンス, `@deno/kv`パッケージの解説, Deno KVのベンチマーク</description></item><item><title>Deno v1.39</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.39.html</link><pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.39.html</guid><description>WebGPU APIの再導入, deno coverageでHTMLレポーターがサポート, Deno.cronでオブジェクト形式でのスケジューリングがサポート, Deno.Kvのenqueueでリトライポリシーをカスタマイズできるように, deno compileでBYONMがサポート, sloppy importsのサポートなど, TypeScript v5.3へのアップデート, など</description></item><item><title>2023/12/04〜2023/12/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/12/10.html</link><pubDate>Sun, 10 Dec 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/12/10.html</guid><description>Deno v1.38.5 (Deno.Kv.watchが実装), --unstable-sloppy-importsについて, fresh v1.6.1 (Tailwind CSSプラグインの改善など), deployctl v1.9.0 (deno.jsonによる設定やプロジェクト名の推論などがサポート), denokv v0.6.0 (Node.js向けに@deno/kvパッケージが公開), lume v2 (UnoCSSプラグインの追加やAPIの整理など)</description></item><item><title>2023/11/27〜2023/12/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/12/03.html</link><pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/12/03.html</guid><description>fresh v1.6 (Tailwind CSSの公式サポートなど), Deno v1.38.4 (spawnSync()のバグ修正と`deno lsp`のパフォーマンス改善), Deno Cron (Deno.cron())のアナウンス, freshのイテレーションプラン (2023/12), OpenAI Deno SDKが公開, Deno Advent Calendar 2023の記事が公開</description></item><item><title>fresh v1.6</title><link>https://uki00a.github.io/deno-weekly/articles/fresh/v1.6.html</link><pubDate>Sun, 03 Dec 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/fresh/v1.6.html</guid><description>fresh v1.6がリリース。Tailwind CSSの公式サポート, FreshContext型の導入, Partialsでの&amp;lt;form&amp;gt;やリダイレクトのサポート, プラグインからのIslandコンポーネントや静的アセットの提供などがサポートされています。</description></item><item><title>2023/11/20〜2023/11/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/11/26.html</link><pubDate>Sun, 26 Nov 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/11/26.html</guid><description>Deno v1.38.3 (deno publishの追加やバグ修正など), deno_std v0.208.0 (std/expectの追加など), esm.sh v135 (esm.sh/runの導入), --unstable-unsafe-protoの導入について</description></item><item><title>2023/11/13〜2023/11/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/11/19.html</link><pubDate>Sun, 19 Nov 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/11/19.html</guid><description>ワークスペースのサポートについて, Deno v1.38.2がリリース (AbortSignal.anyがサポート, --strace-opsオプションの追加など), deno_std v0.207.0 (TypeScriptのenumの非推奨化, std/cliなど), Deno Subhostingが公開</description></item><item><title>2023/11/06〜2023/11/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/11/12.html</link><pubDate>Sun, 12 Nov 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/11/12.html</guid><description>Deno v1.38.1がリリース (Node.js互換性やdeno doc --lintなどの改善) / deno_std v0.206.0 (std/async/deferredやstd/path/glob.tsなどが非推奨化, std/http/server_sent_event_streamが追加, std/textが追加), denokv v0.2.0 (S3を活用したレプリケーション、PITRの実装), HonoとDenoで社内ツールを作ってみた</description></item><item><title>2023/10/30〜2023/11/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/11/05.html</link><pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/11/05.html</guid><description>Deno v1.38がリリース, deno_std v0.205.0 (std/http/server.tsやstd/wasiの非推奨化など), denokv v0.1.0 (SQLiteベースのKV Connectプロトコルサーバーが実装), vite-deno-plugin, unyt.land, Deno Advent Calendar 2023</description></item><item><title>Deno v1.38</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.38.html</link><pubDate>Sun, 05 Nov 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.38.html</guid><description>Deno v1.38がリリースされました。deno docでリント(--lint)やHTMLページの生成(--html)がサポート / Deno本体でHMRがサポート。(--unstable-hmr) / --unstable-*がサポート / deno.jsonでunstableフィールドがサポート / `compilerOptions.jsx`で`&amp;#34;precompile&amp;#34;`がサポート / .envのサポート (--envオプション) / Deno.cronが実装 / npmなどで作成されたnode_modulesのサポート (BYONM) など...</description></item><item><title>2023/10/23〜2023/10/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/10/29.html</link><pubDate>Sun, 29 Oct 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/10/29.html</guid><description>denoland/denokv, BYONMのサポートについて (--unstable-byonm), --unstable-ffi/--unstable-kvなどのオプションの導入について, awesome-deno-kv, Deno Festのアーカイブが公開</description></item><item><title>2023/10/16〜2023/10/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/10/22.html</link><pubDate>Sun, 22 Oct 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/10/22.html</guid><description>fresh v1.5.2がリリース (&amp;lt;a&amp;gt;要素へのaria-current属性の自動設定, devサーバとブラウザのやり取りがWebSocketを介して行われるように), Deno本体でのHMRのサポートについて</description></item><item><title>2023/10/09〜2023/10/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/10/15.html</link><pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/10/15.html</guid><description>fresh v1.5がリリース (クライアントサイドナビゲーションを実現するためのPartialsという仕組みの導入など), Deno v1.37.2がリリース (Deno.serve, deno jupyterの改善など), deno_std v0.204.0がリリース (std/pathやstd/front_matterの整理など), freshのイテレーションプラン (2023/10〜2023/11), 2023年Q4におけるNode.js互換性の改善計画について, --unstable-kv/--unstable-httpなどの提案について, 社内で使う npm パッケージの作成に Deno を採用した話</description></item><item><title>fresh v1.5</title><link>https://uki00a.github.io/deno-weekly/articles/fresh/v1.5.html</link><pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/fresh/v1.5.html</guid><description>fresh v1.5がリリース。SPAライクなクライアントサイドナビゲーションを実現するために、Partialsという機能が導入されました。</description></item><item><title>2023/10/02〜2023/10/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/10/08.html</link><pubDate>Sun, 08 Oct 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/10/08.html</guid><description>WebGPU APIの再導入について, denoland/terraform-provider-deno (Deno公式のTerraformプロパイダー), Ree.js - Bun/Deno/Node.jsなどで動作する軽量Webフレームワーク</description></item><item><title>2023/09/25〜2023/10/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/10/01.html</link><pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/10/01.html</guid><description>Deno v1.37.1 (deno lspの改善, Deno.jupyter.broadcastの追加など), deno_std v0.203.0 (std/ioの非推奨化など), denoland/deno-astro-adapter, Deno Queuesのアナウンス, Molt (依存関係のアップデートツール)</description></item><item><title>2023/09/18〜2023/09/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/09/24.html</link><pubDate>Sun, 24 Sep 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/09/24.html</guid><description>Deno v1.37 (実験的なパッケージマネージャー, deno jupyter, など), deno_std v0.202.0 (std/ulidの追加, 一部モジュールの非推奨化やディレクトリ構造の整理など), deno vendorコマンドの非推奨化について</description></item><item><title>Deno v1.37</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.37.html</link><pubDate>Sun, 24 Sep 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.37.html</guid><description>Deno v1.37がリリースされました。
この記事では主な変更点などについて解説します。
実験的なパッケージマネージャが実装 (jsr:URL) ⚠️この機能は実験的機能のようなので、今後、大きな変更が入る可能性があります。
⚠️また、パッケージレジストリがまだ公開されていないため、この機能はまだ利用できない状態のようです。
Deno本体に実験的なパッケージマネージャーが実装されています。
具体的には、以下のようにjsr:形式のURLを記述することで、Denoがパッケージレジストリと連携してsemverの解決などを行いつつ、パッケージのインストールなどを自動で行ってくれるようです。
import { foo } from &amp;#34;jsr:@foo/some_pkg@1/mod.ts&amp;#34;; 例えば、この場合、@foo/some_pkgパッケージに関するsemverの解決を行うために、まずhttps://${DENO_REGISTRY_URL}/@foo/some_pkg/meta.jsonの問い合わせを行い、その内容を元にどのバージョンをインストールすべきか判断されるようです。
従来のhttps:やnpm:形式のパッケージと同様に、npm installなどのコマンドの実行は不要で、スクリプトの実行時にDenoが必要に応じてパッケージをインストールしてくれます。
また、パッケージのインストール元レジストリはDENO_REGISTRY_URL環境変数で変更可能なようです。
ここからは推測になりますが、この機能は、元々、導入される予定であったdeno:URLに相当する機能だと思われます。
Deno本体がレジストリと連携してsemver解決を行うことで、依存関係の重複問題などを解消しようというのがこの機能の狙いだと思われます。
feat(unstable): package manager #20517
Built-in support for semvered specifiers on the deno.land/x registry #17495
deno jupyter Deno本体にJupyter Kernelが実装されました。
以下のコマンドを実行すると、Deno Kernelがインストールされているかどうかを確認できます。
$ deno jupyter --unstable ℹ️ Deno kernel is not yet installed, run `deno jupyter --unstable --install` to set it up もしインストールされていなければ、以下のコマンドでインストールできます。</description></item><item><title>2023/09/11〜2023/09/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/09/17.html</link><pubDate>Sun, 17 Sep 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/09/17.html</guid><description>deno jupyterコマンドについて, using/await usingのサポートについて, Denoの新しいドキュメンテーションサイト(docs.deno.com), How We Built Deno KV using FoundationDB...</description></item><item><title>2023/09/04〜2023/09/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/09/10.html</link><pubDate>Sun, 10 Sep 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/09/10.html</guid><description>Deno v1.37に入りそうな変更について, Deno Deployでnpmパッケージがサポート, Deno KVのオープンベータ版が公開, fresh v1.4.3 (Route Groupsなどに関するバグ修正), など...</description></item><item><title>2023/08/28〜2023/09/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/09/03.html</link><pubDate>Sun, 03 Sep 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/09/03.html</guid><description>Deno v1.36.4がリリース。(Deno KVでリモートデータベースへの接続がサポート、`deno lsp`で`deno.suggest.completeFunctionCalls`が実装), deno_std v0.201.0がリリース (`std/dotenv`でのパーミッションの取り扱いの改善、使用率の低いモジュールの非推奨化), など...</description></item><item><title>2023/08/21〜2023/08/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/08/27.html</link><pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/08/27.html</guid><description>Deno v1.36.2がリリース。(Deno KVでエントリの有効期間の設定がサポート、FFI関連のAPIをより型安全に扱えるよう改善に、など...), SimpleWebAuthn v8.0.0, など...</description></item><item><title>2023/08/14〜2023/08/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/08/20.html</link><pubDate>Sun, 20 Aug 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/08/20.html</guid><description>fresh v1.4がリリース。Deno KVでのキーの有効期限の設定について</description></item><item><title>fresh v1.4</title><link>https://uki00a.github.io/deno-weekly/articles/fresh/v1.4.html</link><pubDate>Sun, 20 Aug 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/fresh/v1.4.html</guid><description>fresh v1.4がリリース。オプトイン方式での事前ビルドのサポート、Route Groupsやレイアウト機能の実装などが実施されています。</description></item><item><title>2023/08/07〜2023/08/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/08/13.html</link><pubDate>Sun, 13 Aug 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/08/13.html</guid><description>Deno v1.36.1 Deno v1.36.1がリリースされました。
deno_modulesディレクトリがvendorへリネーム Deno v1.36で実装されたdeno_modulesディレクトリがdeno vendorコマンドに合わせてvendorへリネームされました。
これに合わせて、deno.jsonのプロパティ名もdenoModulesDirからvendorへリネームされています。
{ &amp;#34;imports&amp;#34;: { &amp;#34;redis&amp;#34;: &amp;#34;https://deno.land/x/redis@v0.29.0/mod.ts&amp;#34;, &amp;#34;dax&amp;#34;: &amp;#34;https://deno.land/x/dax@0.24.0/mod.ts&amp;#34; }, &amp;#34;vendor&amp;#34;: true } このようにdeno.jsonでvendor: trueを設定することで、Denoが依存パッケージをvendorディレクトリにダウンロードするよう挙動が変更されます。
また、Deno v1.36からの大きな変更として、vendorオプションが有効化された際は、依存しているnpmパッケージもnode_modulesに自動でダウンロードされるよう挙動が変更されています。(--node-modules-dirオプションが自動で適用されるようなイメージです)
この挙動を無効化したい場合、CLIオプションで--node-modules-dir=falseを指定するか、またはdeno.jsonでnodeModulesDir: falseを指定する必要があります。
deno test グローバルのsetTimeoutが置き換えられた場合、TestContext.stepが動作しなくなる問題が修正されています。(std/testing/time.tsのFakeTimeと併用できない課題があったようです)
deno_std v0.198.0 deno_std v0.198.0がリリースされました。
std/path - ファイルの分割 std/path/basename.tsやstd/path/dirname.tsなど、std/pathで提供されている各APIごとにファイルが細かく分割されました。
std@0.198.0/path std@0.197.0/path deno_cache v0.5.0 deno_cacheパッケージの内部実装が、Deno本体で使用されていたグローバルキャッシュ(DENO_DIR)に関するコードをベースに再実装されたようです。
これに合わせて、deno_cache_dirという名前でクレートも公開されています。 また、Deno本体でもこのdeno_cache_dirクレートが導入されています。(#20092)
これにより、今後、deno_cacheパッケージの開発がより活発になる可能性もありそうです。
https://github.com/denoland/deno_cache/releases/tag/0.5.0
Freshの2023年8〜9月のイテレーション計画 Freshの2023年8〜9月にかけてのイテレーション計画が公開されています。(2023年の7〜8月のイテレーション計画についてはこちら)
August - September 2023 iteration plan #1618
現時点では、以下の実装などが進められることが検討されているようです。
SPAライクなクライアントサイドナビゲーション View transitionsのサポート</description></item><item><title>2023/07/31〜2023/08/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/08/06.html</link><pubDate>Sun, 06 Aug 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/08/06.html</guid><description>Deno v1.36 Deno v1.36がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Deno v1.36 deno_std v0.197.0 deno_std v0.197.0がリリースされました。
std/testing/snapshot.ts assertSnapshotに関して、以下の破壊的変更が実施されています。
Deno v1.33.2以降、長い文字列が改行されてスナップショットが作られていた問題への対応が入れられました。 タブ文字(\t)がエスケープされた状態でスナップショットが作られる問題が修正されました。 std/fs/walk.ts - includeSymlinksオプションが追加 includeSymlinks: true かつ followSymlinks: falseが指定された場合、walkはシンボリックリンクを未解決の状態で返却します。
このオプションのデフォルト値はtrueであるため、もしシンボリックリンクを含めたくない場合は、明示的にfalseを設定する必要があります。
for await (const entry of walk(&amp;#34;./dir&amp;#34;, { includeSymlinks: false })) { // ... } std/toml/parse.ts 以下のようなペアを持つTOMLを解析する際に、TypeErrorが発生する問題が解消されました。
floats = [0.1, 1.5] empty_obj = {} import { parse } from &amp;#34;https://deno.land/std@0.197.0/toml/parse.ts&amp;#34; const parsed = parse(`[section] floats = [0.1, 1.5] empty_obj = {}`); console.</description></item><item><title>Deno v1.36</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.36.html</link><pubDate>Sun, 06 Aug 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.36.html</guid><description>Deno v1.36がリリースされました。
この記事では主な変更点などについて解説します。
--deny-*オプション --deny-*という新しいオプションが導入されました。このオプションにより、Denoに対して特定の操作のみを明示的に拒否させることができます。
例えば、以下の場合、Denoにwrite権限のみを拒否させています。
$ deno run --allow-all --deny-write main.js このように--allow-*オプションと--deny-*オプションは併用することが可能で、その場合、--deny-*オプションの方が優先されます。
また、--deny-*には--allow-*と同様に、リスト形式で対象を指定することもできます。
$ deno run --allow-read --deny-read=README.md main.js 上記の場合、./README.mdへの読み込みのみが拒否され、それ以外のファイルの読み込みは許可されます。
{ const content = await Deno.readTextFile(&amp;#34;Makefile&amp;#34;); // =&amp;gt; OK console.info(content); } { const content = await Deno.readTextFile(&amp;#34;README.md&amp;#34;); // =&amp;gt; PermissionDenied console.info(content); } deno_modulesディレクトリの導入 ⚠️この機能はまだunstableという扱いのため、今後、機能などに変更が入る可能性があります。
また、現在、deno_modulesをvendorにリネームするPRも作成されており、今後ディレクトリやオプションなどの名前が変わる可能性も高そうです。
feat(unstable): rename deno_modules to vendor #20065 deno.jsonにdenoModulesDirという新しいオプションが導入されました。
このオプションにtrueを設定すると、リモートモジュールがdeno_modulesというディレクトリにダウンロードされるように挙動が変更されます。
{ &amp;#34;denoModulesDir&amp;#34;: true } この状態でスクリプトを実行すると、依存しているリモートモジュールがdeno_modulesに保存されます。
import { blue } from &amp;#34;https://deno.</description></item><item><title>2023/07/24〜2023/07/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/07/30.html</link><pubDate>Sun, 30 Jul 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/07/30.html</guid><description>Deno v1.35.3 Deno v1.35.3がリリースされました。
deno lint deno lintコマンドで--rulesと--rules-tagsの併用がサポートされました。
指定されたタグを持つルールの一覧を表示できます。
# `fresh`タグを持つルールを一覧表示する $ deno lint --rules --rules-tags=fresh deno lsp deno lspが以下のケースでもdeno.jsonを検出するように改善されました。
deno.jsonを新しく作成したとき deno.jsonでシンタックスエラーが発生したとき deno info deno infoコマンドでImport Mapsで定義されたspecifierがサポートされました。
$ deno info --import-map=import_map.json preact deno_std v0.196.0 deno_std v0.196.0がリリースされました。
std/http/server.tsでserveとserveTlsが非推奨化されました。 (破壊的変更)
Deno v1.35でDeno.serve()が安定化されているため、今後はそちらの使用が推奨されます。
remote_modulesのサポートについて Deno本体でremote_modulesというディレクトリをサポートすることが検討されているようです。
feat: optional remote_modules directory (without lsp support) #19977
今のところ、以下のような振る舞いが想定されているようです。
deno.jsonでremoteModulesDir: trueを設定すると、remote_modulesというディレクトリにサードパーティモジュールが保存されるようになります。(実質的にremote_modulesディレクトリが$DENO_DIR/depsとして扱われます) remote_modulesディレクトリには、deno vendorコマンドによって作成されるvendorディレクトリと同様に、リーダブルなフォーマットで依存モジュールが保存されます。 deno vendorやremote_modulesを使わない場合、Denoはリモートからダウンロードしたサードパーティモジュールをファイル名をハッシュ化した状態で$DENO_DIR/depsにキャッシュします。(そのため、サードパーティモジュールに関するデバッグが難しくなります。) 背景 このremote_modulesディレクトリの導入の目的として、deno vendorコマンドに関する以下の課題の解消などが背景としてあるようです。
deno vendorコマンドで作成されたvendorディレクトリをグローバルキャッシュ(DENO_DIR)として利用したい。 deno vendorコマンドは独自に生成したImport Mapsの使用を前提としているため、ユーザが自身で作成したImport Mapsと併用することが難しいこと。(Import Mapsはプロセスごとに一つしか指定できないため) 依存パッケージのバージョンを変更するたびにdeno vendorを実行する手間を軽減すること。 これらの課題を解消するために、remote_modulesという新しいディレクトリを導入することが検討されているようです。</description></item><item><title>2023/07/17〜2023/07/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/07/23.html</link><pubDate>Sun, 23 Jul 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/07/23.html</guid><description>Fresh v1.3 Fresh v1.3がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Fresh v1.3 Deno v1.35.2 Deno v1.35.2がリリースされました。
Node.js互換性の改善 npm:経由で読み込まれたパッケージと通常のDenoコードで異なるglobalThisの実体が参照されるように変更されました。(#19307) npmパッケージ内からDenoで書かれた.tsファイルをimport()で読もうとすると、エラーが発生する問題が修正されました。 node:process: dlopenが実装されています。(flags引数は未サポート) node:stream/promises: finished/pipelineがexportされていなかった問題が修正されています。 TypeScript --unstableをつけずにunstable APIを使おうとした際のエラーメッセージが改善されています。
v1.35.2:
error: TS2551 [ERROR]: Property &amp;#39;openKv&amp;#39; does not exist on type &amp;#39;typeof Deno&amp;#39;. Did you mean &amp;#39;open&amp;#39;? &amp;#39;Deno.openKv&amp;#39; is an unstable API. Did you forget to run with the &amp;#39;--unstable&amp;#39; flag, or did you mean &amp;#39;open&amp;#39;? If not, try changing the &amp;#39;lib&amp;#39; compiler option to include &amp;#39;deno.</description></item><item><title>fresh v1.3</title><link>https://uki00a.github.io/deno-weekly/articles/fresh/v1.3.html</link><pubDate>Sun, 23 Jul 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/fresh/v1.3.html</guid><description>fresh v1.3がリリースされました。
この記事では主な変更点などについて解説します。
非同期Routeコンポーネント 非同期Routeコンポーネントがサポートされました。
例えばデータベースや外部のAPIなどから非同期に取得したデータをRouteコンポーネントに渡すためには、今までは以下のようにhandlerを定義する必要がありました。
// routes/users/[id].tsx import type { Handlers, PageProps } from &amp;#34;$fresh/server.ts&amp;#34;; export const handler: Handlers&amp;lt;Data&amp;gt; = { async GET(req, ctx) { const user = await findUserByID(ctx.params.id); if (user == null) { return ctx.renderNotFound(); } const resp = await ctx.render(user); return resp; }, }; export default async function User(props: PageProps&amp;lt;User&amp;gt;) { return &amp;lt;UserDetail user={props.data} /&amp;gt;; } 非同期Routeコンポーネントを利用することで、handlerを記述せずに非同期でのデータの取得とコンポーネントのレンダリングが行えるようになります。</description></item><item><title>2023/07/10〜2023/07/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/07/16.html</link><pubDate>Sun, 16 Jul 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/07/16.html</guid><description>Deno v1.35.1 Deno v1.35.1がリリースされました。
Node.js互換性 node_modules/.deno/setup-cache.binという独自のキャッシュファイルが導入されています。
このファイルはnode_modules/.denoに関するディレクトリ構造を記録しており、このファイルを活用してシンボリックリンクの作成を効率化することで、node_modulesのセットアップを高速化することが狙いのようです。
https://github.com/denoland/deno/pull/19787
Deno.listenTls Deno.listenTlsのalpnProtocolsオプションを--unstableを指定せずに利用できるようになりました。(元々、Deno v1.35のリリース時に安定化される予定でしたが、今回のリリースで改めて安定化されました)
https://github.com/denoland/deno/pull/19732
Deno.serve Deno.serveでBrotliによる圧縮が適用された際のパフォーマンスを改善するため、以下のパラメータが設定されています。
BROTLI_PARAM_QUALITY: 6 (ngx_brotliのデフォルトと同じ値) BROTLI_PARAM_LGWIN: 22 (brotliのデフォルトのウィンドウサイズ) https://github.com/denoland/deno/pull/19758
deno lsp deno.jsonのexcludeで指定されたファイルがdeno lspで取り扱われなくなるように挙動が改善されています。
https://github.com/denoland/deno/pull/19791
deno vendor deno.jsonのcompilerOptions.jsxImportSourceにImport Mapsで定義されたマッピングが指定された際に、対象のモジュールがベンダリングされない問題が修正されました。
https://github.com/denoland/deno/pull/19724
deno_std v0.194.0 deno_std v0.194.0がリリースされました。
std/msgpackが追加 MessagePackを取り扱うためのモジュールがdeno_stdに追加されています。
import { decode, encode } from &amp;#34;https://deno.land/std@0.194.0/msgpack/mod.ts&amp;#34;; const message = decode(encode({ type: &amp;#34;foo&amp;#34;, message: &amp;#34;bar&amp;#34; })); console.info(message); // =&amp;gt; `{ type: &amp;#34;foo&amp;#34;, message: &amp;#34;bar&amp;#34; }` https://github.</description></item><item><title>2023/07/03〜2023/07/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/07/09.html</link><pubDate>Sun, 09 Jul 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/07/09.html</guid><description>Deno v1.35 Deno v1.35がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Deno v1.35 deno_std v0.193.0 deno_std v0.193.0がリリースされました。
std/http/user_agent.ts std/httpにユーザーエージェントを取り扱うためのユーティリティが追加されています。
import { UserAgent } from &amp;#34;https://deno.land/std@0.193.0/http/user_agent.ts&amp;#34;; const ua = new UserAgent(&amp;#34;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36&amp;#34;); console.info(ua.browser); // =&amp;gt; { name: &amp;#34;Chrome&amp;#34;, version: &amp;#34;114.0.0.0&amp;#34;, major: &amp;#34;114&amp;#34; } 直近でリリースされたOak v12.6.0にも、このstd/http/user_agent.tsを使用したUser-Agentのサポートが入っています。
std/json/concatenated_json_parse_stream.ts nullnullのように、セパレータなしで連続してnullやtrueなどの値が現れた際に、適切に処理が行われるように修正されました。
import { ConcatenatedJsonParseStream } from &amp;#34;https://deno.land/std@0.193.0/json/concatenated_json_parse_stream.ts&amp;#34;; const result = []; for await ( const x of ReadableStream.from([&amp;#34;nullnull&amp;#34;, &amp;#34;1&amp;#34;]).</description></item><item><title>Deno v1.35</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.35.html</link><pubDate>Sun, 09 Jul 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.35.html</guid><description>Deno v1.35がリリースされました。
この記事では主な変更点などについて解説します。
Deno API Deno.serveの安定化 Denoに組み込まれたHTTPサーバを起動するためのAPIであるDeno.serveが安定化されました。今後は--unstableを指定しなくても利用できます。
const ac = new AbortController(); setTimeout(() =&amp;gt; ac.abort(), 10000); const server = Deno.serve({ signal: ac.signal, }, (req) =&amp;gt; new Response(&amp;#34;Hello Deno!&amp;#34;)); await server.finished; これに合わせて、Deno.connectTlsのalpnProtocolsオプションも安定化されています。
Deno.listenTlsのalpnProtocolsオプションについては、おそらくv1.35.1で正式に安定化されるのではないかと思います。
新しいAPI Deno.errors配下に以下の新しいエラーが追加されています:
NotADirectory FilesystemLoop IsADirectory NetworkUnreachable また、Deno.AtomicOperationが公開されています (今までは型定義のみが公開されていて、Deno名前空間では実際には定義されていませんでした)
Web API ReadableStream.from ReadableStream.fromが実装されました。AsyncIteratorなどからReadableStreamを作成することができます。
function sleep(ms) { return new Promise((ok) =&amp;gt; setTimeout(ok, ms)); } async function* gen() { for (let i = 0; i &amp;lt; 5; i++) { await sleep(i * 1000); yield i; } } const readableStream = ReadableStream.</description></item><item><title>2023/06/26〜2023/07/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/07/02.html</link><pubDate>Sun, 02 Jul 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/07/02.html</guid><description>deno_lint v0.48.0 deno_lint v0.48.0がリリースされています。
fresh向けにfresh-server-event-handlersという新しいルールが実装されています。
routes/ディレクトリに配置されたコンポーネントでイベントハンドラを設定しているコードがあればエラーが発生します。(このディレクトリのコンポーネントはhydrationされないため、イベントハンドラを設定しても動作しないためです)
このルールは、おそらくDeno v1.35以降のバージョンから利用できるようになると思います。
注意点として、このルールにはデフォルトで有効化されるrecommendedタグは付与されていないため、利用したい際は以下のいずれかの方法で有効化する必要がありそうです。
deno.jsonのlint.rules.includeでfresh-server-event-handlersを指定する deno.jsonのlint.rules.tagsにfreshを指定する また、このfresh-server-event-handlersルール以外にも、fresh-handler-exportというルールの実装も進んでいるようで、freshに関するルールのdeno lintへの搭載が少しずつ進められているようです。
denoland/deno_core 今までdenoland/denoリポジトリ内で開発が進められていたdeno_core crateのリポジトリが独立されたようです。(#19658)
今後は以下のリポジトリで開発が進められていくようです。
https://github.com/denoland/deno_core cliffy v1.0.0-rc.1 DenoのCLIフレームワークであるcliffy v1.0.0のRCバージョンが公開されています。
新機能としてCommandクラス(cliffy/command)へのglobalActionメソッドの実装や、cliffyの内部で使われていたテスト用のヘルパーモジュール(cliffy/testing)の追加などが行われているようです。
また、cliffy/flagsのparseFlagsでのオプション名の見直しや、cliffy/promptのInput.promptでデフォルトのインデントの削除など、いくつか破壊的変更が行われているようです。
https://github.com/c4spar/deno-cliffy/releases/tag/v1.0.0-rc.1
fresh-tailwindcss freshからTailwind CSSを利用するためのプラグイン
fresh-tailwindcss daisyUIの使用例なども公開されています。</description></item><item><title>2023/06/19〜2023/06/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/06/25.html</link><pubDate>Sun, 25 Jun 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/06/25.html</guid><description>Fresh Devtools Fresh本体にFresh Devtoolsという開発者ツールを実装することが検討されているようです。
Fresh Devtools #1321
経緯としては、Freshのバックエンドで動作する各種ハンドラなどはPreact Devtoolsではカバーしきれないという課題などの解消が狙われているようです。
また、Nuxt DevToolsのように、Freshアプリケーションの一部として開発者ツールをレンダリングできるようにすることなども考慮されているようです。
例えば、このFresh Devtoolsでroutesタブやpluginsタブ、Preact Devtools向けのタブなどを提供することで、生産性やデバッグなどのサポートをすることが構想されています。
denoland/kv_api Deno KVのデータをREST API経由で管理できるようにしてくれるモジュールが公開されています。
denoland/kv_api 現状はFreshのみがサポートされていますが、今後、Oakのサポートが追加されることも検討されているようです。
deno_std/msgpack deno_stdにMessagePackのサポートを追加するPRが作成されています。
feat: msgpack encoding #3460
まだマージはされていませんが、近いタイミングでリリースされる可能性もあるかもしれません。
Global database comparison Deno KVやDynamoDBなどのDeno Deployからの利用に適していると考えられる各種データベースについて、詳しく比較を行っているWebページが公開されています。
https://global-db-comparison.deno.dev/</description></item><item><title>2023/06/12〜2023/06/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/06/18.html</link><pubDate>Sun, 18 Jun 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/06/18.html</guid><description>fresh v1.2 fresh v1.2がリリースされました。
変更内容について以下のページにまとめたため、よろしければ参照いただければと思います。
fresh v1.2 Deno v1.34.3 Deno v1.34.3がリリースされました。
Deno KVにキューが実装 Deno.KvにenqueueとlistenQueueメソッドが追加されています。
const kv = await Deno.openKv(&amp;#34;:memory:&amp;#34;); // メッセージを追加します。 const res = await kv.enqueue({ id: 1, payload: &amp;#34;foo&amp;#34; }); assert(res.ok); let message; // キューを購読します const listenPromise = kv.listenQueue((_message) =&amp;gt; { message = _message; }); kv.close(); await listenPromise; // closeするとresolveされます console.info(message); // Output: { id: 1, payload: &amp;#34;foo&amp;#34; } Deno.Kv.enqueueには以下のオプションを指定できます。
オプション 説明 keysIfUndelivered メッセージの処理に失敗した際にKVに設定したいエントリを指定できます delay 配送までの遅延時間を指定できます(最大で1週間まで指定できて、デフォルトは0です) listenQueueに渡したコールバックが失敗した際は、自動的にリトライされます。(リトライ回数は最大で5回のようです)</description></item><item><title>fresh v1.2</title><link>https://uki00a.github.io/deno-weekly/articles/fresh/v1.2.html</link><pubDate>Sun, 18 Jun 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/fresh/v1.2.html</guid><description>fresh v1.2がリリースされました。
この記事では主な変更点などについて解説します。
このリリースに合わせて、PreactのメンテナーであるMarvin Hagemeister氏がDeno社に入社されたことが発表されています。これからMarvin Hagemeister氏を中心に、フルタイムでFreshの開発が進められていくことが計画されているようです。
アップデートについて freshはアップデート用のスクリプト(update.ts)を提供しています。
以下のコマンドを実行すると、v1.2へアップデートすることができます。
$ deno run -A -r https://fresh.deno.dev/update . また、このバージョン以降からinit.ts (freshのプロジェクト初期化用のスクリプト)で作成したプロジェクトでは、deno task updateでもfreshをアップデートすることができます。
Islandコンポーネントに関する改善 props.childrenのサポート Islandコンポーネントでprops.childrenがサポートされました。
import type { PageProps } from &amp;#34;$fresh/server.ts&amp;#34;; import Collapse from &amp;#34;../islands/Collapse.tsx&amp;#34;; function Content() { return &amp;lt;div&amp;gt;foobar&amp;lt;/div&amp;gt;; } export default function Index(props: PageProps) { return ( &amp;lt;Collapse&amp;gt; &amp;lt;Content /&amp;gt; &amp;lt;/Collapse&amp;gt; ); } またIslandコンポーネントをネストすることもできます。
export default function Index(props: PageProps) { return ( &amp;lt;Collapse&amp;gt; &amp;lt;Collapse&amp;gt; &amp;lt;Content /&amp;gt; &amp;lt;/Collapse&amp;gt; &amp;lt;/Collapse&amp;gt; ); } 制限として、children以外のpropsにコンポーネントを渡すことはまだサポートされていません。</description></item><item><title>2023/06/05〜2023/06/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/06/11.html</link><pubDate>Sun, 11 Jun 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/06/11.html</guid><description>Deno v1.34.2 Deno v1.34.2がリリースされました。
Node.js互換性 node:http2が追加されました。 http2.connectとhttp2.createServerの基本的な実装が追加されています。 node:fs/promises: FileHandleの以下のメソッドが実装されました。 readFile() read() write() close() node:child_process: spawnのstdioオプションで[0, 1, 2]の指定がサポートされました。 node:process: process.stdoutにpipeされたReadableストリームがクローズされた際に、process.stdoutも一緒にクローズされてしまう問題が修正されています。 Web API 巨大なArrayBufferをconsole.logなどで表示しようとした際に、誤ってdetached状態として表示される問題が修正されました。 EventTargetのリスナ内で同一イベントへのリスナを新しく登録した際に、登録されたばかりのリスナが即座に呼ばれてしまう問題が修正されました。 パフォーマンス改善 主にHTTPサーバ(Deno.serve)に対して、様々なパフォーマンス改善が実施されています。
perf: use sendto syscalls #19414 perf(ext/http): Add a sync phase to http serving #19321 perf(ext/http): Use flat list of headers for multiple set/get methods #19336 perf(ext/http): Migrate op_http_get_request_headers to v8::Array #19354 perf(ext/http): Migrate op_http_get_request_method_and_url to v8::Array #19355 perf: optimize RegExp usage in JS #19364 perf(http): avoid flattening http headers #19384 deno_std v0.</description></item><item><title>2023/05/29〜2023/06/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/06/04.html</link><pubDate>Sun, 04 Jun 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/06/04.html</guid><description>Deno v1.34.1 Deno v1.34.1がリリースされました。
deno compile DENO_DIRが読み取り専用であった際に、deno compileで作ったバイナリがうまく動かない問題が修正されました。 npmパッケージ内に含まれるファイルを読む際に、deno compileに--allow-readを指定しているにも関わらず、バイナリの実行時に再度--allow-readが求められる問題が修正されました。 Node-API napi_get_cb_infoでdata引数が適切に取り扱われるように改善されました。
Deno.createHttpClient オプションとしてhttp2: falseとhttp1: trueの両方が指定された場合に、ALPNでh2が指定されないように修正されました。
denoland/deno_kv_oauth Deno公式で、Deno KVをベースにOAuthのアクセストークンやセッションなどの管理を行ってくれるモジュールが公開されています。
https://github.com/denoland/deno_kv_oauth ロードマップについては、以下で公開されています。
https://github.com/denoland/deno_kv_oauth/issues/1 window変数の削除について Deno 2.0でwindow変数の削除が検討されているようです。
remove window variable #13367 背景としては、既存のライブラリにはwindow変数の有無に応じて現在の環境(ブラウザ or Node.js)を判断しているものが多く存在し、Denoでそういったライブラリを利用する際に、意図せずしてブラウザであると判定されてしまうことを防ぎたい、という狙いがあるようです。
次のマイナーリリースであるDeno 1.35では、window変数が参照された際に警告を表示する変更を入れることが検討されているようです。
feat(runtime): log deprecated message on first usage of window global #19319 esbuild_deno_loader v0.8.0 esbuild_deno_loader v0.8.0がリリースされました。
npm:URLやnode_modulesのサポートが行われています。
&amp;quot;native&amp;quot;ローダーでは、通常のDenoにおけるnpm:などと同様に、依存するnpmパッケージはDenoのグローバルキャッシュ(DENO_DIR)から読み込みやダウンロードなどが行われるようです。
ただし、Deno Deployなどでも動作する&amp;quot;portable&amp;quot;ローダーでは、--node-modules-dirなどによって事前にnode_modulesディレクトリが作成されていないと動作しないなどの制限があるようです。
freshでのnpm:サポート またマージはされていませんが、esbuild_deno_loader v0.8.0を活用してfreshにnpm:のサポートを入れる対応が進められているようです。
feat: limited npm: specifier support #1245</description></item><item><title>2023/05/22〜2023/05/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/05/28.html</link><pubDate>Sun, 28 May 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/05/28.html</guid><description>Deno v1.34 Deno v1.34がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Deno v1.34 deno_std v0.189.0 deno_std v0.189.0がリリースされました。
std/async/retry.ts retry()の内部でジッターが適用されるようになりました。
std/collections/group_by.ts groupBy()でIterable&amp;lt;T&amp;gt;型の値がサポートされました。
import { groupBy } from &amp;#34;https://deno.land/std@0.189.0/collections/group_by.ts&amp;#34;; groupBy( new Set([1, 2, 3, 4, 5]), (x) =&amp;gt; x % 2 === 0 ? &amp;#34;even&amp;#34; : &amp;#34;odd&amp;#34;, ); // Output: { odd: [ 1, 3, 5 ], even: [ 2, 4 ] } また、selector関数が引数として現在処理中の要素のindexを受け取るように変更されています。
v0.189.0 v0.188.0 Deno DeployでNode.js組み込みモジュールがサポート Deno DeployでNode.js組み込みモジュールがサポートされたようです。</description></item><item><title>Deno v1.34</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.34.html</link><pubDate>Sun, 28 May 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.34.html</guid><description>Deno v1.34がリリースされました。
この記事では主な変更点などについて解説します。
deno.json(c)の拡張 トップレベルのexcludeフィールドがサポート deno fmtやdeno lintなどの各コマンドで共通の除外対象ファイルを定義できます。
また、トップレベルのexcludeに加えてfmt.excludeやlint.excludeなども一緒に定義されている場合は、それらへマージされます。
例えば、以下のような設定があったとします。
{ &amp;#34;fmt&amp;#34;: { &amp;#34;exclude&amp;#34;: [ &amp;#34;fresh.gen.ts&amp;#34;, &amp;#34;README.md&amp;#34; ] }, &amp;#34;lint&amp;#34;: { &amp;#34;exclude&amp;#34;: [ &amp;#34;fresh.gen.ts&amp;#34; ] } } Deno v1.34以降であれば、以下のように設定をまとめることができます。
{ &amp;#34;exclude&amp;#34;: [ &amp;#34;fresh.gen.ts&amp;#34; ], &amp;#34;fmt&amp;#34;: { &amp;#34;exclude&amp;#34;: [ &amp;#34;README.md&amp;#34; ] } } globのサポート include/excludeやtasksなどでglob形式で対象を定義することができます。
{ &amp;#34;lint&amp;#34;: { &amp;#34;exclude&amp;#34;: [&amp;#34;generated/**/*.ts&amp;#34;] }, &amp;#34;tasks&amp;#34;: { &amp;#34;my_task&amp;#34;: &amp;#34;cat vendor/**/*.</description></item><item><title>2023/05/15〜2023/05/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/05/21.html</link><pubDate>Sun, 21 May 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/05/21.html</guid><description>Deno v1.33.4 Deno v1.33.4がリリースされました。
Node.js互換性の改善 組み込みモジュールの改善
node:crypto: getDiffieHellman/createDiffieHellmanが実装されました。 node:url: formatにURLオブジェクトを渡した際に、適切にフォーマットが行われなかった問題が修正されました。 node:child_process: spawnのstdioオプションにStreamを渡せるようになりました。 これによりnpm-run-all が動くようになったようです。 Node-API
napi_add_finalizerが実装されました。 BigInt関連のAPIの互換性が改善されています。 npm
optionalDependenciesのサポートが改善されています。
Deno KV Deno.Kv.close()の戻り値の型定義がPromise&amp;lt;void&amp;gt;からvoidへ変更されました。(実装は修正されていませんが、TypeScriptの型定義に誤りがあったようです)
Deno.serve()のバグ修正 リクエストがキャンセルされると、Denoがパニックすることがある問題が修正されました。
Web API BroadcastChannelの型定義がlib.deno.unstable.d.tsへ移動されました。 unstable APIであるにも関わらず、--unstableなしでも型定義を参照できてしまう問題があったようです。 WebSocketで短い時間内で多くのメッセージを送信すると、いくつかのメッセージが失われることがある問題が修正されました。 fetch()でIPアドレスを指定してHTTPSリクエストを送信する(例: https://1.1.1.1/)とエラーが発生する問題が解消されました。 deno_std v0.188.0 deno_std v0.188.0がリリースされました。
std/flags collectとdefaultを併用した際に、オプションにネストされた配列が設定される問題が修正されました。
import { parse } from &amp;#34;https://deno.land/std@0.188.0/flags/mod.ts&amp;#34;; const options = parse([], { collect: [&amp;#34;values&amp;#34;], default: { values: [&amp;#34;foo&amp;#34;, &amp;#34;bar&amp;#34;], }, }); console.</description></item><item><title>2023/05/08〜2023/05/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/05/14.html</link><pubDate>Sun, 14 May 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/05/14.html</guid><description>Deno v1.33.3 Deno v1.33.3がリリースされました。
deno compileでnpmパッケージがサポート deno compileでnpm:やnode:URLに依存したアプリケーションの実行可能ファイルの生成がサポートされました。
利用する際は、現時点では--unstableの指定が必要です。
import chalk from &amp;#34;npm:chalk@5.2.0&amp;#34;; console.log(chalk.green.bold(&amp;#34;Hello&amp;#34;)); $ deno compile --unstable --output=example main.js $ ./example また、deno compileによるコンパイル対象として、直接npmパッケージを指定することもできるようです。
$ deno compile --unstable --output=cowsay npm:cowsay@1.5.0 $ ./cowsay hello Deno.serve() レスポンスの自動的な圧縮が実装されました。
現時点ではgzipのみがサポートされています。(Content-Encoding: gzip)
それ以外には、--watchオプションと併用した際の安定性の改善が実施されています。
Deno.Command Deno.ChildProcess#killが、システムの全実行可能ファイルに対する--allow-run権限を要求する問題が修正されました。
v1.33.2までは、例えば--allow-run=redis-cliのように特定のバイナリのみを許可している場合、Deno.ChildProcess#killで権限エラーが発生する問題があったため、このリリースで修正されています。
deno lsp documentPreloadLimitオプションが追加されました。
これにより、deno lspがプリロードするドキュメント数をカスタマイズできます。
vscode_denoでは、v3.18.0でdocumentPreloadLimitオプションのサポートが入っているようです。
その他 Deno.seekSyncとDeno.seekの型定義が統一されていなかった問題が修正されました。(#19060) node:module: Module.runMain()が実装されました。(ts-nodeで使用されているようです) リダイレクトするリモートモジュールへの依存があった場合、deno vendorの実行時にパニックする問題が修正されました。 Deno.UnsafeCallbackが使用されていると、deno testがハングすることのある問題が修正されました。 deno_std v0.187.0 deno_std v0.187.0がリリースされました。
std/regexpが追加 新しいモジュールとしてstd/regexpが追加されました。
現状では、正規表現のメタ文字をエスケープするための機能が提供されています。
import { escape } from &amp;#34;https://deno.</description></item><item><title>2023/05/01〜2023/05/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/05/07.html</link><pubDate>Sun, 07 May 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/05/07.html</guid><description>Deno v1.33.2 Deno v1.33.2がリリースされました。
Deno KV Deno.KvU64にvalueOf/toStringが実装されました。
assert(new Deno.KvU64(1n) + 2n === 3n); assert(new Deno.KvU64(123n).toString() === &amp;#34;123&amp;#34;); また、Deno.Kvのコンストラクタを直接呼ぶと、エラーが発生するように変更されました。(Deno.openKvの使用が推奨されるため)
Node.js互換性 node:process: process.releaseが実装されました。 node:http: ClientRequest.setTimeoutに0を渡すとタイムアウトが無効化されるように修正されました。 その他 パフォーマンス向上のため、Windows以外の環境では、グローバルアロケータやArrayBufferの割り当ての用途としてjemallocが使用されるように変更されました。 beforeunloadのリスナ内でpreventDefaultを呼んでいると、Deno.test内で発生したUncaught Errorが画面に表示されなくなる問題が修正されました。 WebSocketクライアントが適切にクローズされなかった場合、WebSocketサーバがハングする問題が修正されました。 引数なしでURL.canParse()が呼ばれた際に、falseを返すのではなくTypeErrorが発生するように修正されました。 deno_std v0.186.0 deno_std v0.186.0がリリースされました。
std/path sepが非推奨化されました。
今後はSEPの使用が推奨されます。
std/async deadline.ts: signalオプションによるキャンセルがサポートされました。 pool.tsがブラウザ互換になりました。 std/http/method.tsの追加 isHttpMethodで与えられた文字列が正しいHTTPメソッドであるか判定できます。
import { isHttpMethod } from &amp;#34;https://deno.land/std@0.186.0/http/method.ts&amp;#34;; assert(isHttpMethod(&amp;#34;GET&amp;#34;)); assert(isHttpMethod(&amp;#34;POST&amp;#34;)); assert(!isHttpMethod(&amp;#34;get&amp;#34;)); assert(!isHttpMethod(&amp;#34;foo&amp;#34;)); std/http/file_server.ts Rangeヘッダが仕様どおりにハンドリングされるように改善されました。
std/http/server.ts serve()ですでに使用中のportを指定した際に、たまにAddrInUseではなくTypeError: Cannot read properties of undefined (reading 'port')が発生する問題が修正されました。</description></item><item><title>2023/04/24〜2023/04/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/04/30.html</link><pubDate>Sun, 30 Apr 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/04/30.html</guid><description>Deno v1.33 Deno v1.33がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Deno v1.33 Deno v2.0について Deno v1.33のリリースノートでDeno v2.0のリリース時期について書かれています。
https://deno.com/blog/v1.33 数カ月後にリリースが予定されているようです。
それまでの間、今後のマイナーリリースではパフォーマンスやNode.js互換性、セキュリティなどの改善が行われる想定のようです。
deno_std v0.185.0 deno_std v0.185.0がリリースされました。
std/uuid: UUID v3のサポート std/uuid/v3.tsが実装されています。
MD5を利用してUUIDを生成するgenerate()や、UUIDの検証をするvalidate()が提供されています。
std/dotenv: --allow-envなしでの読み込みがサポート restrictEnvAccessToオプションに空の配列やnullまたはundefinedを指定した際に、環境変数を参照せずに.envの内容のみが読み込まれるようになりました。
この場合、--allow-envの指定が不要になります。
esbuild_deno_loader v0.7.0 esbuild_deno_loader v0.7.0がリリースされました。
v0.6.0で提供されていたdenoPluginが以下のように2つのプラグインに分割されています。
denoResolverPlugin: Import mapsを考慮した上でspecifierを解決する denoLoaderPlugin: denoResolverPluginが解決したspecifierを元にモジュールを読み込む プラグインを分割することにより、カスタムのスキーマや拡張子などをサポートできるようになったようです。
例えば、以下ではカスタムのemoji:スキーマをサポートする例が紹介されています。
examples/custom_scheme_plugin.ts また、configPathとimportMapURLオプションが追加されており、これらにより各プラグインが利用するdeno.jsonやImport Mapsファイルへのパスを指定することができるようです。
Deno KV Deno KVのホームページが正式に公開されました。
https://deno.com/kv @ayame113さんによるDeno KVの解説記事も公開されています。
Deno KV 正式発表！cloudflare KVとcloudflare D1のいいとこ取り？</description></item><item><title>Deno v1.33</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.33.html</link><pubDate>Sun, 30 Apr 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.33.html</guid><description>Deno v1.33がリリースされました。
この記事では主な変更点などについて解説します。
dynamic importに関するパーミッションチェックの見直し 静的に解析可能なdynamic importの実行時に、パーミッションが要求されないように挙動が変更されました。
このリリース以降、以下のコードを実行する際に--allow-netの指定が不要になります。(v1.32までは--allow-netが要求されます)
const { delay } = await import(&amp;#34;https://deno.land/std@0.185.0/async/delay.ts&amp;#34;); await delay(3000); ただし、以下のようにURLを動的に構築している場合などは、従来通り--allow-netの指定が必要です。
// Denoが`import()`の引数を静的に解析できない場合は、従来どおりパーミッションが要求されます const { delay } = await import(`https://deno.land/std@0.185.0/async/${&amp;#34;delay.ts&amp;#34;}`); await delay(3000); Deno KV Deno.AtomicOperationにmin/maxメソッドが追加 minは引数で指定された値と現在の値を比較し、小さい方の値でエントリを上書きします。maxはその逆の操作です。
const kv = await Deno.openKv(&amp;#34;:memory:&amp;#34;); const result = await kv.set([&amp;#34;key&amp;#34;], new Deno.KvU64(1n)); const commitResult = await kv.atomic() .check({ key: [&amp;#34;key&amp;#34;], versionstamp: result.versionstamp }) .max([&amp;#34;key&amp;#34;], 2n) .commit(); assert(commitResult.ok); const result2 = await kv.</description></item><item><title>2023/04/17〜2023/04/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/04/23.html</link><pubDate>Sun, 23 Apr 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/04/23.html</guid><description>Deno v1.32.5 Deno v1.32.5がリリースされました。
KV Deno.AtomicOperation.sumが実装されました。
const kv = await Deno.openKv(&amp;#34;:memory:&amp;#34;); const result = await kv.set([&amp;#34;key&amp;#34;], new Deno.KvU64(1n)); const ok = await kv.atomic() .check({ key: [&amp;#34;key&amp;#34;], versionstamp: result.versionstamp }) .mutate({ type: &amp;#34;sum&amp;#34;, key: [&amp;#34;key&amp;#34;], value: new Deno.KvU64(2n) }) .commit(); assert(ok); const result2 = await kv.get([&amp;#34;key&amp;#34;]); assert(result2.value instanceof Deno.KvU64); assert(result2.value.value === 3n); Node.js互換性 node:http: ClientRequest.socket.remoteAddressが実装されました node:crypto: createVerifyが実装されました node:path: fromFileUrlなどのNode.jsでは提供されないシンボルがexportされていた問題が修正されました npm: ロックファイルで指定されたバージョンがキャッシュに見つからなかった場合に、そのバージョンのパッケージをダウンロードするように挙動が変更されました (このような場合、今まではエラーが起きていました) バグ修正 deno lsp: Unix系のOSでstatusページが返ってこなくなっていた問題が修正されました deno test --watchの実行中にSIGINTを送信しても、プロセスを停止できない問題が修正されました Deno.</description></item><item><title>2023/04/10〜2023/04/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/04/16.html</link><pubDate>Sun, 16 Apr 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/04/16.html</guid><description>Deno v1.32.4 Deno v1.32.4がリリースされました。
Deno v1.32.2以降、Freshが動かなくなっていた問題が解消されています。(#18572)
Node.js互換性 node:cryptoで以下のAPIが実装されています:
X509Certificate generateKey hkdf 特定のnpmパッケージのバージョンを更新しようとすると、以下のエラーが起きる問題が解消されています。
Could not find npm package &amp;#39;&amp;lt;package&amp;gt;’ matching &amp;lt;version&amp;gt;. Try retrieving the latest npm package information by running with --reload deno cache --reload npm:&amp;lt;package&amp;gt;を実行すると、依存している全npmパッケージが再インストールされる問題が解消されています。
KV Deno.Kvの各メソッドで、キーに配列以外の値を渡せないように挙動が変更されました。
例えば、今まではkv.get(&amp;quot;key&amp;quot;)のような呼び方ができましたが、今後はkv.get([&amp;quot;key&amp;quot;])のように呼ぶ必要あります。
Cache API プログラムの実行をまたいで同一のリクエストに対して複数回Cache.putを呼んだ際に、値がうまく上書きされなくなる問題が修正されています (#18649)
deno_std v0.183.0 deno_std v0.183.0がリリースされました。
std/encoding/varint/の削除 非推奨化されていたstd/encoding/varint/が削除されました。
deno_std v0.179.0でstd/encoding/varint.tsにTypeScriptベースのAPIが追加されているため、今後はこれらの使用が推奨されます。
std/csv 破壊的変更
CsvStreamがCsvParseStreamへリネームされています。(CsvStreamはまだ削除はされていないものの、非推奨化されています)
この変更はJsonParseStream/JsonStringifyStreamを提供するstd/jsonとの一貫性の向上を目的としています。
parse()などのAPIの型定義が改善されています。
具体的には、以下のように型推論が効くように変更されています。
import { parse } from &amp;#34;https://deno.land/std@0.183.0/csv/parse.ts&amp;#34;; const records: Array&amp;lt;Record&amp;lt;&amp;#34;id&amp;#34; | &amp;#34;name&amp;#34;, string&amp;gt;&amp;gt; = parse(&amp;#34;1,a\n2,b&amp;#34;, { columns: [&amp;#34;id&amp;#34;, &amp;#34;name&amp;#34;], }); std/http/etag.</description></item><item><title>2023/04/03〜2023/04/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/04/09.html</link><pubDate>Sun, 09 Apr 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/04/09.html</guid><description>Flashの削除について まだリリースはされていませんが、Deno v1.25で実装されたFlashというHTTPサーバを削除する対応が実施されているようです。
refactor: remove &amp;ldquo;ext/flash&amp;rdquo; #18578 これに伴い、Flashを起動するためのAPIであったDeno.serve()についても、一時的にDeno.serveHttp()ベースの実装へ書き換えられています。
refactor: &amp;ldquo;Deno.serve()&amp;rdquo; API uses &amp;ldquo;Deno.serveHttp()&amp;rdquo; internally #18568 Deno.serve()については、現在、上記とは別に改めてhyperベースの実装への書き換えが試みられているようです。
Extremely experimental HTTP rewrite #18619 Oakでもすでに対応が行われており、次のリリースあたりでFlashのサポートが削除される可能性が高そうです。
feat: remove experimental support for Deno flash server docs: remove experimental flash content from README fresh v1.1.5 fresh v1.1.5がリリースされました。
twindv1プラグインで、SSRとCSR時に生成されたスタイルが一部重複してしまうことがある問題について改善されています。
Deno SaaSKit Deno公式からFreshやSupabase, Stripeなどを活用したSaaSプロジェクトのテンプレートが公開されました。
Announcing Deno SaaSKit: an open-source SaaS template built with Fresh ソースコードやロードマップなどが以下のリポジトリで公開されています。
https://github.com/denoland/saaskit SaaSKit v1.</description></item><item><title>2023/03/27〜2023/04/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/04/02.html</link><pubDate>Sun, 02 Apr 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/04/02.html</guid><description>Deno v1.32.2 Deno v1.32.2がリリースされました。
KV (Deno.Kv) Deno.KvCommitResult型が追加されています。
これには、KVにコミットされた値に設定された新しいversionstampが含まれます。
この追加に合わせて、以下の変更も実施されています。
Deno.AtomicOperation.commitの戻り値がPromise&amp;lt;boolean&amp;gt;からPromise&amp;lt;Deno.KvCommitResult | null&amp;gt;に変更されています。(コミット成功時はDeno.KvCommitResult、失敗時はnullが返却されます) Deno.Kv.setの戻り値がPromise&amp;lt;void&amp;gt;からPromise&amp;lt;KvCommitResult&amp;gt;に変更されています。 Deno.KvEntryMaybeが追加されています。(この型の実体はDeno.KvEntry&amp;lt;T&amp;gt; | { key: Deno.KvKey, value: null, versionstamp: null }のaliasです)
これに合わせて、以下のAPIに型引数を指定できるように変更されました。
Deno.KvListIterator → Deno.KvListIterator&amp;lt;T&amp;gt; Deno.KvEntry → Deno.KvEntry&amp;lt;T&amp;gt; これらの変更により、エントリを取得する際に値の型を指定できるようになりました。
const entry: Deno.KvEntryMaybe&amp;lt;string&amp;gt; = await kv.get&amp;lt;string&amp;gt;([&amp;#34;str&amp;#34;]); const entries: [Deno.KvEntryMaybe&amp;lt;string&amp;gt;, Deno.KvEntryMaybe&amp;lt;number&amp;gt;] = await kv.getMany&amp;lt;[string, number]&amp;gt;([[&amp;#34;str&amp;#34;], [&amp;#34;n&amp;#34;]]); Deno.Kv#getManyが実装されました。
複数のエントリをまとめて取得できます。
await kv.set([&amp;#34;key&amp;#34;, 1], &amp;#34;foo&amp;#34;); await kv.set([&amp;#34;key&amp;#34;, 2], &amp;#34;bar&amp;#34;); const entries = await kv.getMany([ [&amp;#34;key&amp;#34;, 1], [&amp;#34;key&amp;#34;, 2] ]); assert(entries.</description></item><item><title>2023/03/20〜2023/03/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/03/26.html</link><pubDate>Sun, 26 Mar 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/03/26.html</guid><description>Deno v1.32 Deno v1.32がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Deno v1.32 Deno v1.32.1 Deno v1.32.1がリリースされました。
Resizable ArrayBufferの無効化 Resizable ArrayBufferが無効化されています。
CVE-2023-28445 もしDeno v1.32.0を使用されている場合は、v1.32.1へのアップデートが推奨されます。
その他 deno run -に与えられたソースがJavaScriptではなくTypeScriptとして解釈されるように修正されています。(Deno v1.32.0での--extオプション導入時のリグレッションのようです) オブジェクトの値に改行が入った文字列があった際に、Deno.inspectで非compactな形式で結果が返されるように改善されています。 deno lspでenablePathsに末尾の/なしでパスが与えられた際も適切に動作するように修正されています。 (https://github.com/denoland/vscode_deno/issues/827) https://github.com/denoland/deno/releases/tag/v1.32.1
deno_std v0.181.0 deno_std v0.181.0がリリースされました。
std/front_matter - +++ブロックがサポート +++ブロックがサポートされました。
このブロック内ではTOML形式でメタデータを宣言できます。
+++ title = ”hello” +++ 本文... Hugoなどでこの形式がサポートされているようです。
std/testing/asserts 各種アサーション関数にカスタムのメッセージが与えられた際のエラーメッセージが改善されています。
例えば、assertEqualsにカスタムのmsg引数を渡した際に、msgに加えてdiffの内容も一緒に表示されるように挙動が改善されています。
assertEquals(1, 2, &amp;#34;カスタムメッセージ&amp;#34;); 上記のようなコードがあった場合、v0.181.0とv0.180.0ではそれぞれ以下のように出力されます。
v0.181.0
error: Uncaught AssertionError: Values are not equal: カスタムメッセージ [Diff] Actual / Expected - 1 + 2 throw new AssertionError(message); v0.</description></item><item><title>Deno v1.32</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.32.html</link><pubDate>Sun, 26 Mar 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.32.html</guid><description>Deno v1.32がリリースされました。
この記事では主な変更点などについて解説します。
WebGPU APIの削除 Deno v1.8で追加されたWebGPU APIが削除されました。
バイナリサイズや起動速度に影響があったというのが理由のようです。
ただし、削除は一時的なもののようで、将来的には再びWebGPU APIが追加される想定のようです。
KVストア Deno本体にKVストアが実装されています。
ただし、こちらについてはまだ公式では紹介などはされておらず、今後、APIなどに大きな変更が入る可能性もあります。
詳細については、以下の記事を参照いただければと思います。
Deno v1.32でKVストアが実装されました TypeScript TypeScript v5.0.2へのアップデート Deno内部に搭載されているTypeScriptがv5.0.2へアップデートされました。
ただし、制限として、ES Decoratorsのサポートについては現時点では除外されているようです。
--allを指定しなかった際の初回の型チェックの実行が高速化 Denoでは型チェックの実行結果をSQLiteにキャッシュしておくことで、型チェックの効率化を図っています。
しかし、初回の型チェック実行時についてはこのキャッシュの仕組みが効かないため、型チェックの実行効率が少し落ちてしまいます。
この問題を解消するために、--allが指定されていない際は、ローカルのファイルのみを型チェックするように挙動が変更されました。
これによって、キャッシュが効いていない場合でも、場合によっては2倍程度の高速化が見られることもあるようです。
CLIに関する改善 deno compileでdynamic importとWeb Workerがサポート deno compileでdynamic importとWeb Workerを使用したコードのバイナリが作成できるようになりました。
例えば、以下のようなファイルがあったとします。
// sum.js export function sum(...numbers) { return numbers.reduce((a, b) =&amp;gt; a + b, 0); } // main.js const { sum } = await import(&amp;#34;./sum.js&amp;#34;); console.info(sum(1, 2, 3)); このようにシンプルなケースでは、特に設定などは不要でうまく動いてくれます。
$ deno compile -o main main.</description></item><item><title>Denoでpackage.jsonやnpmパッケージのサポートが入った理由について</title><link>https://uki00a.github.io/deno-weekly/articles/deno/why-deno-supports-package-json.html</link><pubDate>Sun, 26 Mar 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/why-deno-supports-package-json.html</guid><description>Denoの公式ブログで、Deno v1.31でpackage.jsonサポートが実装された背景に関する解説が公開されました。
Why We Added package.json Support to Deno このページでは、こちらの記事を参考に内容を要約していきます。
背景について Denoにnpmパッケージやpackage.jsonのサポートが導入されたのは、以下における各課題の解決や既存のNode.jsプロジェクトを直接Denoで動作させられるようにすることが目的のようです。
依存関係の重複問題 例えば、アプリケーションが依存しているモジュールAとモジュールBがそれぞれ以下のモジュールに依存していたとします。
https://deno.land/std@0.180.0/async/deferred.ts https://deno.land/std@0.181.0/async/deferred.ts もし仮にstd/async/deferred.tsの内容が0.180.0と0.181.0で同一であったとしても、URL importの性質上、これらの両方のバージョンがモジュールグラフの中に含まれてしまうという課題があります。
既存のリモートモジュール管理における課題 Denoではdeps.tsやImport mapsなどによってリモートモジュールを管理する方法がありますが、これらには以下のような課題があります。
deps.ts package.jsonなどと比較すると冗長になってしまいがち ただし、Module DeclarationsやModule Source Importsなどの仕組みにより、ある程度改善の余地はある模様です Import Maps 合成可能ではないという欠点があること (プロセスにつき1つしかImport Mapsを使用できない) CDNに関する課題 Denoではesm.shなどを活用することで一部のnpmパッケージを利用することはできるものの、性質上、どうしてもサポートができないnpmパッケージがでてきてしまうという課題があります。
対象のnpmパッケージがtarアーカイブ中に特定のテキストファイルなどが含まれていることを前提としている場合などは、動作させることが困難になってしまいます。
例としては、bullmqなどのように、パッケージ内でテキスト形式でLuaスクリプトを管理しているパッケージなども存在し、こういったパッケージをサポートすることが難しくなります。
今後について npmパッケージやpackage.jsonなどのサポートがDenoに入ったとしても、URL importなどの既存のDenoの仕組みは将来に渡ってもサポートが予定されているということが説明されています。
また、新しいメジャーバージョン (Deno v2)を数カ月後にリリースすることを目標に開発が進められているようです。
Deno v2では、上記の依存関係の重複問題などの解消を目的に、deno:URLのサポートなどが検討されているようです。
import $ from &amp;#34;deno:dax@24.0/mod.ts&amp;#34;; await $`echo foobar`; Deno本体でsemverの解決をできるようにすることで、依存関係の重複問題などを緩和することなどが計画されているようです。</description></item><item><title>2023/03/13〜2023/03/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/03/19.html</link><pubDate>Sun, 19 Mar 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/03/19.html</guid><description>Deno v1.31.3 Deno v1.31.3がリリースされました。
CLI/APIに関する改善 deno infoとdeno docコマンドで--no-lock/--lockオプションがサポートされました。(挙動はdeno runコマンドなどと同様です) deno.jsonなどでcompilerOptions.typesエントリが定義されていると、型エラーが起きる問題が修正されています。 REPLでglobalThis.Denoやその配下で定義されたプロパティを削除しようとすると、プロセスがパニックする問題が修正されています。 Deno.makeTempFile(Sync)でファイルがすでに存在した際にリトライが行われるように挙動が改善されています。 Deno.serveHttp()でレスポンスエラーが発生した際に、nextRequestから返されるRequestのsignalがabortedに設定されるように修正されました。 Node.js互換性に関する改善 package.jsonが存在する または --node-modules-dirオプションが指定されたが、実行されたスクリプトではnpmパッケージがimportされていない場合に、node_modulesが作成されないように挙動が改善されました。 node_modulesのセットアップ中にプログレスバーが表示されるように挙動が改善されました。(#18136) node:crypto: createCipheriv()が実装されました。 (aes-128-cbcのみサポート) node:fs: writeFile()でencoding: &amp;quot;ascii&amp;quot;オプションがサポートされました。 https://github.com/denoland/deno/releases/tag/v1.31.3
deno_std v0.180.0 deno_std v0.180.0がリリースされました。
std/encoding関連モジュールのディレクトリ構造の見直し (破壊的変更) std/encodingで提供されていたcsv/front_matter/json/jsonc/toml/yamlモジュールが、トップレベルのモジュールとして独立しました。
今後は、例えば、csvモジュールを利用したい場合はstd/csv/mod.ts、yamlモジュールを利用したい場合はstd/yaml/mod.tsから読み込む必要があります。
ディレクトリの移動に合わせて、以下の変更も実施されています。
csvモジュールの細分化 以下のファイルが追加されており、必要なAPIのみを個別に読み込めるようになりました。 csv/stringify.ts csv/parse.ts csv/stream.ts jsonモジュールの細分化 以下のファイルが追加されており、必要なAPIのみを個別に読み込めるようになりました。 json/json_parse_stream.ts json/json_stringify_stream.ts json/concatenated_json_parse_stream.ts tomlモジュールの細分化 以下のファイルが追加されており、必要なAPIのみを個別に読み込めるようになりました。 toml/parse.ts toml/stringify.ts std/http/server_sent_event.</description></item><item><title>2023/03/06〜2023/03/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/03/12.html</link><pubDate>Sun, 12 Mar 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/03/12.html</guid><description>Deno v1.31.2 Deno v1.31.2がリリースされました。
Node.js互換性の改善 循環依存のあるpeerDependenciesの解決が改善
例えば、以下のようなシナリオにおいて、初回実行時はうまくいくものの、ロックファイルが適用されるとうまく動かないケースがあったようで、この問題が修正されています。
a -&amp;gt; b -&amp;gt; c -&amp;gt; d -&amp;gt; c -&amp;gt; b (peer) その他の改善
npm:URLを使っていると、依存関係が変わっていなくても、毎回Lockfileがtouchされてしまう問題が修正されています。 複数のDenoプロセスが同時にnode_modulesを更新できないように制御が入りました。 package.jsonの依存関係の解析に失敗しても、npmパッケージが実際にimportされるタイミングまではエラーが起きないように修正されています。 これにより、package.jsonは存在するものの、スクリプト内でnpmパッケージを利用していないようなケースでエラーが発生しなくなります。 node:cryptoのcreateHashが高速化されています。 util.types.isSharedArrayBufferが動作しない問題が修正されています。 .d.tsファイルの型チェックに関する修正 以下のようなケースで、deno checkなどでうまく型チェックが行われていなかった問題が修正されています。
エントリポイントに指定した.d.tsファイル エントリポイントに含まれるX-TypeScript-Types/&amp;lt;reference types=&amp;quot;...&amp;quot; /&amp;gt;経由で読み込まれる.d.tsファイル .d.tsファイル内のファイルタイプが指定されていないコードブロック (deno test --docの実行時のみ) Deno.UnsafePointer.ofの改善 Deno.UnsafePointer.ofでバッファのメモリを取得する際に、もしユーザーがバッファの参照をどこかに保持していなかった場合、孤立したポインタができてしまう可能性がありました。
この問題を解消するため、Deno.UnsafePointer.ofの内部でWeakMapを使ってポインタとバッファのマッピングが管理されるようになりました。
その他 WindowsでDeno.stdin.setRaw(false)によって適切にrawモードが無効化されるように修正されています localStorageへのアイテムのINSERT時に、事前に入力内容のサイズがチェックされるように挙動が修正されています https://github.com/denoland/deno/releases/tag/v1.31.2
deno_std v0.179.0 deno_std v0.179.0がリリースされました。
std/encoding/varint.tsの追加, std/encoding/varint/mod.tsの非推奨化 TypeScriptをベースに実装されたstd/encoding/varint.tsが追加されました。 (実装はhttps://deno.land/x/varintがベースのようです)
これに合わせて、WASMベースのstd/encoding/varint/mod.tsが非推奨化されています。
std/fsの改善 std/fs/expand_glob: expandGlob()にfollowSymlinksオプションが追加されました (trueを指定すると、シンボリックリンクが解決されます) std/fs/ensure_dir: ensureDir()を同じディレクトリに対して並列で呼んだときに、Deno.errors.AlreadyExistsがthrowされる問題が修正されています。 std/fs/ensure_symlink: ensureSymlink()でtargetに対する相対的なリンクを作ろうとすると、意図せぬパスを指すリンクが作成されてしまう問題が修正されています (#2312) std/http/cookie - =の取り扱いが改善 Cookieの値に=が含まれていると、getSetCookiesが意図せぬ値を返す問題が修正されています。</description></item><item><title>2023/02/27〜2023/03/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/03/05.html</link><pubDate>Sun, 05 Mar 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/03/05.html</guid><description>Oak v12 Oak v12がリリースされています。
Router#allの挙動の変更 (破壊的変更) 今までのバージョンでは、Router#allはDELETE/GET/POST/PUTの4つのメソッドに対してミドルウェアを登録していました。
このバージョンでは、Routerの生成時にmethodsオプションで指定されたメソッドに対してミドルウェアが登録されるように挙動が変更されています。(ただし、OPTIONSについてはミドルウェアの登録がスキップされます)
methodsオプションのデフォルト値は以下のように定義されているため、このバージョン以降、デフォルトでHEAD/PATCHメソッドに対してもミドルウェアが登録されるようになります。
[ &amp;#34;DELETE&amp;#34;, &amp;#34;GET&amp;#34;, &amp;#34;HEAD&amp;#34;, &amp;#34;OPTIONS&amp;#34;, &amp;#34;PATCH&amp;#34;, &amp;#34;POST&amp;#34;, &amp;#34;PUT&amp;#34; ] その他の修正 Router#allowedMethodsで返却されたミドルウェアでOPTIONSメソッドが処理される際に、AllowではなくAllowedという名前のヘッダが返却されていた問題が修正されています。 Cookies#getにObject.prototypeで定義されているメソッドの名前が指定された際に、Cookieが設定されている場合でも、空の値が返却される問題が修正されています。 Content-Lengthが0に設定されたPOSTリクエストを受信した際に、RangeErrorが発生する問題が修正されています。 Release 12.0.0</description></item><item><title>2023/02/20〜2023/02/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/02/26.html</link><pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/02/26.html</guid><description>Deno v1.31 Deno v1.31がリリースされています。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
Deno v1.31 Deno v1.31.1 Deno v1.31.1がリリースされています。
package.jsonサポートに関する改善 以下のいずれかの手段によって、package.jsonの自動探索を無効化できるようになりました。
DENO_NO_PACKAGE_JSON環境変数に1を設定する --no-configまたは--no-npmを指定する また、package.jsonが見つかった際のnpmパッケージのダウンロードに関する挙動が改善されています。package.jsonで依存関係として指定されたいずれかのパッケージが利用されるタイミングまでnpmパッケージのダウンロードが遅延されます。
これにより、npmパッケージに依存しないスクリプトを実行する場合は、package.jsonがあってもnpmパッケージがダウンロードされなくなります。
その他には、package.jsonの以下のスキームから始まるspecifierが無視されるように修正されています。
workspace: file: git: http: https: Deno.serve()でリモートアドレスの取得がサポート Deno.serve()に渡したhandlerの第2引数にオプションが渡されるようになりました。remoteAddrプロパティ(Deno.NetAddr)からリモートアドレスが取得できます。
Deno.serve({ handler: (req, { remoteAddr }) =&amp;gt; { return Response.json(remoteAddr); }, }); その他のバグ修正 リモートモジュールからdata:URLをimportできなくなっていた問題が修正されています。 静的に解析ができないdynamic importが複数同時に実行された際に、まれにDenoがパニックする問題が修正されています。 Import Mapsでローカルモジュールへのマッピングが定義されていた場合、リモートモジュールからそのローカルモジュールをimportできない問題が修正されています。 https://github.com/denoland/deno/releases/tag/v1.31.1
deno_std v0.178.0 deno_std v0.178.0がリリースされました。
std/nodeの削除 Deno v1.31でDeno本体にstd/nodeが組み込まれました。
その影響により、std/nodeが削除されています。
もし、今後もstd/nodeを利用したい場合は、バージョンを明示した上でimportをするとよさそうです。
import { EventEmitter } from &amp;#34;https://deno.</description></item><item><title>Deno v1.31</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.31.html</link><pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.31.html</guid><description>Deno v1.31がリリースされました。
この記事では主な変更点などについて解説します。
package.jsonサポート Denoでpackage.jsonがサポートされました。
具体的には、以下のような機能などが実装されています。
package.jsonの自動探索 dependencies/devDependenciesの定義内容によるbare specifierの解決 deno taskによるscriptsの実行 package.jsonの自動探索 deno.jsonなどのファイルと同様に、Denoがpackage.jsonも自動で探索してくれるようになりました。
もしpackage.jsonが見つかった場合、必要に応じてdependenciesやdevDependenciesで記述された依存パッケージを自動でダウンロードし、デフォルトでnode_modulesディレクトリに保存してくれます。 (従来通り、package.jsonが存在しない状態でnpm:経由でnpmパッケージをimportした際は、--node-modules-dirを指定しない限り、node_modulesは作成されません)
もし、package.jsonの自動探索を無効化したい場合は、以下のいずれかの手段で無効化できます (以下の機能は、それぞれ次のリリースであるv1.31.1で追加された機能のためご注意！)
--no-configまたは--no-npmオプションを指定する。 DENO_NO_PACKAGE_JSON環境変数に1を指定する dependencies/devDependenciesによるbare specifierの解決 Denoがpackage.jsonのdependenciesやdevDependenciesで定義された依存関係を元に、Import Mapsライクにbare specifierを解決してくれるようになりました。
例えば、以下のような内容のpackage.jsonが存在したとします。
{ &amp;#34;dependencies&amp;#34;: { &amp;#34;chalk&amp;#34;: &amp;#34;^5.2.0&amp;#34;, &amp;#34;koa&amp;#34;: &amp;#34;2&amp;#34; } } この場合、アプリケーションでは以下のようにbare specifierを記述することがでます。
import chalk from &amp;#34;chalk&amp;#34;; // =&amp;gt; `npm:chalk@^5.2.0` import Koa from &amp;#34;koa&amp;#34;; // =&amp;gt; `npm:koa@2` const app = new Koa(); app.use((ctx) =&amp;gt; { ctx.body = &amp;#34;Hello world&amp;#34;; }); app.</description></item><item><title>2023/02/13〜2023/02/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/02/19.html</link><pubDate>Sun, 19 Feb 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/02/19.html</guid><description>先週のDenoの変更点 先週はDenoのリリースが行われていないため、直近のコミット内容をいくつか紹介いたします。
これらの変更が含まれると思われるDeno v1.31については、今週にリリースされる予定のようです。
deno_std/nodeのDeno本体への組み込み 今まで、deno_std/nodeとDeno本体は別々に開発されていた都合もあり、Denoからnpmパッケージを利用する際は、https://deno.land/std/nodeのダウンロードが背後で行われていました。
以下のコミットなどにおいて、V8のスナップショットの仕組みを利用して、deno_std/nodeをDeno本体へ組み込む変更が行われています。
refactor: allow to provide polyfills for Node modules from the snapshot (denoland/deno#17706) feat(ext/node): embed std/node into the snapshot (denoland/deno#17724) feat: wire up ext/node to the Node compatibility layer (denoland/deno#17785) これにより、https://deno.land/std/nodeからのモジュールのダウンロードが不要になるため、起動の高速化などが期待されます。
また、deno_std/nodeがDeno本体へ組み込まれたことにより、Node.js互換レイヤーの実装でDenoの内部APIの活用が行いやすくなり、パフォーマンスの向上や今まで実装が難しかったモジュールの対応などが進みやすくなりそうです。具体的には、以下のPRでnode:v8の実装が追加されています。
feat(ext/node): implement node:v8 (denoland/deno#17806) 今後、Node.js互換レイヤーの実装をJavaScriptからRustに置き換えていくことも検討されているようで、以下のissueで今後の計画が列挙されています。
Rewrite some of JavaScript API in &amp;ldquo;ext/node&amp;rdquo; to Rust (denoland/deno#17809) また、これらの変更を受けて、deno_std/nodeについては削除が検討されているようです。(今後は、Deno本体のリポジトリで開発が進められるようです)
Remove std/node, it was merged into Deno itself (denoland/deno_std#3206) 今後、もしdeno_std/nodeを利用したいケースが出てきた際は、削除前のバージョンを明示してimportをする必要が出てくるかもしれません。</description></item><item><title>2023/02/06〜2023/02/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/02/12.html</link><pubDate>Sun, 12 Feb 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/02/12.html</guid><description>Deno v1.30.3 Deno v1.30.3がリリースされました。
esm.shやunpkg.comなどからパッケージを読み込むと、deno lspが停止してしまう問題が修正されています。
また、console.log()などでclassを出力する際のフォーマットも改善されています。
class User {} console.info(User); // v1.30.3: `[Class: User]` // v1.30.2: `[Function: User]` https://github.com/denoland/deno/releases/tag/v1.30.3
deno_std v0.177.0 deno_std v0.177.0がリリースされました。
std/encoding/csv - BOMのサポート stringify()にbomオプションを指定できるようになりました。
trueを指定すると、出力されるCSVの先頭にBOMが付与されます。
また、trimLeadingSpaceオプションが未設定の場合でもparse()がBOMを認識するように改善されています。
std/node 以下のバグが修正されています。
node:child_process: execFile()にutil.promisify()がうまく適用されない問題が修正されています。 node:process: 標準入力にファイルがリダイレクトされている場合に、ファイルの末尾に達してもprocess.stdinからnullが返却されない問題が修正されています。 std/semver semver.increment()のmetadata引数に空文字列が渡された際に、ビルドメタデータが未設定にならない問題が修正されています。
import * as semver from &amp;#34;https://deno.land/std@0.177.0/semver/mod.ts&amp;#34;; const v = semver.increment( &amp;#34;1.2.3+1&amp;#34;, // version &amp;#34;major&amp;#34;, // release undefined, // options undefined, // identifier &amp;#34;&amp;#34;, // metadata ); assert(v === &amp;#34;2.</description></item><item><title>2023/01/30〜2023/02/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/02/05.html</link><pubDate>Sun, 05 Feb 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/02/05.html</guid><description>Deno v1.30.1 Deno v1.30.1がリリースされました。
Node.js互換性の改善 Node-APIの互換性が改善されています。
napi_get_globalでDenoのglobalThisではなくglobalオブジェクトが返されるように修正されています。 napi_create_functionでlengthパラメータが誤ってチェックされていた問題が修正されています。 これらの変更により、Denoでref-napiが動くようになったようです。
その他には、deno replでnode:URLを使った際に、以下のエラーメッセージが表示されてしまう問題が解消されています。
Could not set npm package requirements. Error getting response at https://registry.npmjs.org/@types/node: An npm specifier not found in cache: &amp;#34;@types/node&amp;#34;, --cached-only is specified. deno lspの改善 Import Maps関連のバグ修正が実施されています。
Import Mapsを更新した際に、LSPの再起動やコードの編集をせずとも更新内容が反映されるように挙動が改善されました Import Mapsが存在すると、fs形式のimportをnode:fsの形式へ変換するquickfixが機能しなくなる問題が修正されています その他の修正 performance.markのdetailオプションにArrayBufferやTypedArrayを指定するとエラーが発生する問題が修正されています https://github.com/denoland/deno/releases/tag/v1.30.1
Deno v1.30.2 Deno v1.30.2がリリースされています。
v1.30.1でCPU使用率の増加が見られたため、それを修正するために、急遽リリースされる運びになったようです。
deno version 1.30.1 large cpu increase #17629 https://github.com/denoland/deno/releases/tag/v1.30.2
deno_std v0.176.0 deno_std v0.</description></item><item><title>2023/01/23〜2023/01/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/01/29.html</link><pubDate>Sun, 29 Jan 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/01/29.html</guid><description>Deno v1.30.0 Deno v1.30がリリースされました。
以下に変更内容をまとめたため、よろしければ参照ください。
Deno v1.30 deno_std v0.175.0 deno_std v0.175.0がリリースされました。
非推奨APIの整理などが実施されています。
std/io/buffer.ts: (破壊的変更) 非推奨APIの削除 以下のAPIが削除されています。
同名のAPIは引き続き別ファイルで提供されているため、もしこれらを利用されている場合は、以下の移行先ファイルへimportを書き換える必要がありそうです。
対象API 移行先 BufferFullError std/io/buf_reader.ts BufReader std/io/buf_reader.ts PartialReadError std/io/buf_reader.ts ReadLineResult std/io/buf_reader.ts BufWriter std/io/buf_writer.ts BufWriterSync std/io/buf_writer.ts readDelim std/io/read_delim.ts readStringDelim std/io/read_string_delim.ts readLines std/io/read_lines.ts std/io/files.tsモジュールの削除 (破壊的変更) std/io/files.tsが削除されています。
このファイルで提供されていたAPIはstd/io/read_range.tsから引き続き利用できるため、今後はそちらへ移行する必要がありそうです。
std/io/readers.tsモジュールの削除 (破壊的変更) std/io/readers.</description></item><item><title>Deno v1.30</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.30.html</link><pubDate>Sun, 29 Jan 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.30.html</guid><description>Deno v1.30がリリースされました。
この記事では主な変更点などについて解説します。
Node.js互換性の改善 2023年 Q1のロードマップで発表されていたNode.js組み込みパッケージの利用が正式にサポートされました。
以下のように、node:&amp;lt;パッケージ名&amp;gt;の形式でimportを記述すると、Node.js組み込みパッケージをDenoから利用することができます。
import { EventEmitter } from &amp;#34;node:events&amp;#34;; const emitter = new EventEmitter(); emitter.on(&amp;#34;foo&amp;#34;, console.log); emitter.emit(&amp;#34;foo&amp;#34;, &amp;#34;bar&amp;#34;); また、Node-APIの互換性の改善も引き続き実施されており、以下のAPIなどの互換性が向上されています。
napi_adjust_external_memory napi_detach_arraybuffer napi_is_detached_arraybuffer deno.jsonでのImport Mapsの定義がサポート こちらも2023年 Q1のロードマップで発表されていた機能になります。
deno.jsonでimportsやscopesなどが定義されていると、--import-map使用時と同様に、deno.jsonの定義内容を元にDenoがbare specifierが解釈してくれます。
例えば、以下のような内容のdeno.jsonが存在したとします。
{ &amp;#34;imports&amp;#34;: { &amp;#34;dax&amp;#34;: &amp;#34;https://deno.land/x/dax@0.24.0/mod.ts&amp;#34; } } この場合、ソースコードでは以下のようにしてdaxモジュールを利用することができます。
import { $ } from &amp;#34;dax&amp;#34;; await $`echo foobar`; deno fmtでセミコロンの有無を制御できるように 今まで、Denoに搭載されたフォーマッタであるdeno fmtコマンドでは、ソースコードにおける行末のセミコロンの有無をカスタマイズすることができませんでした。
今回のリリースでは、deno.jsonでfmt.options.semiColonsオプションがサポートされました。 このオプションにfalseを設定すると、deno fmtの実行時に行末のセミコロンが取り除かれます。
{ &amp;#34;fmt&amp;#34;: { &amp;#34;options&amp;#34;: { &amp;#34;semiColons&amp;#34;: false } } } また、--options-no-semicolonsオプションにより、CLI経由でセミコロンの有無を制御することも可能です。</description></item><item><title>2023/01/16〜2023/01/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/01/22.html</link><pubDate>Sun, 22 Jan 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/01/22.html</guid><description>Denoのロードマップ (2023年 Q1) Denoの2023年 Q1のロードマップが公開されました。
以下のページに内容をまとめたため、よろしければ参照いただければと思います。
Denoのロードマップ (2023年 Q1) https://github.com/denoland/deno/issues/17475
Deno v1.29.4 Deno v1.29.4がリリースされました。
Node-APIに関する改善 Node-APIの互換性の向上が実施されています。
napi_get_arraybuffer_info/napi_get_buffer_info/napi_get_typedarray_infoで lengthなどの各引数がNULLであった際のケースが考慮されるように挙動が改善されています。 napi_create_errorやnapi_is_error, napi_throw_errorなどのエラー関連APIの互換性が向上されています。 Flash(Deno.serve)の改善 Request.cloneを呼ぶと、エラーが発生する問題が修正されています。 リクエストメソッドがPOST/PUT/PATCHのいずれかで かつ Deno.serveに渡したハンドラでリクエストボディがconsumeされていない場合、プロセスがパニックする問題が修正されています。 レスポンスボディとして設定したReadableStreamからUint8Array以外の値がenqueueされた際に、Deno.serveに渡したonErrorハンドラが呼ばれず、Unhandled rejectionが発生してしまう問題が修正されています。 Deno APIに関するバグ修正 Deno.copyFileSyncを実行した際に、コピー先のファイルへパーミッションが受け継がれない問題が修正されています。 WindowsでDeno.systemMemoryInfo()を呼んだ際にswapTotalやswapFreeとして返却される値の信頼性が向上されています。 https://github.com/denoland/deno/releases/tag/v1.29.4
deno_std v0.173.0 deno_std v0.173.0がリリースされました。
std/node 前回のリリースで追加されたnode:clusterがリバートされています。
Deno本体でnpm互換が有効化されている場合に、node:clusterを使っていない場合であっても、NODE_CLUSTER_SCHED_POLICYなどの環境変数に対するパーミッションが要求されてしまうためのようです。
現在、Deno本体でDeno.permissions.querySync()の実装が進められており、これが正式にサポートされたら、改めてnode:clusterを追加することが検討されているようです。
std/fs/expand_glob expandGlob(Sync)のglobstarオプションのデフォルト値がfalseからtrueへ変更されました。
std/streams/text_line_stream TextLineStreamで最後の行の後に空文字列が余分にenqueueされてしまう問題が修正されています。
https://github.com/denoland/deno_std/releases/tag/0.173.0
eslint_binary eslint_binaryという、DenoのNode.js互換性やV8 Snapshot、ESBuildなどを活用して、ESLintをシングルバイナリ化するプロジェクトが公開されています。
bartlomieju/eslint_binary このプロジェクトはあくまでPoCのため、今後どうなるかはまだ不明ですが、READMEにロードマップが公開されており、ESLintのCLIをRustで書き直すことなども検討されているようです。
esm.shの2023年のロードマップ esm.shの今年のロードマップが公開されています。
Roadmap of 2023 プレイグラウンドにコードの共有機能を実装することや、安定性の向上などを図ることが検討されているようです。</description></item><item><title>Denoのロードマップ (2023年 Q1)</title><link>https://uki00a.github.io/deno-weekly/articles/deno/roadmap-2023-q1.html</link><pubDate>Sun, 22 Jan 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/roadmap-2023-q1.html</guid><description>Denoの2023年 Q1のロードマップが公開されました。
https://github.com/denoland/deno/issues/17475 このページでは、新しく実装が検討されている機能などについて紹介いたします。
deno.jsonでのimportsフィールドのサポート 今までDenoでImport Mapsを利用するには、専用のファイルを用意しておき、それを--import-mapオプションで読むこむ必要がありました。
現在、deno.jsonで直接Import Mapsを定義できるようにするため、importsオプションの追加が検討されています。
これが実現されれば、以下のようにdeno.jsonで直接マッピングを定義できるようになります。
{ &amp;#34;imports&amp;#34;: { &amp;#34;redis&amp;#34;: &amp;#34;https://deno.land/x/redis@v0.29.0/mod.ts&amp;#34;, &amp;#34;dax&amp;#34;: &amp;#34;https://deno.land/x/dax@0.24.0/mod.ts&amp;#34; }, &amp;#34;tasks&amp;#34;: { &amp;#34;start&amp;#34;: &amp;#34;deno run --allow-net --allow-env ./main.ts&amp;#34; } } Deno公式が公開している02-deno-canonical-appにも使用例があるため、よろしければそちらも参照いただければと思います。
deno:URLのサポート deno:という新しいURLスキームの導入が検討されており、これにより、deno.land/xからのモジュールの読み込みを簡略化できます。
import $ from &amp;#34;deno:dax@24.0/mod.ts&amp;#34;; await $`echo foobar`; また、deno.land/xでも機能の拡張が予定されているようで，/x/some-packageにアクセスされた際は/x/some-package/mod.tsにリダイレクトさせることが検討されているようです。
例えば、deno:dax@24.0と記述した場合、/x/dax@0.24.0/mod.tsが読み込まれます。
package.jsonのサポート Deno本体でpackage.jsonのサポートが検討されているようです。
例えば、以下のような内容のpackage.jsonがあったとします。
{ &amp;#34;type&amp;#34;: &amp;#34;module&amp;#34;, &amp;#34;scripts&amp;#34;: { &amp;#34;main&amp;#34;: &amp;#34;deno run -A main.ts&amp;#34; }, &amp;#34;dependencies&amp;#34;: { &amp;#34;chalk&amp;#34;: &amp;#34;^5.</description></item><item><title>2023/01/09〜2023/01/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/01/15.html</link><pubDate>Sun, 15 Jan 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/01/15.html</guid><description>Deno v1.29.3 Deno v1.29.3がリリースされました。
FFI 構造体の値渡しがサポートされています。
const Point = [&amp;#34;i32&amp;#34;, &amp;#34;i32&amp;#34;]; const dylib = Deno.dlopen(libpath, { make_point: { parameters: [&amp;#34;i32&amp;#34;, &amp;#34;i32&amp;#34;], result: { struct: Point }, }, print_point: { parameters: [{ struct: Point }], result: &amp;#34;void&amp;#34;, }, }); const point = dylib.symbols.make_point(1, 2); assert(point instanceof Uint8Array); dylib.symbols.print_point(point); https://github.com/denoland/deno/pull/15060
Node-API 以下のNode-APIがサポートされました。
napi_ref_threadsafe_function napi_unref_threadsafe_function napi_add_env_cleanup_hook napi_remove_env_cleanup_hook また、Node-API経由で定義したclassの静的プロパティが適切にハンドリングされるように修正されています。
CLI --reloadと--watchを併用した際に、ファイル変更のたびに--reloadによるモジュールの再ダウンロードが行われてしまう問題が修正されています deno installによって作成されるshimにデフォルトで--no-configが指定されるように修正されています その他 ReadableStreamのasyncIteratorの挙動に関する互換性が向上されています BroadcastChannel.</description></item><item><title>2023/01/02〜2023/01/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/01/08.html</link><pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/01/08.html</guid><description>Deno v1.29.2 Deno v1.29.2がリリースされました。
Deno.osUptime() システムが起動してからの経過時間を取得するために、Deno.osUptime()というAPIが追加されました。
利用するには、--unstableと--allow-sysの指定が必要です。
Deno.Conn.ref()/unref() Deno.Connへunref()とref()メソッドが追加されました。
これらのAPIの利用には--unstableの指定が必要です。
unref()メソッドを呼ぶと、Deno.unrefTimerなどと同様に、読み込み途中のコネクションが存在したとしてもプロセスの終了がブロックされなくなります。(ただし、効果があるのは読み込みに対してのみで、書き込みについてはunrefを呼んだ場合であってもブロックされます)
ref()メソッドを呼ぶと、unref()されたコネクションをデフォルトの状態に戻すことができます。(通常通り、読み込み途中のコネクションがプロセスの終了をブロックします)
CLIに関するバグ修正 --node-modules-dirが指定された際にrequire()でパッケージが適切に解決できないケースがある問題が修正されています deno.json(c)でTypeScriptのcompilerOptions.noErrorTruncationオプションを設定できない問題が修正されています dynamic importが使用されていると、&amp;quot;unhandledrejection&amp;quot;のリスナが呼ばれないケースがあった問題が修正されています deno instlallもしくはdeno uninstallを実行する際に、ロックファイルの自動適用が行われてしまう問題が修正されています Deno APIに関する修正 Deno.memoryUsage()から返却されるrssプロパティに正しい値が設定されない問題が修正されています Deno.permissions.revokeまたはDeno.permissions.requestでname: &amp;quot;ffi&amp;quot;が指定された際に、pathオプションにURLオブジェクトを指定できるようになりました。 fetch()関連の修正 下記のケースでプロセスがパニックしてしまう問題が修正されています:
引数に不正な形式のURLが与えられた場合 bodyオプションに渡したReadableStreamでエラーが発生した場合 deno lsp関連の修正 下記のケースでTest code lensが表示されない問題が修正されています Deno.test()でテスト名がテンプレートリテラルを使用して定義されている場合 下記のように、関数を使用してテストケースが定義されている場合 const test = () =&amp;gt; ({ name: &amp;#34;some test&amp;#34;, fn: () =&amp;gt; {} }); Deno.test(test()); &amp;quot;Add all missing imports&amp;quot;アクションで正しいimport文が生成されないことがある問題が修正されています プライベートフィールド(#someField)の補完が適切に動作するように修正されています https://github.com/denoland/deno/releases/tag/v1.29.2</description></item><item><title>2023/12/26〜2023/01/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2023/01/01.html</link><pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2023/01/01.html</guid><description>Deno.Connへのunrefとrefメソッドの追加 Deno.Connへunrefとrefメソッドを追加するPRがマージされています。
feat(unstable): Add Deno.Conn.ref()/unref() (denoland/deno#17170)
Deno.Connのunrefを呼ぶと、Deno.unrefTimerなどと同様に、読み込み途中のコネクションが存在したとしてもプロセスの終了がブロックされなくなります。(ただし、効果があるのは読み込みに対してのみで、コネクションへの書き込みについてはunrefを呼んだ場合であってもブロックされます)
これらはunstable APIのようなので、次のDeno v1.29.2あたりでリリースされる可能性がありそうです。
Deno.osUptime Deno.osUptimeというAPIを追加するPRがマージされています。
feat(unstable): Add &amp;ldquo;Deno.osUptime()&amp;rdquo; API (denoland/deno#17179)
このAPIを利用することで、システムが起動してからの経過時間を数値として取得できるようです。
const uptime = Deno.osUptime(); これもunstable APIのため、次のDeno v1.29.2あたりでリリースされる可能性がありそうです。
Big news in Deno Land Ryan DahlさんとJerod SantoさんによりBig news in Deno Landというポッドキャストが公開されています。
ページ下部にTranscriptがあるため、そこから内容を閲覧することもできます。
https://changelog.com/jsparty/256 このポッドキャストでは、主にDenoでnpmサポートを導入した背景などについて解説されています。
また、Denoの将来についてもいくつか話が行われており、以下のような内容の話題が出ていました。
ShadowRealmなどを活用したパッケージごとのパーミッション管理のサポートについて --allow-writeを指定した際は、ファイルシステム全体ではなく、カレントディレクトリ配下への書き込みのみを許可すべきでは？ Deno Deployにおける状態管理やCockroachDBやSpannerなどについて また、Denoの直近の開発方針としては、主に以下の点に注力されていく予定のようです。
npmサポートの拡充 (安定性の向上やdeno compileでのnpm:のサポートなど) Deno Deployでのnpm:のサポート https://deno.news/archive/55-deno-v129-and-npm-install-heat</description></item><item><title>2022/12/19〜2022/12/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/12/25.html</link><pubDate>Sun, 25 Dec 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/12/25.html</guid><description>今週はDenoでリリースが行われていないため、直近の話題や変更などについて紹介いたします。
Flash(Deno.serve)の書き換えについて 現在、Flash(Deno.serve)の書き換えが検討されているようです。
Flashで報告されている様々な問題の解決などが目的のようです。
以下のissueで解決予定の問題が列挙されています。
Flash HTTP server rewrite - umbrella issue (denoland/deno#17146)
Deno.coreの削除について 現在、Denoの内部APIであるDeno.coreの削除が検討されているようです。
refactor: remove Deno.core (denoland/deno#16881)
ひとまずはDeno.coreはDeno[Deno.internal].coreへ移動される予定のようで、deno_stdではすでに対応が実施されています。
refactor: handle Deno[Deno.internal].core (denoland/deno_std#3029)
ただし、将来的にはDeno[Deno.internal].core自体も削除が予定されているようなので、もしDeno.coreを使用されている場合は、今のうちに対応をしておくとよいかもしれません。
deno_lintへのguard-for-inルールの追加 deno_lintでguard-for-inルールが実装されているようです。
feat: Add guard-for-in rule (denoland/deno_lint#1105)
次のDenoのリリースあたりでdeno lintコマンドから利用できるようになる可能性がありそうです。</description></item><item><title>2022/12/12〜2022/12/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/12/18.html</link><pubDate>Sun, 18 Dec 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/12/18.html</guid><description>Deno v1.29.0 Deno v1.29がリリースされました。
以下に変更内容をまとめたため、よろしければ参照ください。
Deno v1.29 deno_std v0.168.0 deno_std v0.168.0がリリースされました。
https://github.com/denoland/deno_std/releases/tag/0.168.0
std/archiveのファイル構成の変更 新しいファイルとしてstd/archive/untar.tsが追加されています。
これに伴い、std/archive/tar.tsからの下記の読み込みが非推奨化されています。
TarHeader Untar TarEntry 今後、これらのAPIを利用する際は、std/archive/untar.tsから読み込むことが推奨されます。
std/ioのファイル構成の変更 std/ioパッケージの下記ファイルが細分化されています。
std/io/readers.ts std/io/writers.ts std/io/util.ts 具体的にはstd/fsなどのように、各APIがそれぞれ単独のファイルで提供されるように構造が変わっています。
例えば、std/io/readers.tsに配置されていたStringReaderは、今後はstd/io/string_reader.tsから読み込むことが推奨されます。
より詳しくは公式のブログ記事を参照いただければと思います。
https://deno.com/blog/v1.29#changes-to-the-standard-modules std/dotenv - config()がload()へリネーム std/dotenvで提供されているAPIがリネームされています。
リネーム前 リネーム後 config load configSync loadSync ConfigOptions LoadOptions 古い名前のAPIも削除されずに残されてはいますが、現在は非推奨化されているため、もし使用されている場合は新しい名前への移行が推奨されます。
std/nodeの改善 std/node/httpのServerResponseクラスでTransfer-Encoding: chunkedが意図通りに動作しない問題が修正されています。
また、Buffer.toStringによるUTF-8のデコードが大幅に高速化されています。
Elsaの開発について Denoに影響を受けたJavaScript/TypeScriptランタイムであるElsaで、内部実装の書き換えが検討されているようです。</description></item><item><title>Deno v1.29</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.29.html</link><pubDate>Sun, 18 Dec 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.29.html</guid><description>Deno v1.29がリリースされました。
この記事では主な変更点などについて解説します。
サブプロセスAPIに関する変更 Deno.spawn, Deno.spawnSync, Deno.spawnChildの削除 Deno v1.28でDeno.Commandが実装されたため、下記のAPIが削除されています。
Deno.spawn Deno.spawnSync Deno.spawnChild このあたりの背景などについては、下記の記事で詳しく解説されています。
Deno.run と Deno.spawn と Deno.Command のどれを使えば良いのか また、Deno.Commandについてもv1.28.3でAPIが若干変更されています。
Deno.spawn系統のAPIからDeno.Commandへの移行について Deno.spawn()はDeno.Child#output(), Deno.spawnSync()はDeno.Child#outputSync()で代用できます。
const command = new Deno.Command(&amp;#34;deno&amp;#34;, { args: [&amp;#34;info&amp;#34;, &amp;#34;--json&amp;#34;], }); const status = await command.output(); if (status.success) { console.info(new TextDecoder().decode(status.stdout)); } Deno.spawnChild()はDeno.Child#spawn()で代用できます。
const command = new Deno.Command(&amp;#34;deno&amp;#34;, { args: [&amp;#34;fmt&amp;#34;, &amp;#34;--ext=json&amp;#34;, &amp;#34;-&amp;#34;], stdin: &amp;#34;piped&amp;#34;, stdout: &amp;#34;piped&amp;#34; }); const child = command.</description></item><item><title>2022/12/05〜2022/12/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/12/11.html</link><pubDate>Sun, 11 Dec 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/12/11.html</guid><description>今週のDenoに関するアップデート 今週はDenoのリリースが行われていないため、次のv1.29でリリース予定と思われる変更点についていくつか紹介します。
deno.json(c)でdeno benchコマンドの設定がサポート deno.json(c)にbenchフィールドが追加されており、filesフィールドによってベンチマーク対象のファイルを設定できます。
{ &amp;#34;bench&amp;#34;: { &amp;#34;files&amp;#34;: { &amp;#34;include&amp;#34;: [&amp;#34;./benchmark&amp;#34;] } } } https://github.com/denoland/deno/pull/16608
deno.json(c)でのロックファイルのサポート deno.json(c)のlockオプションでロックファイルに関する設定を変更できるようになりました。
lock: falseを指定すると、ロックファイルの適用が無効化されます。(--no-lockと同様の挙動)
{ &amp;#34;lock&amp;#34;: false } またlockオプションにロックファイルのパスを指定することもできます。
{ &amp;#34;lock&amp;#34;: &amp;#34;./lock.json&amp;#34; } https://github.com/denoland/deno/pull/16781
deno initコマンドでdeno.jsoncの生成がサポート deno initコマンドでdeno.jsoncが生成されるようになりました。
https://github.com/denoland/deno/pull/16389 https://github.com/denoland/deno/pull/17002 Deno名前空間からspawn/spawnSync/spawnChildが削除 Deno v1.28.0でDeno.Commandが実装されたため、Deno.spawnなどのAPIが削除されました。
https://github.com/denoland/deno/pull/16893
Deno.TcpConnのsetNoDelayとsetKeepAliveが安定化 Deno v1.19で実装されたDeno.TcpConnのsetNoDelayとsetKeepAliveメソッドが安定化されています。
今後は--unstableなしで利用できるようになりそうです。
https://github.com/denoland/deno/pull/17003
Ultra v2 Ultraのv2がリリースされています。
Honoとの統合やTwind/react-query/react-router/react-helmetのサポートなどの様々な改善が実施されています。
以下の記事ではUltra v2の概要や使い方などについて解説されています。
Building Fullstack React Apps with Ultra https://github.</description></item><item><title>2022/11/28〜2022/12/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/12/04.html</link><pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/12/04.html</guid><description>Deno v1.28.3 Deno v1.28.3がリリースされました。
大きな変更点として、Deno v1.28.0で実装されたDeno.Commandに関するAPIの変更が実施されています。(Deno.CommandAPIの見直しについて)
また、Node.js互換性の改善についても引き続き実施されています。
node:moduleのcreateRequireで絶対パスがサポート deno runコマンドでnpm:と--inspect-brkの併用がサポート packages.jsonのexports.typesサポートに関する改善 その他の変更点 プロセス停止前に未解決のPromiseが存在する際のエラーメッセージが改善 (問題が発生している箇所がエラーメッセージに表示されるように) ReadableStreamのリーダー周辺の型定義の改善 Denoのトランスパイル結果のキャッシュとdeno test --coverageで生成されたカバレッジの整合性が取れなかった場合に、プロセスがパニックする問題が修正 deno replの履歴管理に関する信頼性の向上 https://github.com/denoland/deno/releases/tag/v1.28.3
deno_std v0.167.0 deno_std v0.167.0がリリースされています。
std/async/retryモジュールの追加 std/asyncにExponential backoffアルゴリズムに基づいたリトライ機能を提供するモジュールが追加されました。
import { retry } from &amp;#34;https://deno.land/std@0.167.0/async/retry.ts&amp;#34;; const result = await retry(async () =&amp;gt; { const result = await doSomeAsyncOperation(); return result; }, { multiplier: 2, maxTimeout: 16_000, maxAttempts: 10, minTimeout: 500, }); std/testing/typesモジュールの追加 std/testingにTypeScriptの型をテストするためのモジュールが追加されています。</description></item><item><title>2022/11/21〜2022/11/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/11/27.html</link><pubDate>Sun, 27 Nov 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/11/27.html</guid><description>Deno v1.28.2 Deno v1.28.2がリリースされました。
CPUプロファイリング 新機能として、以下の3メソッドが実装されています。
console.profile console.profileEnd console.timeStamp これらのAPIはDenoを実行する際に--inspectを指定した場合のみ有効化されます。
--inspectオプションが指定された状態でconsole.profile(label)が呼ばれると、console.profileEnd(label)の呼び出しまでの間に実行された処理に関するCPUプロファイルを計測することができます。
計測結果はChrome DevToolsの「Profile」タブから閲覧することができます。
Node.js互換性の改善 Import Mapsファイルの定義に/が含まれれているとマッピングがうまく動作しない問題が解消されています
{ &amp;#34;imports&amp;#34;: { &amp;#34;preact/&amp;#34;: &amp;#34;npm:preact/&amp;#34; } } module.createRequire()でURLオブジェクトがサポート
deno infoで循環したnpm依存が適切に取り扱われるように改善
型定義ファイルの検出に関する挙動の改善
importのパスにディレクトリが指定された際の型定義ファイルの検出が改善 (import * as mod from ./sub_dirとすると、./sub_dir/index.d.tsなどのファイルが自動で探索されます) package.jsonでexportsとtypesの両方が定義されているときに、exportsから先に処理されるように修正 package.jsonでtypesエントリが未定義だった際に、mainで指定されたエントリポイントを元に型定義が解決されるように挙動が改善 その他の変更点 Deno.serveと--watchオプションを併用したときに、AddrInUseエラーが出る問題が解消されています。 https://github.com/denoland/deno/releases/tag/v1.28.2
deno_std v0.166.0 deno_std v0.166.0がリリースされました。
std/fmtに関する破壊的変更 std/fmt/bytesのprettyBytes()関数がformat()にリネームされています。
既存のprettyBytes()は非推奨化されており、今後のバージョンで削除される予定です。
また、std/fmt/durationのprettyDuration()も同様にformat()へリネームされています。
std/node - Node.js互換性の改善 Deno本体でのNode.</description></item><item><title>2022/11/14〜2022/11/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/11/20.html</link><pubDate>Sun, 20 Nov 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/11/20.html</guid><description>Deno v1.28.0 Deno v1.28がリリースされました。
以下に変更内容をまとめたため、よろしければ参照ください。
Deno v1.28 Deno v1.28.1 Deno v1.28.1がリリースされました。
deno installコマンドでnpm:がサポートされています。
その他には、npmパッケージサポートに関する細かなバグ修正などが実施されています:
Conditional exportsで指定されたエントリポイントが型定義を持っていない場合にエラーが発生する問題が修正 npmパッケージにfoo.server.jsのようにベースネーム部分に.を含むファイルが存在する場合に、うまく読み込みができない問題が修正 あるnpmパッケージの依存関係のバージョンにdist tagが指定されていた際に、うまく取り扱われない問題が修正 scopedパッケージに対して@types/*パッケージの型定義が適切に適用されない問題が修正 --lock-writeを指定すると、deno.lockからnpmパッケージが消えてしまう問題が解消 https://github.com/denoland/deno/releases/tag/v1.28.1
deno_std v0.164.0 deno_std v0.164.0がリリースされました。
std/fmt: durationモジュールが追加 ミリ秒単位で指定された時間のフォーマットされた文字列を取得することができます。
import { prettyDuration } from &amp;#34;https://deno.land/std@0.165.0/fmt/duration.ts&amp;#34;; prettyDuration(130000, { ignoreZero: true, formatType: &amp;#34;full&amp;#34; }); // =&amp;gt; &amp;#34;2 minutes, 10 seconds&amp;#34; 補足) prettyDurationは以下のPRでformatにリネームされています。この変更は、おそらくv0.166.0あたりでリリースされると思われるため、今後利用する際はprettyDurationではなくformatを使用するとよさそうです。
https://github.com/denoland/deno_std/pull/2896 std/node: 互換性の向上 node/fs: - read()でコールバックが非同期に呼ばれるように修正 node/http: ServerResponse.finishedが実装 node/http: --unstableが指定されていると、Buffer形式のレスポンスが適切に取り扱われない問題が修正 node/string_decoder: StringDecoder.</description></item><item><title>Deno v1.28</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.28.html</link><pubDate>Sun, 20 Nov 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.28.html</guid><description>Deno v1.28がリリースされました。
この記事では主な変更点などについて解説します。
npmパッケージサポートの安定化 Deno v1.25で実装されたnpmパッケージサポートが安定化されました。
今後は--unstableなしでnpmパッケージを読み込むことができます。
$ cat main.js import chalk from &amp;#34;npm:chalk@5.1.2&amp;#34;; console.log(chalk.green(&amp;#34;Deno&amp;#34;)); $ deno run --allow-read --allow-env main.js ただし、リモートモジュールの中にnpm:が含まれていた際は、従来どおり--unstableが要求されるため注意が必要そうです。
その他にも以下の改善などが実施されています。
peerDependenciesがサポート deno info --jsonでnpm:がサポート import.meta.resolveでnpm:が無効化 今後npmパッケージサポートに関して計画されている変更内容についてはロードマップを参照ください。
ロックファイルの自動適用と生成がサポート Denoにはアプリケーションが依存するサードパーティモジュールの内容を元にハッシュ値を計算し、ロックファイルと呼ばれるファイルに保存する機能があります。
アプリケーションを実行する際にサードパーティモジュールから再度ハッシュ値を計算し、ロックファイルに書き込まれたハッシュ値と比較することで、サードパーティモジュールの内容が改ざんされていないことを保証することができます。(インテグリティチェック)
この挙動を有効化するには、従来では--lockと--lock-writeの指定が必要でした。
このリリースでは、deno.json(c)が存在する場合、ロックファイル(deno.lock)の生成とインテグリティチェックが自動で実施されるように挙動が変更されました。
$ ls deno.json main.js $ deno run main.js $ ls deno.json deno.lock main.js この変更に合わせて、既存のオプションやインテグリティチェックに関する挙動も一部変更されています。
--lockオプションの引数がオプショナルに変更 (デフォルトはdeno.lock) ロックファイルに列挙されていないパッケージが見つかった際に、インテグリティチェックが失敗しないように挙動が変更 新しく検出されたパッケージについては、ハッシュが自動でロックファイルに書き込まれます。そのパッケージのインテグリティチェックについては、次回以降のDenoの実行から適用されます。 また、このロックファイルの自動適用と生成を無効化するために--no-lockという新しいオプションも追加されています。
Deno.Commandの追加 Deno.CommandというDenoからサブプロセスを生成するための新しいAPIが実装されました。
利用するには--unstableと--allow-runの指定が必要です。
使用例 コマンドの実行結果の非同期での取得:
const command = new Deno.</description></item><item><title>2022/11/07〜2022/11/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/11/13.html</link><pubDate>Sun, 13 Nov 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/11/13.html</guid><description>Deno v1.27.2 Deno v1.27.2がリリースされています。
peerDependenciesのサポート DenoでnpmパッケージのpeerDependenciesがサポートされました。
あるパッケージでpeerDependenciesが定義されていた場合、以下のような動作をするようです。
依存グラフの中から祖先をたどっていき、もしpeerDependenciesで指定された要件を満たすパッケージが見つからなかった場合、通常のdependenciesと同様に依存が解決されます。(npm v7と同様の挙動) optionalPeerDependenciesについては、依存グラフの祖先に指定された要件を満たすパッケージが見つかった場合のみ解決されます。 それ以外の場合は、pnpmと同様の挙動でoptionalPeerDependenciesが解決されます。 https://github.com/denoland/deno/pull/16561
その他の変更点 いくつかのバグ修正が実施されています。
data:URLに対してロックファイルのremoteエントリが作られてしまう問題が修正されています。 Deno.serveHttpで起動したHTTPサーバで圧縮が有効化された状態でストリーミングを行う際に、各チャンクが適切にフラッシュされるように修正されています。 ローカルのnode_modules内のコードでrequireによる相対パス形式での読み込みが行われた際に適切に動作するように修正されています。 https://github.com/denoland/deno/releases/tag/v1.27.2
deno_std v0.163.0 deno_std v0.163.0がリリースされています。
std/semverモジュールでinc()とdiff()が非推奨化されました。
今後は、新しく追加されているincrement()とdifference()の使用が推奨されます。 (動作はそれぞれincとdiffと同様です)
https://github.com/denoland/deno_std/releases/tag/0.163.0
denoland/fresh-wordpress-themes WordPressをHeadless CMSとして使いつつ、フロントエンドをFreshで開発するためのテンプレートがDeno公式で公開されました。
https://github.com/denoland/fresh-wordpress-themes 以下の記事で使用方法などが解説されています。
Introducing Fresh WordPress Themes esm.sh v98 esm.sh v98がリリースされました。
新機能としてTree shakingのサポートが追加されています。
exportsパラメータを指定することで適用されます。
https://github.com/ije/esm.sh/releases/tag/v98</description></item><item><title>2022/10/31〜2022/11/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/11/06.html</link><pubDate>Sun, 06 Nov 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/11/06.html</guid><description>Deno v1.27.1 ロックファイルに関する機能の追加や改善などが実施されています。
ロックファイルの自動探索 ロックファイルの自動探索が実装されました。
これは、deno.json(c)と同じディレクトリにdeno.lockというファイルがあれば、それを元に自動でインテグリティチェックを実行する機能です。
現状、この機能は--unstableを指定したときのみ有効化されます。(Deno v1.28にて安定化予定のようです)
また、この自動探索を無効化する目的で、--no-lockというオプションも追加されています。
これらの変更に合わせて、--lockオプションの引数がオプショナルに変更されました。(未指定の場合は、デフォルトでdeno.lockが読み込まれます)
また、--lock-writeオプションを指定する際の--lockオプションの指定も不要になっています。
ロックファイルによるインテグリティチェックの挙動が変更 ロックファイルの自動探索機能の実装に合わせて、インテグリティチェックに関する挙動が変更されています。
具体的には、ロックファイルに列挙されていないパッケージが見つかったときに、インテグリティチェックが失敗しないように挙動が変更されています。
もしこのようなパッケージがあった際は、ロックファイルへ自動でハッシュが書き込まれ、次回以降からそのパッケージに対するインテグリティチェックが実施されます。
その他の変更点 deno infoコマンドでnpm:がサポートされました。 Deno.osRelease()が--unstableなしだと利用できなかった問題が解消されています。(このAPIは元々、Deno v1.27.0で安定化される予定でした) Change Array by copyに関する型定義ファイルが追加されました。 Promise.prototype.thenが上書きされても、DenoのコアAPIが影響を受けないように実装が変更されました。 WindowsでDeno.hostname()が空文字列を返すことがある問題が修正されています。 https://github.com/denoland/deno/releases/tag/v1.27.1
deno_std v0.162.0 deno_std v0.162.0がリリースされました。
std/encoding/front_matter - YAML以外のフォーマットのサポート std/encoding/front_matter/any.tsを使うと、YAML/TOML/JSONのいずれかのフォーマットで記述されたFront Matterブロックを読み込むことができます。
import { extract } from &amp;#34;https://deno.land/std@0.162.0/encoding/front_matter/any.ts&amp;#34;; // YAMLでの記述例) let { attrs, body } = extract&amp;lt;{ title: string, date: Date }&amp;gt;(`--- title: foobar date: 2022-06-12 --- Hello`); assert(attrs.title === &amp;#34;foobar&amp;#34;); assert(attrs.date instanceof Date); assert(body === &amp;#34;Hello&amp;#34;); // TOMLでの記述例) ({ attrs, body } = extract&amp;lt;{ title: string, date: Date }&amp;gt;(`---toml title=&amp;#39;foobar&amp;#39; date=2022-06-12 --- Hello`)); assert(attrs.</description></item><item><title>2022/10/24〜2022/10/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/10/30.html</link><pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/10/30.html</guid><description>Deno v1.27 Deno v1.27がリリースされました。
以下に変更内容をまとめたため、よろしければ参照ください。
Deno v1.27 deno_std v0.161.0 deno_std v0.161.0がリリースされました。
std/hashの削除 非推奨化されていたstd/hashモジュールが削除されています。
今後は、std/cryptoの使用が推奨されます。
std/node Deno v1.27でのNode-APIのサポートに合わせて、require()での.nodeファイルの読み込みがサポートされています。
その他には、net.Serverの&amp;quot;close&amp;quot;イベントの発火タイミングの改善やfs.openDirの互換性の向上などが実施されています。
std/fs/expand_glob expandGlobで、globstarにfalseが指定された際に、&amp;quot;**&amp;quot;が&amp;quot;*&amp;quot;として扱われるように修正されています。
https://github.com/denoland/deno_std/releases/tag/0.161.0
MongooseでのDenoサポートについて 以下のPRでMongooseでのDenoサポートが進められているようです。
Deno support (#12397)
今のところ、v6.8でのリリースを目標に作業が進められているようです。
Babel v7.20.0 @babel/preset-envで&amp;quot;deno&amp;quot;ターゲットがサポートされたようです。
&amp;quot;targets&amp;quot;オプションで対象のDenoバージョンを指定することができます。
https://babeljs.io/blog/2022/10/27/7.20.0</description></item><item><title>Deno v1.27</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.27.html</link><pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.27.html</guid><description>Deno v1.27がリリースされました。
この記事では主な変更点などについて解説します。
npmパッケージサポートの改善 Deno v1.25で追加されたnpmパッケージのサポートに関する改善が実施されています。
型チェックのサポート npm:で読み込んだnpmパッケージに対して型定義が適用されるようになりました
これにより、deno checkなどのコマンドを実行した際に、npmパッケージを使用しているコードについても適切に型チェックが実行されます。
import { default as stringWidth } from &amp;#34;npm:string-width@5.1.2&amp;#34;; console.info(stringWidth(&amp;#34;foo&amp;#34;)); // =&amp;gt; 3 console.info(stringWidth(123)); // =&amp;gt; 型エラー このように、型定義ファイルを同梱したパッケージについては、自動でそれが読み込まれて適用されます。
型定義ファイルを同梱していないパッケージについては、@deno-typesを使用することで型定義を適用することができます。
// @deno-types=&amp;#34;npm:@types/express@4.17.14&amp;#34; import { default as express } from &amp;#34;npm:express@4.18.2&amp;#34;; console.info(express(&amp;#34;foo&amp;#34;)); // =&amp;gt; 型エラー Node-APIのサポート Deno本体にNode-APIのサポートが入りました。
Node-APIは、CやC++などを使用してネイティブアドオンを記述するためにNode.jsから提供されている仕組みです。
import { compress, uncompress } from &amp;#34;npm:lz4-napi@2.2.0&amp;#34; const data = await Deno.readFile(&amp;#34;./deno.json&amp;#34;); const compressed = await compress(data); const uncompressed = await uncompress(compressed); Node-APIのサポートが入ったことにより、例えば、Prismaのクエリエンジンやnode-sqlite3などのパッケージも動かせる可能性が出てきました。</description></item><item><title>2022/10/17〜2022/10/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/10/23.html</link><pubDate>Sun, 23 Oct 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/10/23.html</guid><description>Deno v1.26.2 Deno v1.26.2がリリースされました。
サブプロセス関連のAPIやnpmサポートの改善、fetch()の互換性の向上などが実施されています。
Deno.SpawnOptionsでwindowsRawArgumentsオプションがサポート Windows上でこのオプションにtrueを指定すると、コマンドライン引数のクォーテーションの付与とエスケープがスキップされます。
const { success, stdout } = await Deno.spawn(cmd, { args, windowsRawArguments: true, }); この機能は、後述するdeno_std v0.160.0におけるwindowsVerbatimArgumentsの実装に利用されています。
npmサポートの改善 dist-tagがサポートされています。
例)
import ts from &amp;#34;npm:typescript@next&amp;#34;; その他の改善として、npmレジストリからのパッケージ情報のダウンロード処理が並列化されています。
Fetch APIの互換性の向上 Fetch Standardとの互換性の改善が実施されています。
例)
Headersで不正な形式のヘッダを連続で解析すると、二度目以降の解析時にエラーが発生しない問題が修正 fetch()の呼び出し時にRangeヘッダが指定された際は、Accept-Encoding: identityが自動で設定されるように修正 ResponseやRequestに空のFormDataを渡せるように改善 Responseに設定したReadableStreamから非Uint8Array型のチャンクが読み込まれた際は、TypeErrorが発生するように修正 レスポンスボディがContent-Lengthを超過した際などにTypeErrorが発生するように修正 それ以外にもCache APIやWeb Streams APIなどでも互換性の向上が実施されています。
その他の変更点 deno taskでのスクリプト実行時にINIT_CWD環境変数が設定されるように修正 (npm runとの互換性の向上が目的のようです) deno.json(c)のimportMapオプションにリモートURLを指定できるように改善 deno lspでの補完時に、スニペットが適切に取り扱われるように修正 コンパイル対象ファイルの名前が@で始まるときに、deno compileがパニックする問題が修正 https://github.com/denoland/deno/releases/tag/v1.26.2
deno_std v0.160.0 deno_std v0.160.0がリリースされました。
このリリースではstd/nodeのNode.js互換性の向上が実施されています。
変更点:
std/node/readline/promisesが実装 std/node/child_process: windowsVerbatimArgumentsオプションがサポート std/node/fs: Windowsでfs.</description></item><item><title>2022/10/10〜2022/10/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/10/16.html</link><pubDate>Sun, 16 Oct 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/10/16.html</guid><description>deno taskの安定化について deno taskコマンドを安定化することが検討されているようです。
以下のPRではdeno taskを実行した際の警告メッセージが削除されています。
feat(task): remove warning about being unstable (#16281)
この変更はv1.27での導入が検討されているようです。
deno lspでtextDocument/inlayHintが実装 以下のPRでdeno lspにtextDocument/inlayHintが実装されています。
feat: support inlay hints (#16287)
textDocument/inlayHintの挙動については、TypeScript公式の以下のページがわかりやすそうです。
Inlay Hints こちらについてもv1.27でのリリースが検討されているようです
Bartek Iwańczuk&amp;rsquo;s &amp;ldquo;Vite Got Deno-fied&amp;rdquo; at ViteConf 2022 Bartek Iwańczuk氏によるViteConf 2022での発表内容が公開されています。
Bartek Iwańczuk&amp;rsquo;s &amp;ldquo;Vite Got Deno-fied&amp;rdquo; at ViteConf 2022 DenoでViteの開発環境をセットアップし、Deno Deployへデプロイするまでの手順が解説されています。
https://twitter.com/deno_land/status/1580356550966722560
denoland/fresh_charts Deno公式でFresh向けのチャートライブラリが公開されています。
denoland/fresh_charts チャートを描画するための&amp;lt;Chart&amp;gt;コンポーネントやハンドラ向けのユーティリティなどが提供されているようです。
Chart.jsやred-agate-svg-canvasなどを活用して作成されているようです。
https://github.com/denoland/fresh_charts</description></item><item><title>2022/10/03〜2022/10/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/10/09.html</link><pubDate>Sun, 09 Oct 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/10/09.html</guid><description>Deno v1.26.1 Deno v1.26.1がリリースされました。
Node-APIの実装 DenoでNode-APIが実装されました。
Node-APIで実装されたアドオンのrequire()での読み込みがサポートされます。
Node-APIを有効化するためには、今のところ、--allow-ffiの指定が必要なようです。 (ただし、将来的にオプションが変わる可能性はあるようです)
いまのところ、lightningcssやlz4-napiなどが動作することが確認されているようです。(napi-rs/napi-rs#900)
Node.js互換に関する改善 Node-APIの実装以外に関する改善として、npm:経由で読まれたパッケージの依存関係の解析結果がキャッシュされるようになりました。
これにより、キャッシュが存在する場合は、Viteの起動が3倍近く高速化されているようです。
キャッシュの仕組みはSQLiteをベースに実装されており、$DENO_DIR/node_analysis_cache_v1にデータベースが作成されます。
その他の改善として、deno cacheでのnpm:のサポートやrequire()でのJSONファイルの読み込みなどがサポートされています。
Web Cache APIのバグ修正 Deno v1.26で追加されたCache APIに関するバグ修正が実施されています。
Cache.put()に渡したResponseオブジェクトがconsumed状態にならない問題が修正 Cache.put()に渡したResponseに紐づくReadableStreamの読み込みでエラーが起きると、リソースリークが発生する問題が修正 Cache.put()で書き込みに失敗したときに、中途半端にキャッシュが保存されないように改善 その他の修正 --unstableを付けないと、Deno.hostname()がundefinedになる問題が修正 (Deno.hostname()はDeno v1.26で安定化されています) リクエストボディの読み込みが最適化 (perf(ext/fetch): consume body using ops (#16038)) 一度、Request#text()などでリクエストボディを消費したにも関わらず、再度Request.bodyを参照するとRequest.bodyUsedがfalseに戻ってしまう問題が修正 Deno.serve()で、ステータスコードが204の際はContent-Lengthが設定されないように修正 SubtleCrypto.deriveBits()でlength引数に与えられた長さが考慮されない問題が修正 https://github.com/denoland/deno/releases/tag/v1.26.1
deno_std v0.159.0 deno_std v0.159.0がリリースされました。
std/textprotoの非推奨化 以下の理由などから、std/textprotoが非推奨化されました。
現在はdeno_stdの内部で使われていないこと deno_stdの方針として、GoスタイルのAPI(Deno.Reader/Deno.Writer)からWeb Streams APIベースへ移行されていること 今後は、このモジュールの使用は避けることが推奨されます。
std/streams/conversion: iterateReaderのバグ修正 iterateReaderに長年存在していたバグが修正されています。
具体的な修正内容については、以下の記事で詳細に内容が解説されています。
Deno のめっちゃ難しいバグを修正した - Qiita また、この修正に関連してiterateReader()の実装が効率化されています。(perf(streams): memory optimizations by avoiding large buffer allocation in a loop (#2748))</description></item><item><title>2022/09/26〜2022/10/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/10/02.html</link><pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/10/02.html</guid><description>Deno v1.26 Deno v1.26がリリースされました。
以下に変更内容をまとめたため、よろしければ参照ください。
Deno v1.26 deno_std v0.158.0 deno_std v0.158.0がリリースされました。
std/node child_processパッケージでexec/execFileSync/execSyncが実装されています。
その他には、process.getuid()とprocess.getgid()が実装されています。
また、fsパッケージのread()やWriteStreamなどの互換性が向上しています。
std/http/server handlerが返却したResponseのボディがすでに消費されている場合に、500エラーが発生するように修正されています。
https://github.com/denoland/deno_std/releases/tag/0.158.0
plug v1.0.0-rc.0 Deno FFI(Deno.dlopen)のヘルパーモジュールであるplugのv1.0.0 RC版が公開されています。
このリリースでの主要な変更点として、ダイナミックライブラリを読み込むためのprepare()がdlopen()にリネームされています。
https://github.com/denosaurs/plug/releases/tag/1.0.0-rc.0</description></item><item><title>Deno v1.26</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.26.html</link><pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.26.html</guid><description>Deno v1.26がリリースされました。
この記事では主な変更点などについて解説します。
--allow-sysオプションの追加 Deno.osReleaseやDeno.systemMemoryInfoなどのシステム情報を取得するためのAPIの利用を制御するために、--allow-sysオプションが追加されました。
$ deno run --unstable --allow-sys=osRelease,systemMemoryInfo main.js 元々、これらのAPIを使うには--allow-envの指定が必要でした。
ただ、これらのAPIの利用に--allow-envを要求することの副作用として、全ての環境変数にアクセスできるようになってしまうという問題がありました。
この問題を解決するため、--allow-sysという新しいパーミッションが導入されました。
Cache APIのサポート DenoにCache APIが実装されました。
const cache = await caches.open(&amp;#34;v1&amp;#34;); const req = new Request(&amp;#34;https://example.com/&amp;#34;); console.assert(await cache.match(req) === undefined); const res = new Response(&amp;#34;foobar&amp;#34;); await cache.put(req, res); const cachedRes = await cache.match(req); console.assert(await cachedRes?.text() === &amp;#34;foobar&amp;#34;); 挙動について localStorageなどと同様にSQLiteをベースに実装されており、利用する際は特にパーミッションなどは要求されません。
ただし、localStorageとは異なり、DENO_DIRではなく/tmp/deno_cacheにSQLiteのデータベースやキャッシュされたコンテンツなどが保存されます。
制限 現時点では、いくつかの制限があるようです。
ignoreSearchやignoreMethodなどのクエリオプションはまだサポートされてないようです。 Cache.deleteを呼んだ際に、SQLiteデータベースに保存されたメタデータは削除されるものの、キャッシュされたコンテンツは削除されないようです。 npmパッケージサポートの改善 今回のv1.26のリリースでは、--no-npmオプションが実装されています。
これにより、npm:によるnpmパッケージのimportを無効化できます。
$ deno run --no-npm main.ts また、Denoでnpmパッケージのimportがサポートされたことにより、Deno v1.</description></item><item><title>2022/09/19〜2022/09/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/09/25.html</link><pubDate>Sun, 25 Sep 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/09/25.html</guid><description>Deno v1.25.4 Deno v1.25.4がリリースされました。
--node-modules-dirのサポート node_modulesディレクトリの存在に依存したnpmパッケージを動かせるようにするために、--node-modules-dirオプションが実装されました。
$ deno run -A --unstable --node-modules-dir npm:vite このオプションを指定すると、pnpmライクなレイアウトでnode_modulesが作られます。
これによって、npm installなしでViteが動かせるようになったようです。
詳しくは以下を参照いただければと思います。
vite-deno-example --reload=オプションでnpmパッケージがサポート --reload=npm:で全npmパッケージの再読込み、--reload=npm:&amp;lt;package&amp;gt;で指定されたパッケージだけを再読込みができます。
パフォーマンスチューニング いくつかのパフォーマンスチューニングが実施されています。
例)
CLIの起動の高速化 console.log()などで文字列を出力する際のパフォーマンスが3倍近くまで高速化 TextEncoder.encodeInto()が5.4倍近くまで高速化 ファイルシステム関連のAPIの最適化 CLIの起動の高速化については、現在、様々なアイデアが検討されており、詳細については以下を参照いただければと思います。
perf: ideas to improve startup time (#15945) その他の変更点 同一ファイルに対して複数回deno docを実行すると、処理が失敗してしまう問題が修正されています。 Windows上でdeno compileを実行したときに、拡張子が非.exe形式の場合に、それが取り除かれてしまう問題が修正されています。 Deno.env.get/Deno.env.setに不正な変数名を指定した際のエラーメッセージが改善されています。 https://github.com/denoland/deno/releases/tag/v1.25.4
deno_std v0.157.0 deno_std v0.157.0がリリースされました。
std/collections/deep_merge.tsのバグ修正 ネストされたプロパティにおいてdeepMerge()のreplaceオプションが機能しない問題が修正されています。
std/nodeの改善 child_process.spawnSyncが実装されています。
また、FreeBSDでもstd/nodeが動作するように修正が行われています。
その他には、以下の改善などが実施されています。
fs.read()やfs.ReadStreamの互換性の向上 net.connect()が失敗したときに、'error' ⇒ 'close'の順にイベントが発火されるように修正されています。 process.envに不正な文字を含む環境変数が指定されたときに、TypeErrorを投げるのではなくundefinedを返すように修正されています。 Windows上でprocess.on('SIGTERM')が無視されるように修正されています。 https://github.</description></item><item><title>2022/09/12〜2022/09/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/09/18.html</link><pubDate>Sun, 18 Sep 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/09/18.html</guid><description>Deno v1.25.3 Deno v1.25.3がリリースされました。
npmパッケージサポートの改善 esm形式のモジュールからcjs形式のモジュールをimportする際の挙動のNode.jsとの互換性が向上しています。 deno run --unstable npm:&amp;lt;package&amp;gt;@version/subpathで.js形式または拡張子なしのファイルを実行できるようになりました。 typescript/tscを実行できない問題があったようです。 パッケージのサブパスにpackage.jsonがあれば、その定義内容を元にエントリポイントが解決されるようになりました。 --unstableが指定されたときは、NODE_DEBUGとNODE_OPTIONS環境変数に対して--allow-envのチェックがスキップされるように変更されました。 Flash(Deno.serve)の改善 同時に一つのリクエストしか処理できなかった問題が解消されています。
https://github.com/denoland/deno/releases/tag/v1.25.3
deno_std v0.156.0 deno_std v0.156.0がリリースされました。
std/node Deno本体のnpmパッケージサポートの改善に合わせて、バグ修正などが実施されています。
今回のリリースによってcpy-cliなどが動かせるようになったようです。
変更点:
fs: ReadStreamとWriteStreamがnewなしで作成できるようになりました。 process: &amp;quot;FOO&amp;quot; in process.envなどでprocess.envを利用した際に、全パーミッションが要求される問題が解消されています。(内部的にDeno.env.toObject()が使用されないように修正されています) process: process.execPathが書き込み可能なプロパティに変更されました。(pnpmなどの書き込みを行うパッケージが存在したため) std/fs すでにシンボリックリンクが存在する場合にensureSymlinkが失敗しないように改善されています。
std/http/file_server serveFileにディレクトリのパスが指定された場合、404エラーが返却されるように修正されました。 (今までは200が返却されるものの、ボディを読もうとするとエラーが発生していたようです)
https://github.com/denoland/deno_std/releases/tag/0.156.0
Mongooseサポートに向けたunstable APIの安定化について Mongooseのサポートに向けて、下記のAPIの安定化が検討されています。
Deno.consoleSize() Deno.hostname() Deno.osRelease() Deno.consoleSize()とDeno.hostname()についてはすでにPRが作成されており、次のv1.26あたりで安定化される可能性がありそうです。
Ultra v2.0.0-beta.6 Island Architectureのサポートなどが追加されています。
/examples/with-islands https://github.com/exhibitionist-digital/ultra/releases/tag/v2.0.0-beta.6
deno-sqlite v3.5.0 PreparedQueryに.first()と.firstEntry()が追加されています。
その影響で既存の.one()と.oneEntry()は非推奨化されています。
const query = db.</description></item><item><title>2022/09/05〜2022/09/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/09/11.html</link><pubDate>Sun, 11 Sep 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/09/11.html</guid><description>Deno v1.25.2 Deno v1.25.2がリリースされました。
(破壊的変更) Node.js互換モード(--compat)の削除 Deno v1.25.0でnpmパッケージのサポートが追加されたため、Node.js互換モード(--compat)が削除されました。
FFI Rustのdynasmrt crateを使用して、JITの仕組みが再実装されています。
こちらのコメントによると、これにより以下の点などが改善されているようです。
Windows x64 PCでもv8 Fast APIを使用した最適化が適用されるようになりました。 Denoからtinyccへの依存がなくなりました。 SElinuxが有効化されている環境でもFFIが動作するようになりました。 その他には、bool型のサポートが追加されています。
const dylib = Deno.dlopen(libPath, { &amp;#34;do_something_with_bool&amp;#34;: { parameters: [&amp;#34;bool&amp;#34;], result: &amp;#34;bool&amp;#34;, }, }); npmパッケージサポートの改善 pre-releaseタグがサポートされています。(例: npm:some-package@1.2.3-alpha.4)
また、パッケージのバージョンが指定されなかった際に、そのパッケージの最新バージョンがインストールされるように改善されています。(dist-tagsのlatest で指定されたバージョンがダウンロードされます)
その他には、npm:経由で読み込んだパッケージ内ではwindow変数が削除され、cjsモジュールが再帰的に解析されるように改善されています。
これによりVue.jsがimportできるようになっているようです。
import { createApp } from &amp;#34;npm:vue@3.2.39&amp;#34; console.log(createApp); deno_std v0.155.0 deno_std v0.155.0がリリースされました。
std/encoding/csv: stringify()のシグネチャが変更 (破壊的変更) stringify()が同期的に動作するように変更されています。
また、columnsオプションがオプショナルに変更されています。
具体的には、以下のように型定義が変更されています。
v0.154.0:
stringify( data: DataItem[], columns: Column[], options?</description></item><item><title>Fresh v1.1</title><link>https://uki00a.github.io/deno-weekly/articles/fresh/v1.1.html</link><pubDate>Sun, 11 Sep 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/fresh/v1.1.html</guid><description>Fresh v1.1がリリースされました。
この記事では主な変更点などについて解説します。
アップデート用スクリプトの追加 Freshのアップデート用スクリプトが追加されています。
$ deno run -A https://fresh.deno.dev/update . このスクリプトを実行すると、各種依存関係や後述するcompilerOptionsやTwindプラグインなどに関する変更が適用されます。
compilerOptions.jsxとcompilerOptions.jsxImportSourceのサポート Freshのプロジェクトの初期化時に、compilerOptions.jsxとcompilerOptions.jsxImportSourceが自動で設定されるようになりました。
これにより、.jsx/.tsxファイルで以下2行の指定が不要になります。
/** @jsx h */ import { h } from &amp;#34;preact&amp;#34;; 前述のアップデートスクリプトを実行すると、既存のプロジェクトにもこの設定が適用されます。
プラグインシステム ユーザがFreshの挙動を拡張できるようにするために、プラグインシステムが実装されました。
現時点では、生成されたHTMLに対するスクリプトやスタイルの注入などがサポートされています。将来的には、プラグイン経由でRouteやMiddlewareなどを追加できるようにすることが予定されているようです。
例として、公式でTwindプラグインが提供されており、start()のpluginsオプションで有効化できます。
// main.ts import { start } from &amp;#34;$fresh/server.ts&amp;#34;; import twindPlugin from &amp;#34;$fresh/plugins/twind.ts&amp;#34;; import manifest from &amp;#34;./fresh.gen.ts&amp;#34;; import twindConfig from &amp;#34;./twind.config.ts&amp;#34;; await start(manifest, { plugins: [twindPlugin(twindConfig)] }); このTwindプラグインを有効化すると、twを使わずにclassを指定できるようになります (PreactのOption Hooksを使用して twが自動で適用されます)
&amp;lt;div class=&amp;#34;font-bold&amp;#34;&amp;gt;foobar&amp;lt;/div&amp;gt; 前述のアップデートスクリプトを実行することで、twを使わずにclassを記述する形式へ自動で変換されます。
Preact Devtoolsのサポート Preact Devtoolsのサポートが追加されています。
devモード(deno task start)時は自動で有効化されるため、特に設定などは不要です。</description></item><item><title>2022/08/29〜2022/09/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/09/04.html</link><pubDate>Sun, 04 Sep 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/09/04.html</guid><description>Deno v1.25.1 Deno v1.25.1がリリースされました。
Node.js互換に関する変更点
依存関係の解析結果に関するキャッシュが存在する場合、deno compileが失敗する問題が修正されています。
npm:URLで読み込まれたパッケージ内で、globalとglobalThisが一致するように修正されました。
node-fetchなどのglobal.Promiseを参照するパッケージが動かない問題があったようです。 semverの取り扱いに関するnpmとの互換性の向上
元々、Rustのsemver crateが使われていましたが、自前でパーサが実装されたようです。 *付きのConditional exportsがサポートされています。
{ &amp;#34;exports&amp;#34;: { &amp;#34;.&amp;#34;: { &amp;#34;types&amp;#34;: &amp;#34;./types/src/index.d.ts&amp;#34;, &amp;#34;require&amp;#34;: &amp;#34;./cjs/index.cjs&amp;#34;, &amp;#34;import&amp;#34;: &amp;#34;./esm/index.js&amp;#34; }, &amp;#34;./driver&amp;#34;: { &amp;#34;types&amp;#34;: &amp;#34;./types/src/driver/index.d.ts&amp;#34;, &amp;#34;import&amp;#34;: &amp;#34;./esm/driver/index.js&amp;#34; }, &amp;#34;./driver/*&amp;#34;: { &amp;#34;types&amp;#34;: &amp;#34;./types/src/driver/*.d.ts&amp;#34;, &amp;#34;import&amp;#34;: &amp;#34;./esm/driver/*.js&amp;#34; } } } package.</description></item><item><title>2021/08/22〜2022/08/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/08/28.html</link><pubDate>Sun, 28 Aug 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/08/28.html</guid><description>Deno v1.25.0 Deno v1.25.0がリリースされました。
以下の記事に変更点をまとめたため、詳しくはそちらを参照いただければと思います。
Deno v1.25 deno_std v0.153.0 deno_std v0.153.0がリリースされました。
std/encoding/csv: parse()が同期的に動作するように (破壊的変更) parse()の引数からBufReaderが削除されています
これに伴い、parse()の戻り値がstring[][] | Record&amp;lt;string, unknown&amp;gt;[]に変更されています。
import { parse } from &amp;#34;https://deno.land/std@0.153.0/encoding/csv.ts&amp;#34;; const records = parse(`id,name 1,foo 2,bar`); console.log(records); // Output: [ [ &amp;#34;id&amp;#34;, &amp;#34;name&amp;#34; ], [ &amp;#34;1&amp;#34;, &amp;#34;foo&amp;#34; ], [ &amp;#34;2&amp;#34;, &amp;#34;bar&amp;#34; ] ] std/http/cookie_mapモジュールが追加 MapライクなAPIをベースにCookieを管理するためのユーティリティモジュールが追加されました。
CookieMapはリクエスト及びレスポンスに関するCookieの管理に利用することができます。
import { CookieMap, mergeHeaders } from &amp;#34;https://deno.land/std@0.153.0/http/cookie_map.ts&amp;#34;; const req = new Request(&amp;#34;http://localhost:3000&amp;#34;, { headers: { cookie: &amp;#34;foo=bar; hoge=piyo;&amp;#34; }, }); const cookies = new CookieMap(req); cookies.</description></item><item><title>Deno v1.25</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.25.html</link><pubDate>Sun, 28 Aug 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.25.html</guid><description>Deno v1.25がリリースされました。
この記事では主な変更点などについて解説します。
npmパッケージのサポート Denoでnpmパッケージのimportや実行が実験的にサポートされました。
npm installやnode_modulesなどを必要とせずにnpmパッケージを利用することができます。
import express from &amp;#34;npm:express@4.18.1&amp;#34;; const app = express(); app.get(&amp;#34;/&amp;#34;, (req, res) =&amp;gt; { res.send(&amp;#34;Hello&amp;#34;); }); app.listen(3000); このファイルを実行すると、npmパッケージがダウンロードされた後、ExpressによってHTTPサーバが起動します。
$ deno run --unstable --allow-env --allow-read --allow-net main.mjs $ curl http://localhost:3000 Hello 他のサードパーティモジュールなどと同様に、初回実行時のみnpmパッケージがダウンロードされ、DENO_DIRにキャッシュされます。(DENO_DIR/npm/registry.npmjs.orgに保存されるようです)
また、npxライクにコマンドを実行することもできます。
$ deno run --unstable --allow-env --allow-read --allow-write npm:make-dir-cli@3.0.0 src/components 制限 現時点では利用するには--unstableが必要になります。 また、--allow-envや--allow-readも必要になります。 ロックファイル/型チェック/deno vendor/deno lsp/deno installなどでは、この機能はまだサポートされていません。 新しいHTTPサーバ (Flash) DenoにはHyperをベースにしたHTTPサーバ(Deno.serveHttp)が組み込まれています。
このHTTPサーバのさらなる高速化などを目的に、Flashという新しいHTTPサーバが実装されました。
Deno.serveというAPIによって、Flashを起動することができます。
const ac = new AbortController(); Deno.</description></item><item><title>2021/08/15〜2022/08/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/08/21.html</link><pubDate>Sun, 21 Aug 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/08/21.html</guid><description>Denoの今後の計画について Deno公式からBig Changes Ahead for Denoという、Denoの今後の計画などに関する記事が公開されました。
今のところ、以下の点などに注力されていく予定のようです。
Node.jsとの互換性の向上 パフォーマンスの向上 エンタープライズユーザへのサポートの強化 開発体験の向上 これらに関連すると思われる直近での変更について簡単にまとめてみます。
npm:URLのサポート 現在、npm:URLによるnpmパッケージのimportに関する開発が行われています。
feat(unstable): initial support for npm specifiers (#15484)
例えば、以下のようにして、npmパッケージをimportすることができるようです。
import express from &amp;#34;npm:express@5&amp;#34;; import { expect } from &amp;#34;npm:chai@4.2&amp;#34;; この機能には、大まかに以下のような特徴があります。
デフォルトでnpmパッケージはnpmの公式レジストリからダウンロードされ、DENO_DIRにキャッシュされます。 Node.js互換モード(--compat)とは異なり、npm:URLで読み込まれたモジュール内のみにNode.jsのグローバルAPI(process/global/Bufferなど)が注入されます。 Node.js互換モード(--compat)とは異なり、現時点では--unstableなしで使用できる想定のようです。 型チェック, LSPのサポート, エントリポイントでのnpm:URLの指定(例: deno run npm:mkdirp path/to/dir)などの機能はまだ入っておらず、今後追加されていく予定のようです。 この機能はおそらく、次のv1.25でリリースされるのではないかと思われます。
新しいHTTPサーバ (Flash) HTTPサーバの高速化を目的に、Deno本体でFlashという新しいHTTPサーバが開発されています。
feat(ext/flash): An optimized http/1.1 server (#15405)
feat(unstable): change Deno.serve() API (#15498)</description></item><item><title>2021/08/08〜2022/08/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/08/14.html</link><pubDate>Sun, 14 Aug 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/08/14.html</guid><description>Deno v1.24.3 Deno v1.24.3がリリースされました。
fetch()でSOCKSがサポート 検証はしていないのですが、HTTP_PROXYやHTTPS_PROXY環境変数にsocks5:またはsocks5h:形式のURLを指定すると利用できそうです。
Deno.UnsafePointerViewへの機能追加 Deno.UnsafePointerViewに以下の3つのstaticメソッドが追加されています。
getCString getArrayBuffer copyInto これらのメソッドの挙動は、Deno.UnsafePointerViewの同名のインスタンスメソッドとほぼ同様です。
compilerOptions.jsxImportSourceが指定されていると、deno.json(c)をimportできない問題が修正 次のように、compilerOptions.jsxImportSourceが設定されたdeno.jsonが定義されていたとします。
{ &amp;#34;compilerOptions&amp;#34;: { &amp;#34;jsx&amp;#34;: &amp;#34;react-jsx&amp;#34;, &amp;#34;jsxImportSource&amp;#34;: &amp;#34;preact&amp;#34; }, &amp;#34;importMap&amp;#34;: &amp;#34;./import_map.json&amp;#34; } このファイルをImport assertionsを使用して読み込もうとすると、エラーが発生する問題が修正されています。
import config from &amp;#34;./deno.json&amp;#34; assert { type: &amp;#34;json&amp;#34; }; // =&amp;gt; `error: Loading unprepared module` console.log(config); この修正は、Freshにおけるfeat: support JSX automatic mode (#610)の対応のために実施されたようです。
その他の修正 --allow-netに空の値を指定するとプロセスがパニックする問題が修正されています。 --locationオプションが指定されていないときはglobalThis.locationが上書きできるようになりました。 https://github.com/denoland/deno/releases/tag/v1.24.3
deno_std v0.152.0 deno_std v0.152.0がリリースされました。
std/crypto: subtle.timingSafeEqual()が追加 import { crypto } from &amp;#34;https://deno.</description></item><item><title>2021/08/01〜2022/08/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/08/07.html</link><pubDate>Sun, 07 Aug 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/08/07.html</guid><description>Deno v1.24.2 Deno v1.24.2がリリースされました。
FFIに関する改善 Deno.UnsafePointerView#getArrayBufferがpointerが指すデータのコピーではなく、pointerが指すデータを直接返すように修正されています。
また、Deno.PointerValueが追加されています。 これに合わせて、ポインタを取り扱う各APIの戻り値などでもこの型が使用されるように修正されています。
その他には、戻り値が64ビット値の関数に対してもV8 Fast API Callsによる最適化が適用されるようになりました。
その他の変更点 プロパティにErrorオブジェクトが設定されたオブジェクトをthrowすると、プロセスがパニックする問題が修正されました。 deno vendor: dynamic importに失敗した際に、プロセスがパニックする問題が修正されました。 deno lsp: import節の入力補完において、レジストリ補完の最中のみ/がコミット文字として使用されるように修正されました。 https://github.com/denoland/deno/releases/tag/v1.24.2
deno_std v0.151.0 deno_std v0.151.0がリリースされました。
Node.jsの互換レイヤーに関するバグ修正や機能の追加が実施されています。
変更点:
node/fs: fs.existsSync()が例外をthrowする可能性がある問題が修正されました。 node/fs: fs.watchFile()とfs.unwatchFile()が実装されました。 node/http(s): http.request()などでprotocolを省略した際に、デフォルトで適切なプロトコルが設定されるように修正されました。 https://github.com/denoland/deno_std/releases/tag/0.151.0
Deno Merch Deno公式のショップサイトが公開されました。
https://merch.deno.com/ ソースコードも公開されており、Fresh/Twind/SWR/GraphQL Storefront API (Shopify)をベースに実装されているようです。
https://github.com/denoland/merch
Freshのロードマップ Freshのロードマップが公開されました。
Roadmap (#563) 直近では、以下の変更が予定されているようです。
プラグインシステムの実装 (現状、Twindプラグインの実装が進行しているようです) &amp;lt;Head&amp;gt;コンポーネントの非推奨化 (&amp;lt;head&amp;gt;タグによって直接メタ情報を埋め込めるようにする予定のようです) https://github.com/denoland/fresh/issues/563
PrismaのDenoサポートについて Prismaの以下のissueで、Denoのサポートについて議論されています。</description></item><item><title>2021/07/25〜2022/07/31の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/07/31.html</link><pubDate>Sun, 31 Jul 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/07/31.html</guid><description>Deno v1.24.1 Deno v1.24.1がリリースされました。
このリリースはバグ修正がメインです。
&amp;quot;unhandledrejection&amp;quot;イベントに関する修正 &amp;quot;unhandledrejection&amp;quot;イベントのリスナに関する型定義が修正されています。
また、モジュールのトップレベルで同期的にエラーが発生した際にも&amp;quot;unhandledrejection&amp;quot;イベントが発火されるように修正されています。
Deno.Child.unref()に関する修正 Deno.Child.unref()を呼ぶと、Deno.Child.stdoutやDeno.Child.stderrもunrefされるように修正されています。
その他の変更点 型チェック時(--check)に、TypeScriptのjsxFactoryとjsxFragmentFactoryオプションが自動で設定される問題が修正されています。
https://github.com/denoland/deno/releases/tag/v1.24.1
deno_std v0.150.0 deno_std v0.150.0がリリースされました。
http/http_errors createHttpErrorでheadersオプションがサポートされています。
import { createHttpError } from &amp;#34;https://deno.land/std@0.150.0/http/http_errors.ts&amp;#34;; import { Status, STATUS_TEXT } from &amp;#34;https://deno.land/std@0.150.0/http/http_status.ts&amp;#34;; const error = createHttpError( Status.Unauthorized, STATUS_TEXT[Status.Unauthorized], { headers: { &amp;#34;WWW-Authenticate&amp;#34;: &amp;#34;Basic&amp;#34; } } ); error.headers; // =&amp;gt; `Headers { &amp;#34;www-authenticate&amp;#34;: &amp;#34;Basic&amp;#34; }` io/writers StringWriterにデータを書き込む際に、引数のUint8Arrayがコピーされるようになりました。
引数に渡したUint8Arrayが別の箇所で変更されると、StringWriter#toStringが返却する文字列にも影響が出てしまう問題があったようです。
import { StringWriter } from &amp;#34;https://deno.land/std@0.150.0/io/writers.ts&amp;#34;; const encoder = new TextEncoder(); const w = new StringWriter(); const bytes = encoder.</description></item><item><title>2021/07/18〜2022/07/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/07/24.html</link><pubDate>Sun, 24 Jul 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/07/24.html</guid><description>Deno v1.24.0 Deno v1.24.0がリリースされました。
以下の記事に変更点をまとめたため、詳しくはそちらを参照いただければと思います。
Deno v1.24 deno_std v0.149.0 deno_std v0.149.0がリリースされました。
semverモジュールが追加 deno_stdにsemverモジュールが入りました。
import * as semver from &amp;#34;https://deno.land/std@0.149.0/semver/mod.ts&amp;#34;; semver.valid(&amp;#34;v1.2.3&amp;#34;); // =&amp;gt; 1.2.3 semver.gt(&amp;#34;2.0.0&amp;#34;, &amp;#34;1.2.4&amp;#34;); // =&amp;gt; true semver.satisfies(&amp;#34;1.4.2&amp;#34;, &amp;#34;&amp;gt;=1.x&amp;#34;); // =&amp;gt; true testing/asserts assertRejectsがthenableなオブジェクトをサポートしました。
const error = await assertRejects(() =&amp;gt; ({ then() { throw new Error(&amp;#34;foo&amp;#34;); }, })); console.assert(error.message === &amp;#34;foo&amp;#34;); node process.on(&amp;quot;beforeExit&amp;quot;)がサポートされました。
https://github.com/denoland/deno_std/releases/tag/0.149.0
Denoについてのアンケート Deno公式でアンケートが公開されています。
https://unf275cfh14.typeform.com/to/k3eQB4Q3 https://twitter.com/deno_land/status/1550209370301952000</description></item><item><title>Deno v1.24</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.24.html</link><pubDate>Sun, 24 Jul 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.24.html</guid><description>Deno v1.24がリリースされました。
この記事では主な変更点などについて解説します。
--checkオプション指定時のトランスパイルの挙動が変更 tscがトランスパイル用途では使用されなくなりました。
型チェック トランスパイル --check (v1.23) tsc tsc --no-check (v1.23) - swc --check (v1.24) tsc swc --no-check (v1.24) - swc これにより、トランスパイルの効率化が見込まれます。
また、tscの実行結果をSQLiteにキャッシュする仕組みも導入されており、型チェックについても効率化が図られています。($DENO_DIR/check_cache_v1にSQLiteのデータベースファイルが作成されます)
FFI(Deno.dlopen)の改善 v1.23.3でV8 Fast API Calls+JITコンパイルの導入による最適化が実施されました。
今回のリリースでは、64ビット値を取り扱う関数に対してもV8 Fast API Callsを利用した最適化が適用されるように改善されています。
サブプロセスAPIへの変更 Deno v1.21 で入ったサブプロセスAPIに変更が加わっています。
Deno.Child.unref()とDeno.Child.ref()のサポート 挙動としてはDeno.refTimerやDeno.unrefTimerと同様で、Deno.Child.unref()を呼ぶと、対象の子プロセスがDenoの終了をブロックしなくなります。
const child = await Deno.spawnChild(&amp;#34;some_long_running_process&amp;#34;, { args }); child.unref(); (破壊的変更) Deno.Childの型定義が変更 Deno.spawnChildで返却されるDeno.Childのstdio関連のプロパティに関する型定義が変更されています。
v1.23.4</description></item><item><title>2021/07/11〜2022/07/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/07/17.html</link><pubDate>Sun, 17 Jul 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/07/17.html</guid><description>Deno v1.23.4 Deno v1.23.4がリリースされました。
V8 Fast API Calls+JITコンパイルによるFFIの最適化 V8 Fast API Callsとtinyccを使用したJITコンパイルにより、FFI(Deno.dlopen)の最適化が行われています。
Deno.dlopenを呼んだ際に、下記の条件が満たされる外部関数へのバインディングに対して、自動でFast API Calls+JITコンパイルによる最適化が適用されます。
非Windows環境であること (Windowsではまだこれらの最適化がサポートされていません) パラメータ及び戻り値の型にスカラ型のみが含まれる場合 もしこれらの最適化を無効化したい場合は、callbackオプションにtrueを指定する必要があります。
const lib = Deno.dlopen( &amp;#34;some_lib.so&amp;#34;, { some_func: { parameters: [&amp;#34;usize&amp;#34;, &amp;#34;usize&amp;#34;], result: &amp;#34;usize&amp;#34;, callback: true }, } ); 細かな詳細については、deno_ffiも参照ください。
perf(ext/ffi): leverage V8 Fast Calls #15125 fix(ext/ffi): trampoline for fast calls #15139 fix(ext/ffi): allow opting out of fast ffi calls #15131 その他の変更点 Request#json()などに続けてRequest.</description></item><item><title>2021/07/04〜2022/07/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/07/10.html</link><pubDate>Sun, 10 Jul 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/07/10.html</guid><description>Deno v1.23.3 Deno v1.23.3がリリースされました。
このリリースでは、deno testなどの引数にfile:形式でディレクトリを指定すると、エラーが発生する問題が修正されています。
# v1.23.2まではエラー $ deno test file:///home/foo/sample/tests また、Denoの内部で使用されているTypeScriptがv4.7.4へアップデートされています。
その他には、いくつかのパフォーマンスチューニングなどが実施されています。
https://github.com/denoland/deno/releases/tag/v1.23.3
deno_std v0.147.0 deno_std v0.147.0がリリースされました。
dotenv dotenvモジュールで、変数の展開がサポートされました。
例えば、以下のような内容で.envファイルが定義されていたとします。
HOST=localhost URL=http://${HOST}:${PORT:-3000} このファイルをdotenvモジュールで読み込むと、以下のように評価されます。
{ HOST: &amp;#34;localhost&amp;#34;, URL: &amp;#34;http://localhost:3000&amp;#34; } その他には、stringify()関数が追加されています。
import { stringify } from &amp;#34;https://deno.land/std@0.147.0/dotenv/mod.ts&amp;#34;; stringify({ PORT: &amp;#34;3000&amp;#34;, HOST: &amp;#34;localhost&amp;#34;, LOG_LEVEL: &amp;#34;debug&amp;#34; }); // PORT=3000 // HOST=localhost // LOG_LEVEL=debug http oak_commonsのHTTPエラーとコンテントネゴシエーション用のモジュールがdeno_std/httpに取り込まれました。
http/negotiation
import { accepts } from &amp;#34;https://deno.land/std@0.147.0/http/negotiation.ts&amp;#34;; const req = new Request(&amp;#34;https://github.</description></item><item><title>2021/06/27〜2022/07/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/07/03.html</link><pubDate>Sun, 03 Jul 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/07/03.html</guid><description>Deno v1.23.2 Deno v1.23.2がリリースされました。
スレッドセーフコールバックのサポート(FFI) 例えば、メインスレッドで登録したコールバック(Deno.UnsafeCallback)をWorkerスレッドから呼び出したり、その逆にWorkerスレッドで登録したコールバックをメインスレッドから呼び出すことができるようになりました。
また、Deno.UnsafeCallbackにrefとunrefメソッドが実装されており、refを呼ぶことでDenoプロセスの停止を防止することができます。(Deno.refTimerなどと同様の挙動)
https://github.com/denoland/deno/pull/14942
その他の変更点 FFIで空のArrayBufferを渡すとプロセスパニックする問題が修正されています。 deno lspのdeno/cacheメソッド(vscode-denoだとDeno: Cache Dependenciesコマンド)で依存関係をキャッシュした際に、TypeScriptのランゲージサービスが自動で再起動されるようになりました。 Deno.bench()やDeno.test()を含むファイルをdeno runで実行すると、エラーが発生する問題が修正されています。 https://github.com/denoland/deno/releases/tag/v1.23.2
deno_std v0.146.0 deno_std v0.146.0がリリースされました。
collections: BSTreeとRBTreeのリネーム collectionsモジュールで提供されているBSTreeがBinarySearchTreeに、RBTreeがRedBlackTreeにリネームされています。
その他の変更点 testing/asserts: assertEqualsで同じ要素を持つSet同士を比較しているにも関わらず、例外が発生するケースがあったため、修正されています。 streams/delimiter: TextLineStreamで大きなチャンクを処理する際にMaximum call stack size exceededエラーが発生することがある問題が修正されました。 node/util: util.inspect()やutil.format()で6つを超える要素数の配列が正しくフォーマットされるように修正されています。 https://github.com/denoland/deno_std/releases/tag/0.146.0
JITコンパイラによるFFIの最適化 Deno本体へのJITコンパイラの導入により、FFIバインディングを最適化するPRが作成されています。
perf(ext/ffi): JIT compiler for FFI (#15006)
内部的には、tinyccが使用されているようです。
https://github.com/denoland/deno/pull/15006
Fresh v1 Fresh v1.0.0がリリースされました。
これに合わせて、Freshのリポジトリがdenoland organization配下に移動されています。
また、Deno公式でFreshの紹介記事が公開されています。
Fresh 1.0 https://github.com/denoland/fresh
denoland/meet-me Deno公式で、Calendlyのクローンアプリが公開されています。</description></item><item><title>2021/06/20〜2022/06/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/06/26.html</link><pubDate>Sun, 26 Jun 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/06/26.html</guid><description>Deno v1.23.1 Deno v1.23.1がリリースされました。
FFI関連の変更点 破壊的変更としてDeno.UnsafePointerが削除されました。 (正確にはDeno.UnsafePointer.ofのみ残されています) 今後、ポインタはbigintで表現されます。
その他には、unstable APIとしてDeno.UnsafeCallbackが追加されています。 JavaScriptの関数を関数ポインタとして受け渡すために利用できます。
deno fmtの改善 deno fmtコマンドがnode_modulesと.gitディレクトリを無視するようになりました。
また、JavaScriptファイルのパースに失敗した際に、deno fmt --checkがちゃんと失敗するように修正されています。
その他の変更点 fetchの呼び出し時に、デフォルトでAccept-Language: *ヘッダが設定されるように修正されました。 deno replコマンドで、直前の文字が空白のときにTabキーを押すと、タブ(\t)が挿入されるように修正されました。 deno runコマンドで.d.ctsや.d.mtsファイルを実行すると、プロセスがパニックする問題が修正されました。 https://github.com/denoland/deno/releases/tag/v1.23.1
deno_std v0.145.0 deno_std v0.145.0がリリースされました。
std/encoding/json/stream std/encoding/json/streamが追加されました。
このモジュールでは、下記4フォーマットでのストリーミングがサポートされています。
JSON Lines ndjson JSON Text Sequences Concatenated JSON JSONParseStreamは上記の上から3つのフォーマットをサポートしています。
import { JSONParseStream } from &amp;#34;https://deno.land/std@0.145.0/encoding/json/stream.ts&amp;#34;; import { readableStreamFromIterable } from &amp;#34;https://deno.land/std@0.145.0/streams/conversion.ts&amp;#34;; const readable = readableStreamFromIterable([ `{&amp;#34;name&amp;#34;: &amp;#34;foo&amp;#34;}`, `{&amp;#34;a&amp;#34;: 1, &amp;#34;b&amp;#34;: true}`, ]) .</description></item><item><title>2021/06/13〜2022/06/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/06/19.html</link><pubDate>Sun, 19 Jun 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/06/19.html</guid><description>Deno v1.23 Deno v1.23がリリースされました。
以下の記事に変更点をまとめたため、詳しくはこちらを参照いただければと思います。
Deno v1.23 deno_std v0.144.0 deno_std v0.144.0がリリースされました。
encoding/front_matter 新規モジュールとしてencoding/front_matterが追加されました。
import { extract } from &amp;#34;https://deno.land/std@0.144.0/encoding/front_matter.ts&amp;#34;; const { attrs, body } = extract&amp;lt;{ title: string, date: Date }&amp;gt;(`--- title: foobar date: 2022-06-12 --- Hello`); console.assert(attrs.title === &amp;#34;foobar&amp;#34;); console.assert(attrs.date instanceof Date); console.assert(body === &amp;#34;Hello&amp;#34;); collections collections/mod.tsをimportすると警告が表示されるようになりました。
必要に応じて、collections/deep_mergeやcollections/group_byなどの各ファイルを個別にimportすることが推奨されます。
node process.stdoutとprocess.stderrに下記メソッドが実装されています。
cursorTo moveCursor clearLine clearScreenDown https://github.com/denoland/deno_std/releases/tag/0.144.0
Freshのアップデート (CLIの削除) FreshからCLIが削除されています。
feat: remove fresh cli, do manifest generation in process (#223)</description></item><item><title>Deno v1.23</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.23.html</link><pubDate>Sun, 19 Jun 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.23.html</guid><description>Deno v1.23がリリースされました。
この記事では主な変更点などについて解説します。
deno runやdeno cacheなどのコマンドでデフォルトの型チェックが無効化されました 下記コマンドで、デフォルトで型チェックが行われなくなります。
deno run deno cache deno eval deno repl 今後、型チェックを行いたい場合は、deno checkコマンドを使うか--checkオプションを指定する必要があります。
$ deno check mod.ts その他のdeno testなどのコマンドでは、引き続きローカルモジュールの型チェックがデフォルトで実行されます。
deno runが失敗する場合の対処方法 Denoは、型チェックを行わない場合、swcを使用してトランスパイルを行います。
その関係で、コードの実行時に、まれに問題が発生することがあるようです。
https://github.com/denoland/deno/issues/14900 問題に遭遇した場合は、--checkオプションを指定するとtscが使用されるため、問題を回避できる可能性があります。
$ deno run --check mod.ts Deno.sleepSync()の削除 Atomics.waitで代替可能であったり、イベントループを完全にブロックしてしまうなどの問題を抱えていたため、Deno.sleepSync()が削除されました。
Intl.v8BreakIteratorの削除 非標準APIであるため、Intl.v8BreakIteratorが削除されました。
代わりにIntl.Segmenterの使用が推奨されます。
deno taskコマンドの改善 --cwdオプションのサポート --cwdオプションにより、タスク実行時のカレントディレクトリを変更できるようになりました (デフォルトでは、deno.json(c)の配置場所がカレントディレクトリに設定されます)
$ deno task --cwd ./src build リダイレクションのサポート タスクの定義でリダイレクションがサポートされました。
{ &amp;#34;tasks&amp;#34;: { &amp;#34;test&amp;#34;: &amp;#34;echo foo &amp;gt; test.txt&amp;#34; } } また、/dev/nullにリダイレクトすると、出力が捨てられます (Windowsでも動きます)</description></item><item><title>2021/06/06〜2022/06/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/06/12.html</link><pubDate>Sun, 12 Jun 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/06/12.html</guid><description>Deno v1.22.3 Deno v1.22.3がリリースされました。
主な変更点:
fetch APIの引数にURLオブジェクト渡す形式が非推奨ではなくなりました。(TypeScript公式の型定義でもサポートされたため) // Deno v1.22.3までは、下記の形式は非推奨でした const res = await fetch(new URL(&amp;#34;https://example.com&amp;#34;)); Import Mapファイルなどの.jsonや.jsonc形式のファイルが変更されたときに、deno lspが自動で変更を検知してくれるようになりました。 --watchオプションで、dynamic importされるファイルが監視されない問題が修正されました。 エラー以外の値がthrowされた際にコンソールへ出力される内容が改善されました。 https://github.com/denoland/deno/releases/tag/v1.22.3
deno_std v0.143.0 deno_std v0.143.0がリリースされました。
http/http_statusでの破壊的変更について STATUS_TEXTがMap&amp;lt;Status, string&amp;gt;からReadonly&amp;lt;Record&amp;lt;Status, String&amp;gt;&amp;gt;へ変更されています。(破壊的変更)
その他にも、いくつかのヘルパー関数やタイプが追加されています。
import { isErrorStatus, STATUS_TEXT } from &amp;#34;https://deno.land/std@0.143.0/http/http_status.ts&amp;#34;; STATUS_TEXT[404]; // =&amp;gt; &amp;#34;Not Found&amp;#34; isErrorStatus(404); // =&amp;gt; true isErrorStatus(200); // =&amp;gt; false flagsモジュールでnegatableオプションがサポート ここで指定されたフラグのみが、--no-プレフィックスの付与による否定がサポートされます。
import { parse } from &amp;#34;https://deno.land/std@0.143.0/flags/mod.ts&amp;#34;; parse([&amp;#34;deno&amp;#34;, &amp;#34;fmt&amp;#34;, &amp;#34;--no-config&amp;#34;], { string: [&amp;#34;config&amp;#34;], negatable: [&amp;#34;config&amp;#34;], }); // =&amp;gt; { _: [ &amp;#34;deno&amp;#34;, &amp;#34;fmt&amp;#34; ], config: false } parse([&amp;#34;deno&amp;#34;, &amp;#34;fmt&amp;#34;, &amp;#34;--no-config&amp;#34;], { string: [&amp;#34;config&amp;#34;], }); // =&amp;gt; { _: [ &amp;#34;deno&amp;#34;, &amp;#34;fmt&amp;#34; ], &amp;#34;no-config&amp;#34;: true } dotenvモジュールでインラインコメントがサポート #に続けてコメントを記述できます。</description></item><item><title>2021/05/30〜2022/06/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/06/05.html</link><pubDate>Sun, 05 Jun 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/06/05.html</guid><description>Deno v1.22.2 Deno v1.22.2がリリースされました。
主な変更点:
Deno.getGid()が実装されました。(unstable) POSIX系プラットフォームではプロセスのグループIDが、Windowsではnullが返されます。 利用するには--allow-envの指定が必要です。 Error.captureStackTrace()の型定義が追加されました。 Crypto.getRandomValues()の型定義が改善されました。(BigInt64ArrayやBigUint64Arrayが受け取れず、Float32ArrayやFloat64Arrayが引数として受け取れてしまう問題が解消されています) https://github.com/denoland/deno/releases/tag/v1.22.2
deno_std v0.142.0 deno_std v0.142.0がリリースされました。
FNVのサポート (crypto) cryptoモジュールでFNVが実装されました。
import { crypto } from &amp;#34;https://deno.land/std@0.142.0/crypto/mod.ts&amp;#34;; // ... const digest = await crypto.subtle.digest(&amp;#34;FNV32&amp;#34;, input); media_typesモジュールの追加 deno_stdにmedia_typesモジュールが追加されました。
import { contentType } from &amp;#34;https://deno.land/std@0.142.0/media_types/mod.ts&amp;#34;; contentType(&amp;#34;.js&amp;#34;); // =&amp;gt; &amp;#34;application/javascript; charset=UTF-8&amp;#34; contentType(&amp;#34;application/json&amp;#34;); // =&amp;gt; &amp;#34;application/json; charset=UTF-8&amp;#34; このモジュールは、以前にもdeno_stdに存在するモジュールの一部でしたが、一度削除されています。
その後、メンテナンスはoakserver/media_typesのリポジトリに引き継がれていました。
このリリースで改めてmedia_typesモジュールが復帰したため、oakserver/media_typesのリポジトリはアーカイブされています。
TextLineStreamにallowCRオプションが追加 (streams/delimiter) このオプションにtrueを指定したときのみCRが取り扱われるように変更されています。
前回のリリースで、デフォルトでCRが取り扱われるように修正されましたが、デフォルトの挙動を変えてしまうのはまずいということで、このオプションが追加されました。
https://github.com/denoland/deno_std/releases/tag/0.142.0
oak_commonsパッケージの機能のdeno_stdへの移行 現在、oak_commonsパッケージで提供されていた機能の一部をdeno_stdへ移植するPRが作成されています。
例)</description></item><item><title>2021/05/23〜2022/05/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/05/29.html</link><pubDate>Sun, 29 May 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/05/29.html</guid><description>Deno Deploy Beta 4 Deno Deploy Beta 4が発表されました。
このリリースに合わせて、有料のProプランが公開されています。 詳しくは、以下の記事で価格設定などについて解説されています。
deno deploy beta 4発表！価格設定をcloudflare workersと比較する その他にも、ダッシュボードがリニューアルされています。 リクエストごとの平均CPU時間の可視化やログのUIの改善などが実施されています。
https://deno.com/blog/deploy-beta4
Deno v1.22.1 Deno v1.22.1がリリースされました。
このリリースはバグ修正を中心に行われています。
主な変更点:
Deno.ChildStatus.signalの型がstringからDeno.Signalに変更されました。 deno test --coverageで、interfaceのみを含むファイルなどで計測結果がNaN%と表示される問題が修正されました。 WebSocket.closeを呼ぶと&amp;quot;close&amp;quot;イベントが2回発火される問題が修正されました。 globalThis.dispatchEventが改ざんされている(deleteによる削除など)と、Deno.exit()でエラーが発生する問題が修正されました。 Deno.permissions.query()などのパーミッション関連のAPIに不正な形式の引数を与えた際のエラーメッセージが改善されました。 https://github.com/denoland/deno/releases/tag/v1.22.1
deno_std v0.141.0 deno_std v0.141.0がリリースされました。
いくつかの破壊的変更が実施されています。
testing/asserts assertStrictEqualsなどの改善 assertStrictEquals / assertAlmostEquals / assertNotStrictEqualsの内部の比較処理で、===の代わりにObject.is()を使用するように修正されています。(Node.jsのassertパッケージなどと同様の挙動に変わりました。)
assertEqualsなどの型定義の改善 (破壊的変更) assertEqualsやassertNotEqualsなどの型定義が修正されています。
例えば、下記のように異なる型の値同士を比較すると、型エラーが発生します。
assertEquals(123, &amp;#34;foo&amp;#34;); 次のようにすると、型エラーを回避できます。
assertEquals&amp;lt;unknown&amp;gt;(123, &amp;#34;foo&amp;#34;); assertRejectsやassertThrowsの戻り値の変更 assertRejectsやassertThrowsで補足された例外が戻り値として返却されるように修正されました。
const error = assertThrows(() =&amp;gt; { throw new Error(&amp;#34;foo&amp;#34;); }); assert(error instanceof Error); assertEquals(error.</description></item><item><title>2021/05/16〜2022/05/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/05/22.html</link><pubDate>Sun, 22 May 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/05/22.html</guid><description>Deno v1.22 Deno v1.22がリリースされました。
変更点については以下の記事にまとめたため、詳しくはこちらを参照いただければと思います。
Deno v1.22 deno_std v0.140.0 deno_std v0.140.0がリリースされました。
http serve関数などにonListenオプションが追加されています。
このオプションに関数を設定しておくと、サーバ起動時にそれが呼ばれます。
import { serve } from &amp;#34;https://deno.land/std@0.140.0/http/server.ts&amp;#34;; serve(() =&amp;gt; Response.json({ message: &amp;#34;hello&amp;#34; }), { onListen({ port }) { console.log(`Listening on port ${port}`); }, }); collections/deep_merge deepMerge関数で、循環参照のあるオブジェクトなどで無限ループが発生する問題が修正されています。
testing/asserts assertRejects()に渡した関数が同期的に例外を投げた場合に成功と扱われてしまう問題が修正されました。
await assertRejects(() =&amp;gt; { throw new Error(&amp;#34;foo&amp;#34;); }); // =&amp;gt; rejectされたPromiseが返されていないため、エラー https://github.com/denoland/deno_std/releases/tag/0.140.0
SQLバイディング Deno本体でSQLバインディングを公開するPRが作成されています。
experiment(runtime): expose SQLite bindings (#14627)
まだ実際にリリースされるかどうかは不明ですが、今のところ、下記のようにしてクエリを発行できる想定のようです。</description></item><item><title>Deno v1.22</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.22.html</link><pubDate>Sun, 22 May 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.22.html</guid><description>Deno v1.22がリリースされました。
この記事では、主な変更点についてまとめていきます。
リモートモジュールの型チェックがデフォルトで無効化 deno runやdeno testなどの各コマンドでリモートモジュールの型チェックがデフォルトで無効化されました。
今後はローカルのTypeScriptファイルのみが型チェックされます。
もしリモートモジュールの型チェックも必要な際は--check=allオプションまたはdeno check --remoteを使用します。
また、次のv1.23のリリースでは、deno runやdeno cacheではデフォルトで一切型チェックが行われなくなる予定です。 (deno checkコマンドや--checkオプションなどで明示的に型チェックする必要があります)
例えば、CIでdeno cacheコマンドを実行して型チェックを行っている場合などは、今のうちにdeno checkコマンドに移行しておくとよいと思います。
# mod.tsの型チェックを行う $ deno check mod.ts # deno run実行時に型チェックも行う $ deno run --check main.ts 設定ファイルの読み込みの無効化 Denoはエントリポイントが存在するディレクトリまたはその上位のいずれかのディレクトリにdeno.json(c)というファイルが存在する場合、それを自動で読み込みます。
このリリースでは、新しく--no-configオプションがサポートされました。 このオプションを指定すると、deno.json(c)の自動探索を無効化できます。
$ deno run --no-config main.ts (破壊的変更) Worker内でデフォルトでDeno APIが有効化 今までは、Worker内でDeno.readFileなどのAPIを使用したい場合は、denoオプションによって明示的に有効化する必要がありました。
new Worker(new URL(&amp;#39;./worker.js&amp;#39;, import.meta.url).href, { deno: { namespace: true }, // Deno APIの使用を有効化 type: &amp;#34;module&amp;#34; }); 今後は上記のようにオプションを指定しなくても、Worker内で常にDenoのAPIを参照できます。
new Worker(new URL(&amp;#39;./worker.js&amp;#39;, import.meta.url).href, { type: &amp;#34;module&amp;#34; }); また、この変更の影響により、WorkerOptions.</description></item><item><title>2021/05/09〜2022/05/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/05/15.html</link><pubDate>Sun, 15 May 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/05/15.html</guid><description>Deno v1.21.3 Deno v1.21.3がリリースされました。
deno task deno task &amp;lt;タスク名&amp;gt;の&amp;lt;タスク名&amp;gt;の直後に--から始まるオプションを指定できない問題が修正されました。
その他の修正 Deno.connectTlsで作成したTLSコネクションを閉じる前に、ハンドシェイクが完了することが保証されるようになりました。
その他にも、Windows上で標準出力や標準エラー出力にマルチバイト文字を書き込んだ際の挙動の改善などが実施されています。
https://github.com/denoland/deno/releases/tag/v1.21.3
deno_std v0.139.0 deno_std v0.139.0がリリースされました。
encoding/jsonc deno_stdにJSONCパーサが実装されました。
import { parse } from &amp;#34;https://deno.land/std@0.139.0/encoding/jsonc.ts&amp;#34;; console.log(parse(`{ // hello &amp;#34;foo&amp;#34;: 1 }`)); // =&amp;gt; { foo: 1 } node dnsパッケージで以下のAPIが実装されました。
dns.Resolver dns.setServers / dns.getServers dns.resolveAnyやdns.resolve4などの問い合わせAPI また、netパッケージでUnixドメインソケットがサポートされています。
testing/snapshot assertSnapshotにオプションを渡せるようになりました。
例えば、dirオプションによってスナップショットの保存先ディレクトリなどをカスタマイズできます。
await assertSnapshot(t, actual, { dir: &amp;#34;testdata&amp;#34; }); https://github.com/denoland/deno_std/releases/tag/0.139.0
--no-configオプションのサポートについて deno.json(c)の自動的な読み込みを無効化するために、--no-configオプションを追加するPRが作成されています。
feat: add &amp;ndash;no-config flag (#14555)</description></item><item><title>2021/05/02〜2022/05/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/05/08.html</link><pubDate>Sun, 08 May 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/05/08.html</guid><description>Deno v1.21.2 Deno v1.21.2がリリースされました。
変更点:
lib.dom.extras.d.tsが追加されました。 lib.dom.d.tsを読み込んでもURLPatternが利用できない(型エラーが発生する)問題を解消するための修正です。 このファイルには、URLPatternに関する型定義が含まれています。 lib.dom.d.tsを読み込むと自動でこのファイルも読み込まれます。 deno test --coverageによる計測対象から.snapファイルが除外されるように修正されました。 (deno_stdでスナップショットテスティングがサポートされたため) HTTPサーバ(Deno.serveHttp)でレスポンスボディにReadableStreamを指定した際に、対象のリソースが自動で閉じられない問題が修正されました。 deno taskでタスクの引数に-を含むオプションを指定した際に、そのオプションが適切に渡されない問題が修正されました。 deno testやdeno benchの引数にfile:形式のURLを指定すると、プロセスがパニックする問題が修正されました。 https://github.com/denoland/deno/releases/tag/v1.21.2
deno_std v0.138.0 deno_std v0.138.0がリリースされました。
testing assertSnapshot()(testing/snapshot)で複数行に渡る文字列の取り扱いが改善されました。
その影響により、deno_stdをv0.138.0にアップデートするとテストが失敗する可能性があります。 その場合は--updateオプションでスナップショットを更新する必要あります。
その他にも、testing/assertsモジュールにassertFalse()が追加されています。
node dns/promisesパッケージのlookup()が実装されました。 moduleパッケージをWorkerから読み込むとプロセスがハングする問題が解消されました。 bytes bytes/equalsパッケージから今までprivateであったequalSimd()とequalsNaive()が公開されました。
https://github.com/denoland/deno_std/releases/tag/0.138.0
Denoの全コマンドで--no-check=remoteをデフォルトの挙動にする 下記のissueでdeno runなどの各コマンドで--no-check=remoteオプションの挙動をデフォルト化することが提案されています。
&amp;ndash;no-check=remote on by default for all subcommands (#14498)
現在、例えばdeno runを実行すると、デフォルトではリモートモジュールも含めて全TypeScriptファイルが型チェックされます。 この--no-check=remoteの挙動がデフォルト化された場合、ローカルのTypeScriptファイルのみが型チェックされるように挙動が変わります。
今のところ、この変更はDeno v1.22でのリリースが想定されているようです。
また、Deno v1.23ではdeno runなどの各コマンドでの型チェックがデフォルトで無効化されることが予定されています。(型チェックを行いたいときはdeno checkコマンドを利用します)
https://github.com/denoland/deno/issues/14498
deno testコマンドの--docオプションをデフォルトで有効化する deno testコマンドには--docオプションを付与することで、MarkdownファイルやJSDocコメント中のコードブロックに対して型チェックを行う機能があります。</description></item><item><title>2021/04/25〜2022/05/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/05/01.html</link><pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/05/01.html</guid><description>Deno v1.21.1 Deno v1.21.1がリリースされました。
ネイティブHTTPサーバ(Deno.serveHttp)の変更点 Deno v1.20でレスポンスボディの自動的な圧縮がサポートされました。
このリリースでは、レスポンスボディにReadableStreamが指定された際の圧縮がサポートされています。
その他にもいくつかのパフォーマンス改善が実施されています。
deno taskで引数に--を指定した際の挙動が変更 例えば、deno.jsonで次のようなタスクが定義されていたとします。
{ &amp;#34;tasks&amp;#34;: { &amp;#34;test&amp;#34;: &amp;#34;deno test --allow-read&amp;#34; } } 例えば、下記のように--を指定してタスクを実行したとします。
$ deno task test -- some-test.js この場合、v1.21.0時点では次のようにコマンドが実行されていました。
$ deno test --allow-read &amp;#34;some-test.js&amp;#34; 今回リリースされたv1.21.1では、次のように変更されています。
$ deno test --allow-read &amp;#34;--&amp;#34; &amp;#34;some-test.js&amp;#34; Deno.inspectの変更点 strAbbreviateSizeオプションが追加されました。 文字列がこのオプションで指定された長さを超えると省略して表示されます。 デフォルト値は100です。 compact: falseが指定された際であっても、空のIterableオブジェクトはコンパクト化して表示するように修正されています。 deno benchの変更点 deno benchで2つ以上のファイルを実行した際に、前のファイルのベンチマーク結果が次のファイルに影響を与えてしまう問題が修正されました。
この問題は、例えば、1つ目のベンチマークファイルでグルーピング(groupオプション)を利用しているが、2つ目のベンチマークファイルではグルーピングを利用していないようなケースで発生していたようです。
その他にも、Exit sanitizerによるオーバーヘッドの削減が実施されています。
deno testの変更点 Deno v1.21でテストケースの実行時にログに出力された内容がキャプチャされるように改善されました。
このリリースでは、Deno.spawn()などでstdoutやstderrオプションに&amp;quot;inherit&amp;quot;を指定した際に、サブプロセスの出力内容もキャプチャされるように改善されています。
他にも、Workerの出力内容もキャプチャするように改善されています。
その他の変更点 Deno.</description></item><item><title>2021/04/18〜2022/04/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/04/24.html</link><pubDate>Sun, 24 Apr 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/04/24.html</guid><description>Deno v1.21 Deno v1.21がリリースされました。
個別に記事を書いたので、詳しくはそちらを参照いただければと思います。
Deno v1.21 deno_std v0.136.0 deno_std v0.136.0がリリースされました。
testing/snapshot スナップショットテストを行うためのモジュールが追加されました。
このモジュールではassertSnapshotという関数が公開されており、__snapshots__ディレクトリに保存されたスナップショットと第2引数で指定された値を比較し、マッチしなかった場合、エラーが発生します。
スナップショットを読み込む必要があるため、利用には--allow-readパーミッションが必要になります。
import { assertSnapshot } from &amp;#34;https://deno.land/std@0.136.0/testing/snapshot.ts&amp;#34; Deno.test(&amp;#34;doSomething&amp;#34;, async (t) =&amp;gt; { const result = doSomething(); await assertSnapshot(t, result); }); スナップショットを更新したいときは、テストを実行する際に--updateを指定する必要があります。
この場合、スナップショットを書き込むために、追加で--allow-writeが必要になります。
# スナップショットは__snapshots__に書き込まれます $ deno test --allow-read --allow-write tests/some_test.js -- --update testing/bdd itに渡すテスト関数がTestContextを受け取るように修正されています。
import { describe, it } from &amp;#34;https://deno.land/std@0.136.0/testing/bdd.ts&amp;#34; describe(&amp;#34;sum&amp;#34;, () =&amp;gt; { it(&amp;#34;should return sum of numbers&amp;#34;, (t) =&amp;gt; { assertEquals(sum(1, 2, 3), 6, t.</description></item><item><title>Deno v1.21</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.21.html</link><pubDate>Sun, 24 Apr 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.21.html</guid><description>Deno v1.21がリリースされました。
この記事では新機能や修正点などについて解説します。
deno checkコマンドの導入 新しいコマンドとしてdeno checkコマンドが追加されました。
挙動としては基本的にdeno cacheコマンドと同等で、与えられたモジュールの型チェック及びリモートモジュールのダウンロードを行います。
$ deno check mod.ts deno cacheコマンドとの違い deno cacheコマンドとの大きな違いとして、deno checkコマンドはデフォルトではリモートモジュールの型チェックを行いません。
deno checkコマンドでリモートモジュールの型チェックも行いたい場合は--remoteオプションを指定する必要があります。
deno runコマンドでの型チェックについて deno checkコマンドの追加による影響として、将来的にdeno runコマンドではデフォルトで型チェックが行われなくなる予定です。(Deno v1.21時点でもDENO_FUTURE_CHECK=1環境変数を設定することで、この挙動を有効化できます)
型チェックを行いたいときは、今回追加されたdeno checkコマンドまたはdeno run --checkで明示的に行う必要が出てきます。
新しいサブプロセスAPI (unstable) DenoにはDeno.run()というサブプロセスを生成するためのAPIがありますが、今回、新しく3種類のAPIが追加されました:
Deno.spawn() (高レベル) Deno.spawnChild() (低レベル) Deno.spawnSync() (Deno.spawnの同期版) これらのAPIの利用にはDeno.run()と同様に--allow-runパーミッションが必要です。
また、これらのAPIの追加により、Deno.run()は非推奨化される予定のようです。
Deno.spawn() これは高レベルAPIという位置づけです。
指定したコマンドを実行し、そのコマンドの実行結果(status)や標準出力(stdout)及び標準エラー出力(stderr)への出力内容を返却してくれます。
const { stdout, status } = await Deno.spawn(&amp;#34;echo&amp;#34;, { args: [&amp;#34;foo&amp;#34;], }); console.assert(&amp;#34;foo\n&amp;#34; === new TextDecoder().decode(stdout)); console.assert(status.success); コマンドの出力結果のみが必要で、細かな制御はいらない場合に便利かと思います。
Deno.spawnChild() こちらは低レベルAPIという位置づけです。
Deno.Reader/Deno.WriterではなくReadableStream/WritableStreamをベースに実装されています。
const child = Deno.</description></item><item><title>2021/04/11〜2022/04/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/04/17.html</link><pubDate>Sun, 17 Apr 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/04/17.html</guid><description>Deno v1.20.6 Deno v1.20.6がリリースされました。
deno fmtコマンドの内部実装で使用されているdprint関連のプラグインがアップデートされています。
その影響により、deno fmtコマンドのパフォーマンス向上やバグの修正が行われています。 (オブジェクトリテラルと3項演算子を併用した際に、フォーマット結果に一貫性がなくなる問題が修正されているようです)
https://github.com/denoland/deno/releases/tag/v1.20.6
deno_std v0.135.0 deno_std v0.135.0がリリースされました。
このリリースでは破壊的変更が実施されています。
io/readers: MultiReaderのシグネチャの変更 (破壊的変更) MultiReaderのコンストラクタの引数が可変長引数ではなくDeno.Readerの配列を受け取るように変更されています。
変更前:
const readers: Array&amp;lt;Deno.Reader&amp;gt; = [...]; new MultiReader(...readers); 変更後:
const readers: Array&amp;lt;Deno.Reader&amp;gt; = [...]; new MultiReader(readers); MultiReaderはstd/archive/tar.tsモジュールの内部で使われており、大量のファイルを持つtarファイルを作ろうとすると、maximum call stack exceededエラーが発生してしまう問題があったようです。
mime/multipartの非推奨化 (破壊的変更) mime/multipartモジュールが非推奨化されました。
今後はFormDataの使用が推奨されます。
testing/benchの非推奨化 (破壊的変更) testing/benchモジュールが非推奨化されました。
今後はDeno.benchの使用が推奨されます。
testing/bddの追加 testing/bddモジュールが追加されました。
JestやMochaライクなAPIを使用してテストコードを記述することができます。
import { assertEquals } from &amp;#34;https://deno.land/std@0.135.0/testing/asserts.ts&amp;#34;; import { describe, it } from &amp;#34;https://deno.land/std@0.135.0/testing/bdd.ts&amp;#34;; describe(&amp;#34;sum&amp;#34;, () =&amp;gt; { it(&amp;#34;should return sum of numbers&amp;#34;, () =&amp;gt; { assertEquals(sum(1, 2, 5), 8) }); it(&amp;#34;should return 0 when no arguments are given&amp;#34;, () =&amp;gt; { assertEquals(sum(), 0); }); }); 定義したテストコードはdeno testコマンドで実行することが出来ます。</description></item><item><title>2021/04/04〜2022/04/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/04/10.html</link><pubDate>Sun, 10 Apr 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/04/10.html</guid><description>Deno v1.20.5 Deno v1.20.5がリリースされました。
deno lspの新機能 deno lspでTesting APIがサポートされています (https://code.visualstudio.com/api/extension-guides/testing)
vscodeでTesting: Focus on Test Explorer Viewコマンドを実行すると、テストファイルに含まれるテストケースの一覧を表示できます。
Deno.Listenerにrefとunrefメソッドが追加 (unstable) unref()が呼ばれたListenerはプロセスの終了をブロックしなくなります (タイマにDeno.unrefTimerを呼んだときと同様の挙動をします)
後述するdeno_std/node/netでのServer.ref()の実装で利用されています。
バグ修正 SubtleCrypto.exportKey()でextractable: falseに設定されたキーをエクスポートできてしまう問題が修正されました (https://github.com/denoland/deno/issues/14215) --compatを指定してdeno installを実行した際に、--compatフラグが維持されない問題が修正されました。 https://github.com/denoland/deno/releases/tag/v1.20.5
deno_std v0.134.0 deno_std v0.134.0がリリースされました。
encoding/csvやnodeモジュールへの機能の追加が行われています。
encoding/csv CSVStreamが追加されました。
import { CSVStream } from &amp;#34;https://deno.land/std@0.134.0/encoding/csv/stream.ts&amp;#34;; const file = await Deno.open(&amp;#34;path/to/data.csv&amp;#34;); const stream = file.readable .pipeThrough(new TextDecoderStream()) .pipeThrough(new CSVStream()); for await (const record of stream) { console.log(record); } node child_process: ChildProcess.</description></item><item><title>2021/03/28〜2022/04/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/04/03.html</link><pubDate>Sun, 03 Apr 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/04/03.html</guid><description>Supabase Functions SupabaseでSupabase FunctionsというFaaSが利用できるようになりました。
Supabase FunctionsはDeno Deployをベースにしており、TypeScriptなどを利用してコードを記述できるようです。
Supabase Functions on Deno Deploy Edge Functions are now available in Supabase Deno v1.20.4 Deno v1.20.4がリリースされました。
変更点:
外部モジュールのimport時にリダイレクトが発生すると、deno compileで生成したバイナリがうまく動作しなくなる問題が修正されました。
Deno v1.20.3で非推奨化されたfetch()のシグネチャが修正されました。
変更前:
function fetch( input: URL, init?: RequestInit, ): Promise&amp;lt;Response&amp;gt;; 変更後:
function fetch( input: URL | Request | string, init?: RequestInit, ): Promise&amp;lt;Response&amp;gt;; deno lspでdeno.jsoncなどの拡張子が.jsoncのファイルがウォッチされない問題が修正されました。
deno taskコマンドでのPATHEXT環境変数の取り扱いが改善されました。
https://github.</description></item><item><title>2021/03/21〜2022/03/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/03/27.html</link><pubDate>Sun, 27 Mar 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/03/27.html</guid><description>Deno v1.20.2 permissionsオプションへの破壊的変更について Deno v1.20で行われる予定であったpermissionsオプションへの破壊的変更が正式に反映されました。
詳細については下記を参照ください。
Deno v1.20 deno taskコマンドの改善 deno taskコマンドの内部で使われているdeno_task_shellがアップデートされています。
これにより、cp -Rや|&amp;amp;のサポートなどが行われています。
deno_task_shell v0.2.0 deno lspでenablePathsオプションがサポート deno lspでenablePathsオプションがサポートされました。
ワークスペース内の特定のフォルダでのみdeno lspを有効化したいが、それ以外のフォルダでは組み込みのJavaScript/TypeScriptランゲージサーバを使いたいようなときに設定することが想定されているようです。
https://github.com/denoland/vscode_deno/releases/tag/3.11.0 その他の変更 --unstableなしでdeno benchを実行した際のエラーメッセージが改善 deno upgradeコマンドでDENO_CERT環境変数による証明書の指定がサポート HTTPサーバのパフォーマンスチューニング など
https://github.com/denoland/deno/releases/tag/v1.20.2
Deno v1.20.3 Deno v1.20.2に続けて、v1.20.3もリリースされています。
セキュリティに関する修正が含まれるので早めのアップデートが推奨されています。
変更点:
Denoはfetchの第一引数としてURLの指定をサポートしていますが、この形式での呼び出しが非推奨化されました。 (v2で削除される予定のようです) FFI関連の各API(Deno.UnsafeFnPointer#callなど)でちゃんと--unstableオプションが与えられているかチェックされるよう変更されました。 Deno.RunOptionsのcmdプロパティがreadonlyに変更されました。 https://github.com/denoland/deno/releases/tag/v1.20.3
deno_std v0.131.0 deno_std v0.131.0がリリースされました。
collections BinaryHeapが追加されました。
import { BinaryHeap } from &amp;#34;https://deno.land/std@0.132.0/collections/binary_heap.ts&amp;#34;; const heap = new BinaryHeap&amp;lt;number&amp;gt;(); heap.</description></item><item><title>2021/03/14〜2022/03/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/03/20.html</link><pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/03/20.html</guid><description>Deno v1.20 Deno v1.20がリリースされました。
詳しくは下記の記事を参照ください:
Deno v1.20 deno_std v0.130.0 deno_std v0.130.0がリリースされました。
std/testing/assertsモジュールでassertInstanceOfが実装されました。
import { assertInstanceOf } from &amp;#34;https://deno.land/std@0.130.0/testing/asserts.ts&amp;#34;; assertInstanceOf(new Date(), Date); // OK assertInstanceOf(/abc/, RegExp); // OK assertInstanceOf(&amp;#34;baz&amp;#34;, Number); // NG その他にもstd/nodeでのfs.writevSyncの実装などが行われています。
https://github.com/denoland/deno_std/commit/dbccc64488bbcc2bc540b833488b9bb97c11e1cb IndexedDBサポートについて Deno本体にIndexedDBを追加するPRが作成されています。
feat(ext/webstorage): IndexedDB (#14035)
内部的にはlocalStorageなどと同様にSQLiteを使用して実装されているようです。
近い将来にリリースされる可能性があるかもしれません。
https://github.com/denoland/deno/pull/14035
deno-sqlite v3.3.0 deno-sqlite v3.3.0がリリースされました。
DBクラスにexecuteメソッドが追加されています。 これを使うと、複数のSQLステートメントをまとめて実行することができます。
import { DB } from &amp;#34;https://deno.land/x/sqlite@v3.3.0/mod.ts&amp;#34;; const db = new DB(&amp;#34;:memory:&amp;#34;); db.execute(` CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT ); INSERT INTO users (name) VALUES (&amp;#39;foo&amp;#39;), (&amp;#39;bar&amp;#39;); `); for (const [id, name] of db.</description></item><item><title>Deno v1.20</title><link>https://uki00a.github.io/deno-weekly/articles/deno/v1.20.html</link><pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/deno/v1.20.html</guid><description>Deno v1.20がリリースされました。
この記事では新しく追加された機能などについて紹介します。
(破壊的変更) Deno.testのpermissionsオプションの挙動が変更 ⚠️ この変更はv1.20.1時点ではまだ反映されていません！
現在、正式な修正用のPRが作成されており、おそらくv1.20.2で反映されるはずです
https://github.com/denoland/deno/pull/14024 Deno.testやWorkerなどのAPIはpermissionsオプションにより実行時のパーミッションをカスタマイズできます:
Deno.test({ name: &amp;#34;permissions_test&amp;#34;, permissions: { read: true }, fn: async () =&amp;gt; { const content = await Deno.readTextFile(&amp;#34;./data.txt&amp;#34;); await Deno.writeTextFile(&amp;#34;./data.txt&amp;#34;, processContent(content)); }, }); 上記のテストコードはDeno.readTextFileとDeno.writeTextFileを実行しており、正しく実行するためには--allow-readと--allow-writeの両方の権限が必要です。
このテストケースでは、下記宣言により--allow-readを明示的に指定しています。
permissions: { read: true }, ここではwrite: trueが指定されていないため、このテストケースは権限エラーにより失敗するというのが直感的な挙動なのではないかと思います。
しかし、Deno v1.19時点では上記のテストコードは成功してしまいます。
permissions: { read: true }, 実は、Deno v1.19において、この指定は下記宣言と同義になります:
// `read`以外はすべてCLIオプションで指定された権限(--allow-writeなど)が継承される permissions: { read: true, env: &amp;#34;inherit&amp;#34;, ffi: &amp;#34;inherit&amp;#34;, hrtime: &amp;#34;inherit&amp;#34;, net: &amp;#34;inherit&amp;#34;, run: &amp;#34;inherit&amp;#34;, write: &amp;#34;inherit&amp;#34;, }, この挙動は直感的ではないということで、Deno v1.</description></item><item><title>2021/03/07〜2022/03/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/03/13.html</link><pubDate>Sun, 13 Mar 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/03/13.html</guid><description>Deno v1.19.3 Deno v1.19.3がリリースされました。
deno test --docでtypescriptやjavascriptタイプのコードブロックをチェックできるようになりました。
```ts let str: string = 0; ``` だけでなく
```typescript let str: string = 0; ``` のようにコードブロックを記述した際もテストが行われるようになります。
また、パフォーマンスチューニングも実施されており、atobとbtoaのパフォーマンスが最大で20倍まで高速化されています。
その他には古いバージョンのglibcを搭載するプラットフォームのサポートが行われています。
https://github.com/denoland/deno/releases/tag/v1.19.3
deno_std v0.129.0 deno_std v0.129.0がリリースされました。
streams deno_stdのWeb streams APIへの移行の一環として、streams/bufferモジュールが追加されました。
現時点では、以下のクラスが提供されています:
Buffer (std/io/bufferのBufferクラスのstreams APIバージョン) LimitedTransformStream (std/io/readersのLimitedReaderのstreams APIバージョン) LimitedBytesTransformStream (std/io/readersのLimitedReaderのstreams APIバージョン) また、streams/delimiterモジュールにTextDelimiterStreamが追加されています。
testing/asserts assertStrictEquals()のシグネチャがAssertion Functionsを使用した形式に変更されています。
具体的には下記コードが動くようになります:
const a = { name: &amp;#34;foo&amp;#34; }; const b = a as unknown; assertStrictEquals(b, a); b.</description></item><item><title>2021/02/28〜2022/03/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/03/06.html</link><pubDate>Sun, 06 Mar 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/03/06.html</guid><description>Deno v1.19.2 Deno v1.19.2がリリースされました。
リモートスクリプトでのdeno.json(c)の自動読み込みが無効化 Deno v1.18でdeno.json(c)の自動読み込みがサポートされました。
このリリースでは、リモートスクリプト実行時のdeno.json(c)の自動探索が無効化されています。
リモートスクリプトを実行する際に、ローカルのdeno.json(c)が読まれてしまうことによる不整合を防止することが目的のようです。
Proposal: disable auto-discovery of config file for deno run
deno testの実行時はデフォルトで--no-promptが有効化 Deno v1.19で--promptがデフォルトで有効化されました。
しかし、deno testの実行時は--promptオプションの必要性が薄いため、このリリースで無効化されています。
その他の変更点 deno replでnullが適切に表示されない問題が修正されました。 非TTY環境でconsoleを使用した際の色付けが無効化されない問題が修正されました。 https://github.com/denoland/deno/releases/tag/v1.19.2
deno_std v0.128.0 deno_std v0.128.0がリリースされました。
新機能 streamsモジュールにTextLineStreamが追加されています。
import { TextLineStream } from &amp;#34;https://deno.land/std@0.128.0/streams/delimiter.ts&amp;#34;; const file = await Deno.open(&amp;#34;./path/to/file.txt&amp;#34;); const readable = file.readable .pipeThrough(new TextDecoderStream()) .pipeThrough(new TextLineStream()); for await (const line of readable) { console.</description></item><item><title>2021/02/21〜2022/02/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/02/27.html</link><pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/02/27.html</guid><description>Deno v1.19.1 Deno v1.19.1がリリースされました。
新機能としてDeno.dlopenでstatic変数の参照がサポートされています。
Deno.ForeignStatic その他にも、deno compileで--import-mapオプションがうまく動かなくなっていた問題が修正されています。
https://github.com/denoland/deno/releases/tag/v1.19.1
deno_std v0.127.0 deno_std v0.127.0がリリースされました。
dotenvの追加 deno-dotenvモジュールがdeno_stdにマージされました。
マイグレーション手順も公開されているので、もしdeno-dotenvを利用されていた場合は参考にするとよさそうです。
async/abortableの追加 Promiseをキャンセルできるようにするためのユーティリティが追加されています。
import { abortable } from &amp;#34;https://deno.land/std@0.127.0/async/abortable.ts&amp;#34;; import { delay } from &amp;#34;https://deno.land/std@0.127.0/async/delay.ts&amp;#34;; const controller = new AbortController(); const promise = delay(5000); setTimeout(() =&amp;gt; controller.abort(), 2000); await abortable(promise, controller.signal); // =&amp;gt; AbortError node fs: fs.realpath.nativeが追加されました。 tls: tls.createServerの基本的なサポートが追加されました。 その他 http/file_server: serveDir関数が追加されました。 testing/aserts: assertAlmostEqualsが追加されました。 https://github.com/denoland/deno_std/releases/tag/0.127.0
deno.json(c)でのImport Mapサポートについて deno.</description></item><item><title>2021/02/14〜2022/02/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/02/20.html</link><pubDate>Sun, 20 Feb 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/02/20.html</guid><description>Deno v1.19 Deno v1.19がリリースされました。
--promptオプションの挙動がデフォルト化 例えば、以下のようなファイルがあったとします。
const content = await Deno.readTextFile(&amp;#34;README.md&amp;#34;); このファイルを権限なしで実行しようとすると、下記のように権限を付与するか尋ねられるようになります。
$ deno run main.ts ⚠️ ️Deno requests read access to &amp;#34;README.md&amp;#34;. Run again with --allow-read to bypass this prompt. Allow? [y/n (y = yes allow, n = no deny)] Deno v1.18以前の挙動に戻したいときは--no-promptを指定する必要があります。
deno vendorコマンドの追加 サードパーティモジュールもバージョン管理に含めたいなどの要求を解決すべく導入されたコマンドです。
具体的な使い方としては、下記のようにエントリポイントを指定します。
$ deno vendor mod.ts これにより、vendorディレクトリにmod.tsから依存されているサードパーティモジュールが保存されます。
また、vendorディレクトリに次のような内容でimport_map.jsonが作成されます。
{ &amp;#34;imports&amp;#34;: { &amp;#34;https://deno.land/&amp;#34;: &amp;#34;./deno.land/&amp;#34;, &amp;#34;https://unpkg.com/&amp;#34;: &amp;#34;./unpkg.com/&amp;#34; }, &amp;#34;scopes&amp;#34;: { &amp;#34;.</description></item><item><title>2021/02/07〜2022/02/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/02/13.html</link><pubDate>Sun, 13 Feb 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/02/13.html</guid><description>--promptオプションの挙動をデフォルト化するPRがマージされました Denoで--promptオプションをデフォルトで有効化するPRがマージされました。
feat: prompt by default (#13650)
次のDeno v1.19でリリースされる可能性がありそうです。
また、この変更に合わせて、--no-promptオプションが追加されています。 このオプションを指定することで、今まで通り、 許可されていないAPIを実行しようとすると、即時にエラーが発生します。
ファイルシステムやネットワーク関連APIでのStreams APIのサポートについて Denoのファイルシステム(Deno.File)やネットワーク(Deno.Conn)関連のAPIでStreams APIをサポートすることが検討されています。
Make FS and net APIs work well with WHATWG streams (#13614)
まだドラフトの段階ですが、すでにPRも作成されています。
feat(runtime): web streams in fs &amp;amp; net APIs (#13615)
背景:
現在、Denoのファイルシステムやネットワーク関連のAPIはGoのスタイルに従っています(Deno.Reader/Deno.Writer)
しかし、これらのAPIはfetch()やStreams APIと互換性がありません (一応、この差異を吸収するためにdeno_std/streamsが提供されていたりします)
この問題を解消するため、Deno.FileやDeno.Connなどにreadableプロパティ(ReadableStream&amp;lt;Uint8Array&amp;gt;型)やwritableプロパティ(WritableStream&amp;lt;Uint8Array&amp;gt;型)を追加することが検討されています。
N-APIの実装について DenoでN-APIの実装が開始されています。
Implement NAPI (#13633)
まだドラフトの段階でありリリース時期も未定ですが、進捗は上記のPRから確認できるので、気になる方はSubscribeするとよいかもしれません。
Deno.umask()の削除について Deno.umask()を削除するPRが作成されています。
chore: remove Deno.umask (#13639)
背景としては、競合状態によるバグが存在するためのようです。
詳しくは以下のissueを参照ください。
Proposal: Remove (unstable) Deno.</description></item><item><title>2021/01/31〜2022/02/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/02/06.html</link><pubDate>Sun, 06 Feb 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/02/06.html</guid><description>Deno v1.18.2 Deno v1.18.2がリリースされました。
Deno.getUid() Deno.getUid()が実装されました。
これを使うと、現在のユーザのIDを取得できます。(Windowsだとnullが返されます)
const uid = Deno.getUid(); console.log(uid); 利用するには--allow-envと--unstableが必要です。
その他バグ修正 HOME環境変数に相対パスが設定されていると、プロセスがクラッシュする問題が修正されました。 拡張子なしでimportしようとした際に、メディアタイプを元に拡張子を推論されるようになりました。 クエリパラメータつきでローカルファイルをimportするとプロセスがクラッシュする問題が修正されました。 SubtleCrypto.decryptでAES-GCMによる復号を行う際に、タグ長が128ビットでないとプロセスがパニックする問題が修正されました deno lsp: リダイレクトが発生すると、X-Deno-Warningヘッダの内容が表示されなくなる問題が修正されました https://github.com/denoland/deno/releases/tag/v1.18.2
deno_std v0.125.0 deno_std v0.125.0がリリースされました。
std/nodeへの機能追加などを中心に行われています。
全般 std/fs/copyやstd/node、std/osなどの--unstableが必要なモジュールを--unstableなしで使用した際に、型エラーではなく実行時エラーが発生するように修正されました。
node punycodeパッケージが実装されました url.resolve()が実装されました child_process.spawn()などでAbortSignalがサポートされました fs.createWriteStream()が実装されました fs.copyFile()で4引数の形式がサポートされました https://github.com/denoland/deno_std/commit/3b43d075ea6977e10bb1d9bd58fbeacc721a114e
deno_stdへのdotenvモジュールの追加について dotenvモジュールをdeno_stdへ追加するPRが作成されています。
https://github.com/denoland/deno_std/pull/1877 経緯については下記のissueで議論されていますが、好意的な反応が多く、次のリリースなどで追加される可能性がありそうです。
https://github.com/denoland/deno/issues/13396 https://github.com/denoland/deno_std/pull/1877
Deno.Conn#setNoDelayとDeno.Conn#setKeepAliveの実装について Deno.ConnにsetNoDelayとsetKeepAliveを実装するPRがマージされました。(denoland/deno#13103)
今のところ、下記のように使用することが想定されています。
Deno.Conn#setNoDelay(true)を呼ぶとNagleアルゴリズムが無効化されます (TCP_NODELAYが設定される) Deno.Conn#setKeepAlive(true)を呼ぶとTCPキープアライブが有効化されます (SO_KEEPALIVEが設定される) この機能は次のDeno v1.19でリリースされる可能性がありそうです。
https://github.com/denoland/deno/pull/13103
Deno.run()でのIPCサポートについて Deno.run()でIPCをサポートするPRが作成されています。(denoland/deno#13566)
今のところ、下記のような方法での使用が想定されているようです。
Deno.</description></item><item><title>2021/01/24〜2022/01/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/01/30.html</link><pubDate>Sun, 30 Jan 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/01/30.html</guid><description>Deno v1.18.1 Deno v1.18.1がリリースされました。
Deno.networkInterfaces() Deno.networkInterfaces()が実装されました。
利用可能なネットワークインターフェースの一覧を取得できます。
const interfaces = Deno.networkInterfaces(); 利用するには--allow-envと--unstableが必要です。
deno lsp deno lspでDENO_CERTとDENO_TLS_CA_STOREの環境変数がサポートされました。
これらの環境変数については、下記を参照ください。
https://deno.land/manual@v1.18.1/getting_started/setup_your_environment#environment-variables https://github.com/denoland/deno/releases/tag/v1.18.1
deno_std v0.123.0 deno_std v0.123.0がリリースされました。
std/node 新しく下記APIが実装されています:
os.networkInterfaces() process.uptime() child_process.execFile() std/testing assertObjectMatchでArrayBufferを含むオブジェクトが適切に比較されない問題が修正されました。
https://github.com/denoland/deno_std/releases/tag/0.123.0
deno_std/archive/tarの現代化について deno_stdにはtarファイルを取り扱うためにarchive/tarが提供されています。
このarchive/tarはDeno.Readerをベースに実装されています。
現在、archive/tarをStreams APIで書き直すことが検討されています。
この一環として、archive/streams.tsを追加するPRが作成されています。
https://github.com/denoland/deno_std/pull/1855 archive/streams.tsではTarEncoderStreamとTarDecoderStreamを提供し、StreamsベースのAPIを介してtarファイルの操作を行うことができます。
まだマージされていないものの、次のリリースなどで追加される可能性がありそうです。
https://github.com/denoland/deno_std/issues/1658 https://github.com/denoland/deno_std/pull/1855 Deno in 2021 Denoの公式ブログポストとしてDeno in 2021という記事が公開されました。
この記事では、2021年中にDenoに起きたできごとや変更内容などについて解説されています。
また、Deno v2へのロードマップの公開などもまもなく実施予定とのことです。
https://deno.com/blog/deno-in-2021
I’m porting tsc to Go SWCの作者であるkdy1氏により、I’m porting tsc to Goという記事が公開されました。</description></item><item><title>2021/01/17〜2022/01/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/01/23.html</link><pubDate>Sun, 23 Jan 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/01/23.html</guid><description>Deno v1.18.0 Deno v1.18.0がリリースされました。
設定ファイルの自動読み込みがサポート 今までは、設定ファイルを読み込むためには--configの指定が必要でした。
$ deno run --config ./deno.json ./main.ts 今後は、--configが指定されなかった場合、deno.jsonまたはdeno.jsoncという名前の設定ファイルを自動で読み込まれるようになります。
Deno.testのsub-steps APIが安定化 Deno.testでテストケースのグループ化を行うためのsub-steps APIが安定化されました。
今後は--unstableを指定しなくても利用できます。
Deno.test(&amp;#34;nested test case&amp;#34;, async (t) =&amp;gt; { const success = await t.step(&amp;#34;step 1&amp;#34;, async (t) =&amp;gt; { const success = await t.step(&amp;#34;step 1-1&amp;#34;, () =&amp;gt; { throw new Error(&amp;#34;Failed!&amp;#34;); }); if (!success) throw new Error(&amp;#34;Failed!&amp;#34;); await t.step(&amp;#34;step 1-2&amp;#34;, () =&amp;gt; {}); }); if (success) throw new Error(&amp;#34;Failed!</description></item><item><title>2021/01/10〜2022/01/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/01/16.html</link><pubDate>Sun, 16 Jan 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/01/16.html</guid><description>Deno v1.17.3 Deno v1.17.3がリリースされました。
このリリースでは、バグ修正を中心に実施されています。
変更点:
deno installで--allow-allを付与した際に、パーミッションが分解されてスクリプトが作成されないように修正されました。 具体的には、今まではdeno installで--allow-allを指定すると、下記のようなスクリプトが作成されていました。
#!/bin/sh # generated by deno install exec deno run --allow-read --allow-write --allow-net --allow-env --allow-run --allow-ffi --allow-hrtime --quiet --unstable &amp;#39;http://localhost:3000/bin.ts&amp;#39; &amp;#34;$@&amp;#34; この形式でスクリプトが作成されてしまうと、将来的に新しい--allow-*オプションが導入された際などにスクリプトが意図した通りに動作しなくなってしまうため、この修正が実施されました。
deno bundleやdeno compileの--outputオプションにディレクトリを指定できるようになりました。 ディレクトリを指定した際は、バイナリ名は自動で推論されるようです。 deno coverageコマンドで型チェックが行われなくなりました。 あるモジュールが複数のファイルからimportされていた場合などに、適切にカバレッジが収集されなくなる問題が修正されました。 WorkerでDeno.memoryUsage()が使えない問題が修正されました。 lib.deno_core.d.tsのエラーが修正されました。 https://github.com/denoland/deno/releases/tag/v1.17.3
deno_std v0.121.0 deno_std v0.121.0がリリースされました。
変更点:
crypto: MD4がサポートされました。 http/file_server: --quietオプションによりログ出力を無効化できるようになりました。 node: zlibパッケージが実装されました。 node/fs: fs.write()とfs.writeSync()が実装されました。 node/http: ClientRequest#abortが実装されました。また、'response'イベントが発火されるように修正されました。 node/url: url.</description></item><item><title>2021/01/03〜2022/01/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/01/09.html</link><pubDate>Sun, 09 Jan 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/01/09.html</guid><description>Deno v1.17.2 Deno v1.17.2がリリースされました。
バグ修正などが中心に行われています。
主な変更点:
deno testとdeno fmtで拡張子が.mts, .cjs, 及び.ctsのファイルがサポートされました。
JSON modulesを使用するとdeno bundleが失敗する問題が修正されました。
ファイルの末尾に空行があると、全コードが実行されていたとしてもカバレッジが100%にならない問題が修正されました。
SubtleCrypto.exportKeyでAES/HMACキーをJWK形式でエクスポートする際にbase64ではなくbase64urlを使用するように修正されました。
SubtleCrypto.deriveKeyでAES-CTRがサポートされました。
FFI経由で関数を呼ぶ際に不正な形式のパラメータを渡すとプロセスがパニックする問題が修正されました。
以下のような名前付き関数を使用したテストケースでdeno lspのテスト用コードレンズが動かない問題が修正されました。
Deno.test(function name() {}); Deno.addSignalListener()でSIGSEGVなどのシグナルのハンドラを登録しようとした際に、プロセスがパニックする問題が修正されました。
https://github.com/denoland/deno/releases/tag/v1.17.2
deno_std v0.120.0 deno_std v0.120.0がリリースされました。
crypto Tigerハッシュがサポートされました。
uuid version()が実装されました。
node https.request()が実装されました。 process.execPathが実装されました。 vm.runInThisContext()が追加されました。 process.exit()を使うと'exit'イベントが2回発火する問題が修正されました。 fs.readdir()でディレクトリが存在しなかったときにエラーが正しく扱われない問題が修正されました。 child_process.spawnでenvオプションに数値やBoolean型の値を指定できるようになりました。 path/glob joinGlobs()のextendedオプションのデフォルト値がtrueに変更されました。
fs/expand_glob expandGlob()のextendedオプションのデフォルト値がtrueに変更されました。
testing/asserts assertEqualsで0と-0が不一致と判断される問題が修正されました。
https://github.com/denoland/deno_std/releases/tag/0.120.0
設定ファイル(deno.json)の自動読み込みについて 以下のPRでDenoに設定ファイルの自動読み込み機能が実装されています (まだマージはされていません)</description></item><item><title>2021/12/27〜2022/01/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2022/01/02.html</link><pubDate>Sun, 02 Jan 2022 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2022/01/02.html</guid><description>ShadowRealmサポートについて DenoでのShadowRealmのサポートに向けて、deno_coreクレートでレルムの作成をサポートすること提案されています。
その準備として、まずはdeno_coreクレートでリファクタリングなどを進めることが提案されています。
https://github.com/denoland/deno/issues/13239 現在の進捗については上記issueから確認できます。
https://github.com/denoland/deno/issues/13239 https://github.com/tc39/proposal-shadowrealm Je Xia氏とDivy Srivastava氏がDeno Land Inc.にジョイン Je Xia氏(esm.shやAleph.jsの作者)と Divy Srivastava氏(Elsaやautopilot-denoなどの作者)がDeno Land Inc.にジョインしたようです。
現在、Je Xia氏は様々なサーバレス環境で動作させるためにAleph.jsのリライトなどを実施されているようです。
https://twitter.com/jexia_/status/1473582071238987777 https://twitter.com/jexia_/status/1473131210776150017 https://twitter.com/undefined_void/status/1476975389603811328 https://twitter.com/jexia_/status/1473582071238987777 Diplo Rustで書かれたDenoのスクリプトランナー兼パッケージマネージャ
diplo.tomlという設定ファイルでタスクの定義や依存関係の管理などを行うようです。
https://github.com/Tricked-dev/diplo
deno_python DenoからPythonコードを実行するためのモジュール
FFI(Deno.dlopen)を利用してPythonのC APIを実行することで実現されているようです。
https://github.com/denosaurs/deno_python</description></item><item><title>2021/12/20〜2021/12/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/12/26.html</link><pubDate>Sun, 26 Dec 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/12/26.html</guid><description>Deno v1.17.1 Deno v1.17.1がリリースされました。
以下の新機能が追加されています。
deno lspでのテストのデバッグ用コードレンズ deno replでのImport Assertionsのサポート
https://github.com/denoland/deno/releases/tag/v1.17.1
deno_std v0.119.0 deno_std v0.119.0がリリースされました。
std/hash Tigerハッシュのサポートが追加されました。
std/cryptoへのTigerハッシュの追加は次のリリース以降になりそうです (#1749)
std/uuid uuid/mod.tsでvalidate関数が実装されています。
与えられた文字列が正しい形式のUUIDであるかをチェックできます。
https://doc.deno.land/https://deno.land/std@0.119.0/uuid/mod.ts/~/validate
std/node util.debuglog()が利用できるようになりました。
https://github.com/denoland/deno_std/releases/tag/0.119.0
Denoでネットワークインターフェースを取得するためのopが実装 下記issueにて提案されていたネットワークインターフェース(IPアドレス、MACアドレス)を取得するための機能が部分的に実装されました。
Get all the network interfaces in Deno 以下のPRではopのみが実装されており、JavaScript APIはまだ実装されていません。(今のところ、利用するためには--allow-envの指定が必要で、JavaScript APIの名前はDeno.networkInterfacesになりそうです。)
feat(ext/net): add op_network_interfaces リリースされるバージョンはまだ未定ですが、早ければ次のv1.18で入る可能性がありそうです。
Get all the network interfaces in Deno feat(ext/net): add op_network_interfaces</description></item><item><title>2021/12/13〜2021/12/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/12/19.html</link><pubDate>Sun, 19 Dec 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/12/19.html</guid><description>Deno v1.17.0 Deno v1.17.0がリリースされました。
--no-check=remoteのサポート リモートモジュール(http:またはhttps:で始まるモジュール)の型チェックのみが無効化されます。
$ deno run --no-check=remote mod.ts Import assertionsのサポート Import assertionsが実装されました。
現在はJSON modulesのみがサポートされています。
import modules from &amp;#34;./modules.json&amp;#34; assert { type: &amp;#34;json&amp;#34; }; Object.keys(modules); Deno.testのシグネチャの向上 Deno v1.16.4までは下記の形式のみがサポートされていました。
Deno.test(name: string, fn: (t: Deno.TestContext) =&amp;gt; void | Promise&amp;lt;void&amp;gt;): void Deno.test(t: Deno.TestDefinition): void v1.17で以下のオーバーロードが追加され、使い勝手が向上しました。
// オプションを第2引数、テスト関数を第3引数で指定 Deno.test(&amp;#34;foo&amp;#34;, { permissions: { read: false } }, () =&amp;gt; { Deno.cwd(); }); // オプションを第1引数、テスト関数を第2引数で指定 Deno.test({ name: &amp;#34;bar&amp;#34;, ignore: Deno.</description></item><item><title>2021/12/06〜2021/12/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/12/12.html</link><pubDate>Sun, 12 Dec 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/12/12.html</guid><description>Deno.spawnDenoを追加する提案 以下のissueでDeno.spawnDenoというAPIの追加が提案されています
https://github.com/denoland/deno/issues/13041 背景として、まずdenoland/deno#11016でDeno.runとは異なる新しいサブプロセスAPIが提案されました。
このissueをベースに以下のようなAPIを追加するPRが作成されていますが、まだマージはされていないようです。
// 高レベルAPI const cmd = Deno.Command(executable, { args }); const status = await cmd.status(); // 低レベルAPI const cmd = Deno.Command(executable, { args }); const child = cmd.spawn({ stdin: &amp;#34;piped&amp;#34; }); const writer = child.writer.getWriter(); await writer.write(buffer); この変更は今のところv1.17のマイルストーンに入っているため、次のリリースに含まれる可能性がありそうです。
そして、今回提案されているDeno.spawnDenoは、Node.jsにおけるchild_process.forkに相当する機能のようで、上記のAPIをベースにサンドボックス化されたDenoのサブプロセスを起動する機能のようです。
起動する際にWorkerのdeno.permissionsと同様にパーミッションなどの指定をサポートすることが想定されています。
またこの提案に合わせて --no-permission-requestオプションの追加も提案されています。
このオプションが指定された際はDeno.permissions.requestを無効化し、Deno.spawnDeno経由で起動されたプロセスがパーミッションのエスカレーションをできないようにすることを目的としているようです。
https://github.com/denoland/deno/issues/13041
サブステップAPIの安定化について Deno v1.15で導入されたサブステップAPIの安定化が提案されています。
Deno v1.18での安定化が検討されているようです。
Deno.test(&amp;#34;nested test case&amp;#34;, async (t) =&amp;gt; { const success = await t.step(&amp;#34;step 1&amp;#34;, async (t) =&amp;gt; { const success = await t.</description></item><item><title>2021/11/29〜2021/12/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/12/05.html</link><pubDate>Sun, 05 Dec 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/12/05.html</guid><description>Deno v1.16.4 Deno v1.16.4がリリースされました。
このリリースはバグ修正がメインです。
変更点:
SubtleCrypto.encryptで指定されたキーとアルゴリズムが一致しない場合、例外が投げられるようになりました deno testのOpサニタイザーの安定性が向上しました WebSocketStreamの作成後にAbortControllerで中断すると、AbortErrorではなくDeno.errors.BadResourceエラーが発生する問題が修正されました Worker#terminateを呼ぶと、プロセスがまれにパニックする問題が修正されました WorkerのメインモジュールでTop-Level Awaitが使われておりなおかつWorkerが作成後即座にterminateされると発生した模様 https://github.com/denoland/deno/releases/tag/v1.16.4
deno_std v0.117.0 deno_std v0.117.0がリリースされました。
httpモジュールでの新機能の追加やnodeモジュールのNode.jsとの互換性の向上が実施されています。
httpモジュール serveなどの関数でonErrorオプションがサポートされ、handlerで発生したエラーを補足できるようになりました
const handler = (request: Request) =&amp;gt; { throw new Error(&amp;#34;Hello&amp;#34;); }; const servePromise = serve(handler, { addr: &amp;#34;localhost:3000&amp;#34;, onError(_error) { return new Response(&amp;#34;Internal Server Error&amp;#34;, { status: 500 }); }, }); nodeモジュール readline: createInterface()が実装されました process: process.stdin.read()で読み込みが非同期に行われるようになりました buffer: Bufferでbase64エンコーディングがサポートされました.</description></item><item><title>2021/11/22〜2021/11/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/11/28.html</link><pubDate>Sun, 28 Nov 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/11/28.html</guid><description>Denoのこれまでとこれから JSConf JPでのkt3kさんのDenoに関する発表資料が公開されました。
Denoの概要や作られた背景、今後のロードマップなどについて解説されています。
Denoのこれまでとこれから
Deno v1.16.3 Deno v1.16.3がリリースされました。
このリリースはバグ修正がメインです。
ランタイム Deno.watchFsで発火されるイベントに&amp;quot;other&amp;quot;という新しいイベントタイプがサポートされました。 (#12097) 設定ファイル(--config)に記載されたパスが、その設定ファイルからの相対パスによって解決されるようになりました (今まではカレントディレクトリに基づいて解決されていました) --reloadオプションが指定された際は、.tsbuildinfoファイルを読み込まないように修正されました Deno.readFileで/procディレクトリのファイルが読めない問題が修正されました。 すでに停止されたワーカーなどでコードを評価しようとすると、プロセスがパニックする問題が修正されました。 deno lsp initializationOptions.configで指定された設定ファイルのinclude/excludeの設定が考慮されるようになりました。例えば、lint.files.excludeで指定されたファイルはエディタ上で診断結果が表示されなくなります。 @deprecatedコメントを付けた関数などで適切に警告が表示されるようになりました。 設定ファイルやImport mapsが配置されているパスによっては、LSPによる再読込がうまく行われない問題が修正されました。 deno fmt Markdownファイルをフォーマットした際に、&amp;amp;nbsp;などの文字が削除される問題が修正されました。
deno compile 引数としてimportを含まない.jsファイルを指定した場合、ソースコードのバンドルがスキップされるようになりました。
Web Crypto API crypto.subtle.decryptでの復号に失敗した際に、プロセスがパニックする問題が修正されました
https://github.com/denoland/deno/releases/tag/v1.16.3
deno_std v0.116.0 deno_std v0.116.0がリリースされました。
node os.hostname()が実装されました util.inspect()の互換性が向上しました httpパッケージで立てたサーバが不正な形式のリクエストを受信した際に、プロセスがパニックする問題が修正されました fmt printfで少数を表示する際に適切に丸めが行われない問題が修正されました
https://github.com/denoland/deno_std/releases/tag/0.116.0
Drash v2.2.0 Drashのv2.2.0がリリースされました。
GraphQLやETag、レート制限などのサポートが追加されています。
https://github.com/drashland/drash/releases/tag/v2.2.0
NOVAS DenoでSvelteアプリケーションを開発するためのツール
https://github.com/NOVASland/NOVAS</description></item><item><title>2021/11/15〜2021/11/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/11/21.html</link><pubDate>Sun, 21 Nov 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/11/21.html</guid><description>Slackの次世代開発プラットフォームについて Slackの次世代開発プラットフォームが発表されました。
CLIやSDKなどでDenoが採用されるようです。
https://deno.com/blog/slack https://api.slack.com/future Deno v1.16.2 Deno v1.16.2がリリースされました。
このリリースはバグ修正などがメインです。
deno testのsub-steps APIを使った際に、テストレポートに実行されたステップ数が表示されるようになりました。 deno test --docでコードブロックにCRLFが含まれていると、適切にタイプチェックが行われない問題が修正されました リモートモジュールのdynamic importに時間がかかる問題が改善されました。 https://github.com/denoland/deno/releases/tag/v1.16.2
deno_std v0.115.0 deno_std v0.115.0がリリースされました。
std/fsでの破壊的変更やstd/nodeのNode.jsとの互換性向上などが実施されています。
std/fs fs/mod.tsからcopy()やcopySync()がexportされなくなりました (これらのAPIは--unstableに依存するためです)
std/node wasiパッケージが実装されました。 process 下記APIが追加されました process.config process.exitCode process.stdin.setRawMode process.hrtime.bigint process.nextTickのNode.jsとの互換性が向上しました fs 下記APIが追加されました fs.readSync fs.read fs.rm fs.rmSync http Node.jsとの互換性が向上しました。(Server#listen()の引数なしの形式のサポート、ServerResponse#end()で空のレスポンスのサポートなど) util util.isBuffer/util._extend/util.stripVTControlCharactersが追加されました util.isRegExpのNode.jsとの互換性が向上しました events EventEmitterがES6のクラス形式からES5形式の実装に変更されました。(これによりNode.</description></item><item><title>2021/11/08〜2021/11/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/11/14.html</link><pubDate>Sun, 14 Nov 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/11/14.html</guid><description>Deno v1.16.0 Deno v1.16.0がリリースされました。
React 17 JSX Transformのサポート React 17で導入された新しいJSX Transformのサポートが追加されました。
https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/#jsx-factories .jsxまたは.tsxファイル中で@jsxImportSourceを使うことで有効化されます。
/** @jsxImportSource https://esm.sh/preact@10.5.15 */ export function Hello(props) { return ( &amp;lt;div&amp;gt;Hello, {props.name}&amp;lt;/div&amp;gt; ) } また、--configオプションで指定する設定ファイルで有効化することも可能です。
{ &amp;#34;compilerOptions&amp;#34;: { &amp;#34;jsx&amp;#34;: &amp;#34;react-jsx&amp;#34;, &amp;#34;jsxImportSource&amp;#34;: &amp;#34;https://esm.sh/react@17.0.2&amp;#34; } } ※Denoの特性上、&amp;quot;jsx&amp;quot;: &amp;quot;react-jsx&amp;quot;を指定した際は、jsxImportSourceの指定も必要です。
Deno API 新しいシグナルAPI Deno.addSignalListenerとDeno.removeSignalListenerが実装されました (unstable)
const signalListener = () =&amp;gt; { // ... }; Deno.addSignalListener(&amp;#34;SIGTERM&amp;#34;, signalListener); Deno.removeSignalListener(&amp;#34;SIGTERM&amp;#34;, signalListener); この変更に合わせて、既存のDeno.signalは削除されています。</description></item><item><title>2021/11/01〜2021/11/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/11/07.html</link><pubDate>Sun, 07 Nov 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/11/07.html</guid><description>2021年のDeno Advent Calendarが公開 Qiitaで2021年のDeno Advent Calendarが公開されました。
https://qiita.com/advent-calendar/2021/deno
deployctlがアーカイブ Deno Deployのコマンドラインツールであるdeployctlがアーカイブされました。
今後は代わりにDeno CLIを使って開発していくようアナウンスされています。
Deno Deploy Beta 3が来たぞ Freshのアップデート PreactベースのWebフレームワークであるFreshがアップデートされ、MiddlewareとCSPのサポートが追加されました。
Middlewareサポート Middlewareを利用する際は、pagesディレクトリ配下に下記のいずれかの名前のファイルを用意し、handler関数をexportする必要があります。
/_middleware.tsx /_middleware.ts /_middleware.jsx /_middleware.js export async function handler(req: Request, handle: () =&amp;gt; Promise&amp;lt;Response&amp;gt;) { const start = Date.now(); const resp = await handle(); const end = Date.now(); console.log(`${req.method}${req.url}- ${end - start}ms`); return resp; } CSPサポート CSPサポートを有効化したいときは、対象ページでcspオプションにtrueを設定したconfigオブジェクトをexportします。
import type { PageConfig } from &amp;#34;.</description></item><item><title>2021/10/25〜2021/10/31の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/10/31.html</link><pubDate>Sun, 31 Oct 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/10/31.html</guid><description>Deno v1.15.3 Deno v1.15.3がリリースされました。
このリリースはバグ修正がメインです。
変更点:
TLS接続関連のAPIで発生することのあるプロセスのハングや大きなデータの書き込みがうまくいかない問題などが修正されました Deno.emitでalready borrowed: BorrowMutErrorが発生する問題が修正されました globalThis経由でFormDataなどのWeb APIを参照しようとすると型エラーが発生する問題が修正されました など
https://github.com/denoland/deno/releases/tag/v1.15.3
deno_std v0.113.0 deno_std v0.113.0がリリースされました。
変更点:
collections: runningReduceに渡すreducer関数にcurrentIndexが渡されるようになりました
testing/asserts: assertIsErrorが追加されました
node/module: require()でnode:プレフィックスがサポートされました
const EventEmitter = require(&amp;#34;node:events&amp;#34;); node/module: Common JSモジュールの中でimport/exportを使用した際の警告メッセージが親切になりました
node/url: url.urlToHttpOptionsが実装されました
node/os: os.archの返却値がNode.jsに一致するように修正されました
node/events: onとemitメソッドを非EventEmitterオブジェクトに束縛して実行できるようになりました
http/file_server: ファイル一覧ページでパンくずリストが表示されるようになりました
http/file_server: ファイル名に%記号などが含まれている場合、そのファイルに適切にアクセスできない問題が修正されました
http/file_server: 200や206以外のレスポンスを返却する際に生じるリソースリークが修正されました
http/file_server: エラーログに色がつくようになりました</description></item><item><title>2021/10/18〜2021/10/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/10/24.html</link><pubDate>Sun, 24 Oct 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/10/24.html</guid><description>Deno v1.15.2 Deno v1.15.2がリリースされました。
主な変更点:
Node.js互換モード(--compat)でCommon JS形式のモジュールの実行などがサポートされました。
deno runコマンドの引数としてCommon JS形式のファイルを直接指定できます
const EventEmitter = require(&amp;#34;events&amp;#34;); const emitter = new EventEmitter(); emitter.on(&amp;#34;foo&amp;#34;, console.log); emitter.emit(&amp;#34;foo&amp;#34;, 1); $ deno run --unstable --compat --allow-read main.js TypeScriptのallowSyntheticDefaultImportsオプションがデフォルトで有効化されるようになりました
https://github.com/denoland/deno/releases/tag/v1.15.2
deno_std v0.112.0 deno_std v0.112.0がリリースされました。
大きな変更点として、deno_std/nodeでexpressのHello Worldコードを動かすための対応やpackage.jsonのimportsやexportsのサポートなどが実施されています。
変更点:
collections: joinToStringが追加されました node/module: package.jsonのimportsやexportsフィールドのサポートが追加されました node/buffer: Bufferをnewなしで呼べるようになりました node/events: setMaxListenersが実装されました node/process: process.mainModuleが実装されました node/process: process.versionの値がDenoのバージョンからNode.jsのstableバージョンに変更されました node/http: ServerResponseとIncomingMessageでストリーミングがサポートされました node/url: formatが実装されました node/os: devNull定数が追加されました node/global: node/global.</description></item><item><title>2021/10/11〜2021/10/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/10/17.html</link><pubDate>Sun, 17 Oct 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/10/17.html</guid><description>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オプションがサポートされました テスト 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の内部でエラーが発生した際に返却されるエラーが改善されました 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.</description></item><item><title>2021/10/04〜2021/10/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/10/10.html</link><pubDate>Sun, 10 Oct 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/10/10.html</guid><description>Deno v1.14.3 Deno v1.14.3がリリースされました。
このリリースでは、バグ修正やパフォーマンスチューニングを中心に実施されています。
変更点:
fetchで不正な形式のヘッダを指定するとプロセスがパニックする問題が修正されました Deno.listenで抽象ソケットアドレスを指定するとプロセスがパニックする問題が修正されました REPLでglobalThisに代入するとプロセスがパニックする問題が修正されました Workerのmessageハンドラで投げられたエラーが報告されない問題が修正されました Workerのdeno.permissions.envオプションに配列を渡せるようになりました Deno.testでAggregateErrorが投げられた際の出力が改善されました Opの実行、RequestやResponseの作成、Headers.prototype.appendなどが最適化されました https://github.com/denoland/deno/releases/tag/v1.14.3
deno_std v0.110.0 deno_std v0.110.0がリリースされました。
std/nodeへの機能追加が実施されています。
変更点:
node/buffer: BufferでreadUIntLE及びreadUIntBEが実装されました node/crypto: scrypt, scryptSync, timingSafeEqual, 及びrandomUUIDが実装されました。 node/stream/web: 下記クラスが追加されました。 ReadableByteStreamController TransformStreamDefaultController ByteLengthQueuingStrategy CountQueuingStrategy TextEncoderStream TextDecoderStream node/os: tmpdirが実装されました https://github.com/denoland/deno_std/releases/tag/0.110.0
Freshのアップデート DenoのWebフレームワークであるFreshがアップデートされました。
&amp;lt;Head&amp;gt;コンポーネントがサポートされ、&amp;lt;head&amp;gt;配下に要素を追加できるようになっています。
/** @jsx h */ import { h, Head } from &amp;#34;../deps.ts&amp;#34;; export default function Home() { return ( &amp;lt;div&amp;gt; &amp;lt;Head&amp;gt; &amp;lt;title&amp;gt;Hello&amp;lt;/title&amp;gt; &amp;lt;/Head&amp;gt; &amp;lt;h2&amp;gt;Home&amp;lt;/h2&amp;gt; &amp;lt;/div&amp;gt; ); } https://github.</description></item><item><title>2021/09/27〜2021/10/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/10/03.html</link><pubDate>Sun, 03 Oct 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/10/03.html</guid><description>DenoのNode.js互換モードについて denoland/deno#12295のissueで、DenoにNode.jsの互換モードを提供することが提案されています。
Denoを実行する際に--compatオプションを指定すると、Node.jsの組み込みモジュールの読み込みが有効化されるように提案されています。
$ deno run --compat main.mjs こちらの機能の実装はdenoland/deno#12293のPRにて進行中です。
今のところ、Import mapsとdeno_std/nodeを併用することで、Node.jsの組み込みモジュールを読み込めるように実装されているようです。
https://github.com/denoland/deno/issues/12295 https://github.com/denoland/deno/pull/12293 Deno v1.14.2 Deno v1.14.2がリリースされました。
このリリースはバグ修正やパフォーマンスの最適化などがメインです。
主な変更点:
deno fmtやdeno testで.mkd, .mkdn, .mdwn, .mdown, 及び.markdownの拡張子のファイルがサポートされました 一度取り消しされたパーミッションが再び許可されないように修正されました Deno.HttpConnがすでに閉じられている場合にrespondWithを呼ぶと、プロセスがパニックする問題が修正されました 祖先のワーカーが閉じられたときまたは終了したときに、合わせて子孫のワーカーも閉じるまたは終了するように修正されました 祖先のワーカーが終了したもののその子孫に生きているワーカーが存在する場合、プロセスがパニックする問題が修正されました WindowsでDeno.killがサポートされました Request/Response/Eventオブジェクトの生成、Headersオブジェクトの内部実装、パーミッションチェックなどが最適化されました https://github.com/denoland/deno/releases/tag/v1.14.2
deno_std v0.109.0 deno_std v0.109.0がリリースされました
変更点:
node: stream/webの部分的なサポートが追加されました node/events: EventEmitter.callを呼べない問題が修正されました node/module: .mjsファイルをrequireできないように修正されました https://github.com/denoland/deno_std/releases/tag/0.109.0
lint.deno.landがDeno Deployへ移行 deno_lintの公式サイトであるlint.deno.landがDeno Deployへ移行されました。
それに合わせて、内部実装がdext.ts+Tailwind CSSからFresh+Twindへ移行されています。
DenoやDeno Deployなどでフロントエンド開発を行う際に参考になるかもしれないため、興味のある方はソースコードも見てみるとよいかもしれません。
https://github.com/denoland/deno_lint/pull/905</description></item><item><title>2021/09/20〜2021/09/26の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/09/26.html</link><pubDate>Sun, 26 Sep 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/09/26.html</guid><description>Deno v1.14.1 Deno v1.14.1がリリースされました。
このリリースはバグ修正がメインです。
変更点:
非async関数でfor-awaitを使用したときのエラーメッセージが改善されました v1.14.0で追加されたファイルロックAPIの型定義がlib.deno.ns.d.tsからlib.deno.unstable.d.tsに移動しました deno docでドキュメントを表示する際に、—unstableが必要になるなどの影響があります. (例: deno doc --builtin --unstable Deno.flock) スタックトレース中のData URLの表示が改善されました HMACキーをJSON Web Key形式でエクスポートできない問題が修正されました Deno.readFileの最適化 https://github.com/denoland/deno/releases/tag/v1.14.1
deno_std v0.108.0 deno_stdのv0.108.0がリリースされました。
変更点:
collections: maxWithとminWithに渡した配列にundefinedが含まれていた場合、要素の並び順によって結果が異なってしまう問題が修正されました
collections: maxBy, minBy, 及びsortByのselector引数でbigintやDateを返却できるように型定義が修正されました
testing/asserts: assertThrowsやassertRejectsでコールバックがサポートされました
import { assertEquals, assertRejects } from &amp;#34;https://deno.land/std@0.108.0/testing/asserts.ts&amp;#34;; await assertRejects(() =&amp;gt; { return Promise.reject(new Error(&amp;#39;foo&amp;#39;)); }, (error: Error) =&amp;gt; { assertEquals(error.message, &amp;#39;foo&amp;#39;); }); https://github.</description></item><item><title>2021/09/13〜2021/09/19の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/09/19.html</link><pubDate>Sun, 19 Sep 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/09/19.html</guid><description>Deno v2のリリースプランについて Deno v2のリリースプランが公開されました。
https://github.com/denoland/deno/issues/12110 10/12にDeno v1.15, 11/22にDeno v2がリリース予定とのことです
また、GitHub Discussionsにて、v2で実施予定の追加の変更点やDenoのエコシステムの拡大に関する議論内容などについて公開されています。
追加の変更点(今後、内容が変わる可能性があります！):
NotCapableエラーの導入 DenoのパーミッションエラーとOSによって発生したパーミッションエラーを区別できるようにすることが目的のようです Deno.read()のDeno.write()などの削除 Import AssertionsとJSON Modules opメトリクスのリファクタリング/整頓 Deno 2.0 Release Plan Design Meeting 2021-09-16 Deno v1.14.0 Deno v1.14.0がリリースされました。
TypeScript v4.4への更新、deno fmtやdeno lintで設定ファイルがサポート、Web Crypto APIの強化、Deno.upgradeWebSocketの安定化、URLPatternの実装、シグナルAPI(unstable)への破壊的変更などが実施されています。
また、magurotunaさんによる日本語の紹介記事が公開されています(https://zenn.dev/magurotuna/articles/deno-release-note-1-14-0)
変更点:
deno fmt/deno lint deno fmt でJSDocコメントへの基本的なサポートが追加されました deno fmtとdeno lintの挙動を設定ファイルやCLIオプションで変更できるようになりました ネイティブHTTPサーバ Deno.upgradeWebSocketが安定化されました Deno.upgradeWebSocket でUpgradeヘッダの大文字・小文字の違いを区別しないように修正されました ネイティブHTTPサーバでリクエストボディが消費されなかった場合に発生するリソースリークが修正されました FFI Deno.</description></item><item><title>2021/09/06〜2021/09/12の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/09/12.html</link><pubDate>Sun, 12 Sep 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/09/12.html</guid><description>Deno 2.0のスコープについて GitHub DiscussionsにてDeno 2.0のスコープやリリース予定時期について公開されました。
https://github.com/denoland/deno/discussions/11972 現時点では、今年の11月に2.0のリリースが検討されているようです。
Deno 2.0に向けて検討中の機能の例 (今後、変更される可能性がありますので参考程度に&amp;hellip;) Deno.ReaderなどのJSのみで実装されたIO関連のAPIを削除(https://github.com/denoland/deno/issues/9795) 一部のAPIはすでにstd/io/util.tsなどへ移動されています デフォルトでのWorker内でDeno名前空間の有効化 TypeScriptのuseUnknownInCatchVariablesを有効化 Deno.customInspectを削除 デフォルトで型チェックをスキップする(https://github.com/denoland/deno/issues/11340) --configオプションを削除 (https://github.com/denoland/deno/discussions/7732) デフォルトでのロックファイルの生成・検証 localStorageや将来のIndexedDBなどの追加に備えたInternal Originの導入 TypeScriptのcompilerOptions.jsxFactoryとcompilerOptions.jsxFragmentFactoryのデフォルト値をそれぞれhと Fragmentに変更 (https://github.com/denoland/deno/issues/11186) デフォルトで外部のTypeScriptコードへの型エラーなどを報告させない (https://github.com/denoland/deno/issues/11970) dynamic importとWorker向けに--allow-importの導入 (https://github.com/denoland/deno/issues/8266) https://github.com/denoland/deno/discussions/11972
vercel-deno v1.0.0 Vercel serverless functionsのDenoランタイム
apiディレクトリに各フレームワークなどを使用したサンプルコードが配置されています。
https://github.com/vercel-community/vercel-deno/releases/tag/1.0.0
deno_mongo v0.26.0 deno_mongo v0.26.0がリリースされました。
変更点:
Collection#insertが非推奨化されました (代わりにinsertOneやinsertManyなどの使用が推奨されます) Bson.ObjectIdの型定義が削除されました (Bson.ObjectID の方は残っています) MongoClient.buildInfoがサポートされました (https://docs.mongodb.com/manual/reference/command/buildInfo/) https://github.com/denodrivers/deno_mongo/releases/tag/v0.26.0</description></item><item><title>2021/08/30〜2021/09/05の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/09/05.html</link><pubDate>Sun, 05 Sep 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/09/05.html</guid><description>Aleph.js v0.3.0-beta.9 Aleph.jsのv0.3.0-beta.9がリリースされました。
主な変更点として、サーバから返却されるCache-Controlの値がpublic, max-age=0, must-revalidateに変更されています。
また、このリリースに合わせてWindi CSS向けのプラグインが公開されています (https://github.com/ije/aleph-plugin-windicss)
https://github.com/alephjs/aleph.js/releases/tag/v0.3.0-beta.9 https://github.com/ije/aleph-plugin-windicss Deno Deploy Beta2 Deno DeployのBeta2がリリースされました。
変更点:
Deno.readFileによって、デプロイに紐づくGitHubリポジトリ内のファイルの読み込みがサポートされました Deno.listenとDeno.serveHttpがサポートされました インスタンスがクラッシュした際のデバッグを容易にするため、クラッシュレポートが追加されました https://deno.com/blog/deploy-beta2 Deno Deploy Beta 2が来たぞ deployctl v0.4.0 Deno Deployのコマンドラインツールであるdeployctlのv0.4.0がリリースされました。
このリリースでは、コマンドの実行時に新バージョンを通知する機能が実装されています。
また、現時点では、このバージョンをインストールする際に--unstableが必要になります。
https://github.com/denoland/deployctl/releases/tag/0.4.0
Ultra UltraというDeno+ReactベースのWebフレームワークが公開されました。
まだメジャーリリースはされていませんが、以下のような特徴があるようです。
ReactDOM.renderToReadableStreamベースのSSR Viteなどと同様のオンデマンドでのコード変換 (SWCやesbuildがベース) SWR向けのキャッシュプロパイダを提供 /examplesディレクトリに使用例があるため、もし興味がありましたら見てみるとよいかもしれません。
https://github.com/exhibitionist-digital/ultra</description></item><item><title>2021/08/23〜2021/08/29の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/08/29.html</link><pubDate>Sun, 29 Aug 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/08/29.html</guid><description>Deno v1.13.2 Deno v1.13.2がリリースされました。
このリリースではバグ修正を中心に行われています。
変更点:
SubtleCrypto#exportKeyでHMACがサポートされました deno testの--jobsオプションで0を指定するとエラーが発生するように修正されました Deno.dlopenに不正な型の引数を渡した際に、プロセスがパニックする問題が修正されました リソースリークを防止するために、Deno.HttpConn#closeを実行した際に、該当のDeno.HttpConnオブジェクトを経由して割り当てられた全てのリソースが開放されるように修正されました deno lspでlanguageIdとしてjsxとtsxがサポートされました (Nova などのエディタが標準のlanguageIdであるjavascriptreactやtypescriptreactではなく、jsxやtsxを使用するために対応されたようです) deno lspがサポートしないlanguageIdが指定された場合、エディタ上で診断が表示されないように修正されました (deno lspが解釈できないlanguageIdをエディタが指定した場合、Denoはそのファイルをtypescriptとして解釈していたため、誤って診断が表示されてしまう問題があったようです) クラシックWorkerでsetTimeoutなどのAPIを使用するとプロセスがクラッシュする問題が修正されました URLやURLSearchParamsのパフォーマンスが向上しました deno_std v0.106.0 deno_std v0.106.0がリリースされました。
変更点:
async: delay関数でAbortSignalを使用した中断がサポートされました collection: findLastIndexでマッチする要素が見つからなかったときに-1ではなくundefinedが返却されるように修正されました testing: assertEqualsで、一方のオブジェクトにはconstructorが設定されているがもう一方には設定されていない場合に、保持しているプロパティが一致すればそれらのオブジェクトは同一と判断されるように変更されました node/buffer: 定数などのいくつかのAPIがexportされました node/perf_hooks: PerformanceEntryがdefault exportされるオブジェクトに追加されました https://github.com/denoland/deno_std/pull/1155 https://github.com/denoland/deno_std/releases/tag/0.106.0 MDNでDenoがサポートされました MDN Web Docsの「ブラウザーの互換性」欄にDenoの情報が表示されるようになりました。
あるWeb APIがDenoのどのバージョンからサポートされているかを確認することができます。
例)
https://developer.mozilla.org/ja/docs/Web/API/URL https://developer.mozilla.org/ja/docs/Web/API/TextDecoder https://deno.com/blog/deno-on-mdn
Aleph.js v0.3.0 betaバージョン Next.jsライクなフレームワークであるAleph.jsのv0.3.0 betaバージョンが公開されました。
様々な機能の追加やパフォーマンスの向上などが図られています。
主な変更点:
新しいプラグインシステムの提供 (Aleph.jsのランタイムを拡張し、コードの変換プロセスに介入したりカスタムファイルタイプのサポートなどを追加できる仕組み) deno_std/http/serverからネイティブHTTP(Deno.serveHttp)への移行 APIミドルウェアがサポートされました。api/_middlewares.</description></item><item><title>2021/08/16〜2021/08/22の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/08/22.html</link><pubDate>Sun, 22 Aug 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/08/22.html</guid><description>Deno v1.13.1 Deno v1.13.1がリリースされました。
deno testやWeb Crypto APIのバグ修正などがメインです。
変更点:
deno test --docでMarkdownファイルを引数に指定できるようになりました deno test --docで以下のようにignoreが指定されていると、そのコードブロックが無視されるようになりました \`\`\`ts ignore ... \`\`\` deno testでloadイベントが発火しない問題が修正されました localStorageへの書き込みのスループットがおよそ150倍高速化されました deno lintやREPLにおけるハイライトが改善されました SubtleCryptoのimportKeyやgenerateKeyメソッドのextractable引数でfalseがサポートされました SubtleCrypto#importKeyでArrayBufferをキーとして渡せるようになりました WebAssembly.instantiateStreamingに渡されたResponseオブジェクトにContent-Typeが設定されていなかった場合のエラーメッセージが改善されました https://github.com/denoland/deno/releases/tag/v1.13.1
deno_std v0.105.0 deno_std v0.105.0がリリースされました。
変更点:
bytes: containsがincludesにリネームされました bytes: indexOfとincludesでfromIndex引数がサポートされました collections: intersectで先頭の配列における重複が適切に取り扱われない問題が修正されました https://github.com/denoland/deno_std/releases/tag/0.105.0
deno_doc v0.11.0 deno_doc v0.11.0がリリースされました。
このリリースに合わせて、JavaScriptから利用できるAPIが公開されています。
https://deno.land/x/deno_doc@v0.11.0 https://github.com/denoland/deno_doc/releases/tag/v0.11.0
Oak v9.0.0 Oak v9.0.0がリリースされました。
Cookie関連のAPIへの破壊的変更やDeno Deployサポートの改善などが実施されています。
変更点:
(破壊的変更) Cookieの署名にWeb Crypto APIが使用されるようになった関係でCookiesオブジェクトのgetやsetなどのメソッドが非同期になりました (Context.</description></item><item><title>2021/08/09〜2021/08/15の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/08/15.html</link><pubDate>Sun, 15 Aug 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/08/15.html</guid><description>Deno v1.13.0 Deno v1.13.0がリリースされました。
大きな変更点として、ネイティブHTTPサーバ(Deno.serveHttp)の安定化やTLS関連の機能の強化、プラグインシステムの廃止やFFIの導入などが行われています。
また、このリリースに合わせて、magurotunaさんによる日本語の紹介記事も公開されています:
Deno 1.13.0 がリリースされたので新機能や変更点の紹介 変更点:
Deno.serveHttpが安定化されました Deno.upgradeWebSocketで返却されるオブジェクトのwebsocketプロパティがsocketにリネームされました Deno.upgradeWebSocketで返却されたWebSocketオブジェクトのcloseメソッドを呼ぶ際に、任意のコードを指定できるようになりました WebSocketStreamが実装されました (unstable) プラグインシステムが削除され、代わりにFFIが導入されました (unstable) --unsafely-treat-insecure-origin-as-secureオプションがサポートされ、TLS証明書の検証を無効化できるようになりました Deno.connectTlsでクライアント認証用の証明書と秘密鍵を渡せるようになりました DENO_TLS_CA_STORE環境変数が導入され、TLS接続時にシステムの証明書ストアを使用できるようになりました Deno.runでclearEnvオプションがサポートされ、子プロセスの環境変数をクリアできるようになりました (unstable) Deno.writeFileでAbortSignalがサポートされ、書き込みを中断できるようになりました Deno.permissions配下のAPIが引数としてURLオブジェクトをサポートしました Deno.systemCpuInfoが削除され、代わりにnavigator.hardwareConcurrencyがサポートされました Deno.errors配下の各エラーがErrorクラスを継承するように修正されました SubtleCrypto#importKey/exportKeyが実装されました(HMACキーのみサポート) SubtleCrypto#verifyでHMACキーがサポートされました --locationが指定された場合は、fetchでHTTPリクエストを送信する際にOriginヘッダが設定されるようになりました deno test --docでMarkdownファイル内のtsコードブロックの型チェックがサポートされました structuredCloneが実装されました initializeリクエスト発生時にinitializationOptions.cacheを指定することで、deno lspがDENO_DIRとして認識するディレクトリを指定できるようになりました deno lspでリファクタリングコードアクションがサポートされました —evalオプションがサポートされ、REPL起動時に指定したコードを実行できるようになりました REPLがコードに含まれるexport宣言を無視されるようになりました Import mapsでWindows形式のファイルパスがサポートされました deno docコマンドで不正なURLを指定するとプロセスがパニックする問題が修正されました Deno 1.13.0 がリリースされたので新機能や変更点の紹介 https://deno.com/blog/v1.13 deno_std v0.104.0 deno_stdのv0.104.0がリリースされました。
新機能としてcryptoモジュールの追加やcollectionsモジュールのさらなる拡張などが行われています。
また、assertThrows/assertThrowsAsyncのシグネチャの変更やassertThrowsAsyncの非推奨化も実施されています。
変更点:
標準のCrypto/SubtleCryptoを拡張することを目的としてcryptoモジュールが追加されました collections: deepMerge, mapNotNullish, findLastIndex, sumOf, associateBy, 及びsortBy関数が実装されました testing: assertThrowsの戻り値がErrorからvoidに変更されました testing: assertThrowsAsyncの戻り値がPromise&amp;lt;Error&amp;gt;からPromise&amp;lt;void&amp;gt;に変更されました testing: assertRejectsが追加され、代わりにassertThrowsAsyncが非推奨化されました http/file_server: If-Modified-Sinceヘッダに応じて304を返却するようになりました node: assert/strict, path/posix, path/win32, fs/promises, stream/promises, timers/promises, util/types, 及びperf_hooksモジュールが追加されました async: deadlineに渡したPromiseがすでにrejectされていた場合、プロセスがクラッシュする問題が修正されました Deno標準ライブラリ0.</description></item><item><title>2021/08/02〜2021/08/08の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/08/08.html</link><pubDate>Sun, 08 Aug 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/08/08.html</guid><description>deno-sqlite v3.0.0がリリース deno-sqliteのv3.0.0がリリースされました。
このリリースではRowsタイプへの破壊的変更やパフォーマンスの向上などが実施されています。
変更点:
DB#queryメソッドで型パラメータがサポートされました DB#queryメソッドの戻り値がRowsタイプからRowタイプの配列へ変更されました DB#prepareQueryメソッドで型パラメータがサポートされました DB#prepareQueryの戻り値であるPreparedQueryタイプが大幅に変更され、より詳細にクエリの実行方法を制御できるようになりました v3.0.0 v2.5.0 DB#queryEntriesメソッドが追加され、問い合わせ結果をオブジェクトの配列として取得できるようになりました localtime修飾子がローカルのタイムゾーンを参照するように修正されました https://github.com/dyedgreen/deno-sqlite/releases/tag/v3.0.0
Velociraptor v1.1.0がリリース DenoのタスクランナであるVelociraptorのv1.1.0がリリースされました。
変更点:
スクリプトを実行する際に--option=value形式の引数が—-option value形式に正規化されてしまう問題が修正されました vrコマンドを引数なしで実行した際に、Composite scriptsのdescプロパティで定義した説明文が表示されるように修正されました https://github.com/jurassiscripts/velociraptor/releases/tag/1.1.0
deno_sdl2 SDL2へのバインディング
まだ開発途中のようですが、Denoのプラグインシステム(Deno v1.13.0にて削除される予定です)に依存せず、Canvas互換のAPIを介してRustで実装されたTCPサーバとやり取りしているようです。
https://github.com/littledivy/deno_sdl2</description></item><item><title>2021/07/26〜2021/08/01の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/08/01.html</link><pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/08/01.html</guid><description>Deno v1.12.2がリリース Deno v1.12.2がリリースされました。
今回のリリースでは、主にバグ修正をメインに実施されています。
変更点:
deno lspのdeno/virtualTextDocumentメソッドでdeno:/status.mdを表示する際に、Workspace Settingsセクションが表示されるようになりました --inspectオプションで表示されたデバッグ用URLに対してHTTPなどの非WebSocketリクエストを送信すると、Denoがクラッシュする問題が修正されました Deno.connectTls及びDeno.startTlsで--certオプションで指定した証明書が使用されるように修正されました deno infoコマンドでX-TypeScript-Typesヘッダなどで読み込まれたTypeScriptファイルの情報も表示されるようになりました deno testコマンドの引数に指定したモジュールが、メインモジュールとして読まれる問題が修正されました(import.meta.mainがtrueに設定されてしまう) GCのタイミングで不要になったResponseオブジェクトのボディに紐づくリソースが開放されるようになりました Deno.upgradeWebSocketで、リクエストのConnectionヘッダにカンマ区切りで複数の値が含まれていた場合も、適切に動作するように修正されました Deno.upgradeWebSocketがリクエストのConnectionヘッダの大文字・小文字を区別しなくなりました deno lspでX-TypeScript-Typesによって型定義が提供されるモジュールとimport typeやexport typeなどを併用していると、ホバーなどがうまく機能しなくなる問題が修正されました deno lspでImport mapsファイルが更新された際に、依存関係や診断内容が再計算されない問題などが修正されました https://github.com/denoland/deno/releases/tag/v1.12.2
deno_std v0.103.0がリリース deno_std v0.103.0がリリースされました
変更点:
async/deferred: Deferredオブジェクトにstateプロパティが追加され、Promiseの現在の状態を問い合わせられるようになりました http/file_server: ETagとIf-None-Matchヘッダへのサポートが追加されました http/file_server: Rangeヘッダがサポートされました encoding/base64url: 不正な形式のbase64url文字列が渡された際に、TypeErrorを投げるように修正されました encoding/toml: TOMLパーサが書き直され、ネストされたテーブルなどが適切に取り扱われるように修正されました encoding/yaml: parseAll関数の型定義が改善されました testing/asserts: assertThrowsAsyncのエラーメッセージで実際に投げられたエラーではなく、常にErrorクラスが表示される問題が修正されました testing/asserts: assertEqualsがクラスの違いを考慮するように修正されました https://github.com/denoland/deno_std/releases/tag/0.103.0
deno-sqlite v2.5.0がリリース deno-sqliteのv2.5.0がリリースされました。
変更点:
DBクラスのコンストラクタにoptionsパラメータが追加され、データベースを開く際の挙動を詳細に制御できるようになりました PreparedQueryタイプにcolumnsメソッドが定義されました Deno.fdatasyncSyncを使って、SQLiteがファイルのデータを適切にディスクに同期できるようになりました https://github.com/dyedgreen/deno-sqlite/releases/tag/v2.5.0
depcheck depcheckはソースコード中の未使用の依存関係を検出するためのDenoモジュールです
https://github.com/ebebbington/depcheck
deno-github-contributions-api deno-github-contributions-apiは、Deno Deployで動作するGitHub上でのコントリビューション数を取得するためのAPIです。</description></item><item><title>2021/07/19〜2021/07/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/07/25.html</link><pubDate>Sun, 25 Jul 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/07/25.html</guid><description>Deno v1.12.1がリリース Deno v1.12.1がリリースされました。このリリースではバグの修正が中心に行われています。
変更点:
crypto.getRandomValuesでBigInt64ArrayとBigUint64Arrayがサポートされました ネイティブHTTPサーバで、Cookieヘッダの値と名前の組が、セミコロンではなくコンマ区切りで設定されてしまう問題が修正されました FileReader#abort()が現在の読み込み操作のみを中止するように修正されました Array#atやString#atなどの型定義が追加されました https://github.com/denoland/deno/releases/tag/v1.12.1
deno_std v0.102.0がリリース deno_std v0.102.0がリリースされました。
新規モジュールとして、std/collectionsが追加されています。
変更点:
新しくstd/collectionsモジュールが追加されました encoding/toml: コメントのみを含む行で#の前に空白が含まれていると、それがコメントではなくキーとして解析されてしまう問題が修正されました encoding/toml: クォートや空白などを含むキーが仕様通りに解析されない問題が修正されました hash: Hash#updateでUint8Array以外のTypedArrayが適切に取り扱われない問題が修正されました https://github.com/denoland/deno_std/releases/tag/0.102.0 Deno標準ライブラリ0.102.0で追加されたcollectionsの紹介 Oak v8.0.0がリリース Oak v8.0.0がリリースされました。
このリリースには破壊的変更が含まれます。
変更点:
Deno v1.12.0で実装されたDeno.upgradeWebSocket()ベースのWebSocketサポートが追加されました それに伴い、Context.#upgradeが標準のWebSocketオブジェクトを返却するように変更されています (破壊的変更) Applicationオブジェクトを作成する際に、contextStateオプションによってContext.stateが作成される際の挙動を制御できるようになりました。 Context#sendでcontentTypesオプションがサポートされ、Content-Typeヘッダの内容をカスタマイズできるようになりました。 デフォルトで、補足されなかった例外が標準エラーに出力されるようになりました (この挙動はlogErrorsオプションにfalseを設定することで無効化できます) https://github.com/oakserver/oak/commit/9f7dad2144f41c6bdf098577351f7b36554ee4ba
deno_mongo v0.24.0がリリース DenoのMongoDBクライアントであるdeno_mongoのv0.24.0がリリースされました。
変更点:
Collection#dropIndexesが実装されました Collection#findAndModifyが実装されました https://github.com/denodrivers/deno_mongo/releases/tag/v0.24.0</description></item><item><title>2021/07/12〜2021/07/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/07/18.html</link><pubDate>Sun, 18 Jul 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/07/18.html</guid><description>Deno v1.12.0のリリース Deno v1.12.0がリリースされました。
変更点:
MessageChannelとMessagePortがサポートされました Deno名前空間のObject.freezeによる凍結が解除され、configurableになりました WebAssembly.instantiateStreamingがサポートされました tsconfig.jsonやDeno.emitでtypesオプションがサポートされました /// &amp;lt;reference types=&amp;quot;...&amp;quot; /&amp;gt;がサポートされました SharedArrayBufferのworker間での共有がサポートされました SubtleCrypto.generateKeyとSubtleCrypto.sign、SubtleCrypto.verifyがサポートされました Deno.createHttpClientでproxyオプションがサポートされました ネイティブHTTPサーバでWebSocketがサポートされました (Deno.upgradeWebSocket) Denoのデバッグ機能(--inspect/--inspect-brk)が改善され、コンソールへの出力がDevToolsとターミナルの両方に出力されるようになりました deno lspのtextDocument/hoverメソッドで依存モジュールの情報を表示できるようになりました REPLの補完の挙動が改善されました REPLでimport宣言がサポートされました REPLでTypeScriptがサポートされました REPLなどでEventやRequestなどのクラスのprototypeを評価しようとすると、プロセスがクラッシュする問題が修正されました deno testで--shuffleと--fail-fast=&amp;lt;N&amp;gt;オプションがサポートされました DedicatedWorkerGlobalScopeのイベントハンドラが仕様通りに動作するように修正されました Deno.ppidとDeno.memoryUsageがstableになりました console.tableの出力が改善されました fetch APIでユーザが指定したHOSTヘッダが無視されるようになりました fetch APIでOPTIONSリクエストを送信したときに、レスポンスボディが設定されるように修正されました performance APIのWeb標準との互換性が向上しました SignalStream#disposeを呼んだ後にもSignalStream#thenで登録したコールバックが呼ばれてしまう問題が修正されました Deno.copyが非推奨化されました 循環依存の関係にある複数のモジュールを平行で動的importすると、プロセスがクラッシュする問題が修正されました https://github.com/denoland/deno/releases/tag/v1.12.0 https://deno.com/blog/v1.12 Deno 1.12.0 がリリースされたので新機能や変更点の紹介 deno_std v0.101.0のリリース deno_stdのv0.101.0がリリースされました。
このリリースにはいくつかの破壊的変更が含まれています。
変更点:
encoding/hex: encodedLen, encodeToString, decodedLen, decodeStringが削除され、errInvalidByteとerrLengthが非公開になりました (破壊的変更) mime/multipart: MultipartReader#readFormの戻り値であるMultipartFormDataの各メソッドが配列を返却するように変更されました。それに合わせて、fileとvalueメソッドがそれぞれfilesとvaluesにリネームされています (破壊的変更) uuid/v4: generate関数が非推奨化されました (Web Crypto APIが実装されたため) uuid/v5: Web Crypto APIの実装に合わせ、generate関数のシグネチャが変更されました (破壊的変更) async: deadline関数とdebounce関数が追加されました encoding/toml: 不適切な形式の文字列が適切に取り扱われるよう修正されました encoding/toml: stringifyで複数の型が混在した配列が適切にシリアライズされない問題が修正されました encoding/toml: 不適切な空白文字が含まれていた際に、例外が投げられるように修正されました hash: BLAKE3ハッシュ関数がサポートされました http/cookie: Domain属性に不適切な形式の値が設定されていないかチェックされるようになりました http/cookie: deleteCookieでPath属性とDomain属性の指定がサポートされました http/cookie: setCookieでmaxAgeオプションに0を指定するとエラーが発生する問題が修正されました io/bufio: readLines関数で、EOFに達した際に余分な空文字列がyieldされる問題が修正されました io/util: Deno v1.</description></item><item><title>2021/07/05〜2021/07/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/07/11.html</link><pubDate>Sun, 11 Jul 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/07/11.html</guid><description>Denoのデフォルトの型チェックの挙動について DenoのGitHubリポジトリにて、Denoのデフォルトの型チェックの挙動を変更することが検討されています。
https://github.com/denoland/deno/issues/11340 このissueでは、以下のような方向性が示されています。
DenoのTypeScriptによる型チェックをデフォルトで無効化したい (現状の--no-checkオプションを付けた際の挙動をデフォルトにしたい) TypeScriptによる型チェックは、--checkオプションを指定したときのみ実施する --no-checkオプションは非推奨化する より詳細な内容や議論などについては上記issueを参照いただければと思います。
https://github.com/denoland/deno/issues/11340
Bundler v0.8.0 DenoのフロントエンドビルドツールであるBundlerのv0.8.0がリリースされました。
このリリースでは、Devサーバのサポートが追加されています。
https://github.com/timreichen/Bundler/releases/tag/0.8.0
deno-redis v0.23.0がリリース deno-redisのv0.23.0がリリースされました。
このリリースでは、いくつかの破壊的変更が実施されています。
Redis Clusterのクライアント実装が追加されました。 Redis.connectionプロパティが削除されました。(破壊的変更) RedisImplクラスが非公開になり、代わりにcreate関数が追加されました。 (破壊的変更) https://github.com/denodrivers/redis/releases/tag/v0.23.0
xhr xhrはDenoとDeno Deploy向けのXMLHttpRequestのポリフィルです。
以下のドキュメントにて、このモジュールを利用してDeno Deploy上でFirebase SDKを使用する方法が紹介されています。
https://deno.com/deploy/docs/tutorial-firebase https://github.com/kitsonk/xhr https://deno.com/deploy/docs/tutorial-firebase</description></item><item><title>2021/06/28〜2021/07/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/07/04.html</link><pubDate>Sun, 04 Jul 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/07/04.html</guid><description>Deno v1.11.3のリリース Denoのv1.11.3がリリースされました。
このリリースではバグ修正などを中心に実施されています。
変更点:
Deno.emit()でグラフエラーの内容がdiagnostics配列に含まれるようになりました。 存在しないファイルをimportしようとした際などに、その内容がdiagnostics配列で報告されるようになりました。 https://github.com/denoland/deno/security/advisories/GHSA-xpwj-7v8q-mcgj の修正により、&amp;ndash;allow-netパーミッションなしでDeno.emitを実行すると、リモート依存がバンドルに含まれないように修正されたことによる影響のようです console.logなどの呼び出し時にエラーが発生すると、denoプロセスがパニックする問題が修正されました fetch APIでユーザが指定したHostヘッダが無視されるように修正されました。 SignalStream#disposeを呼んだあとにもSignalStream#thenに渡したコールバックが呼ばれてしまう問題が修正されました。 SignalStreamはDeno.signal()で返却されるオブジェクトです。 Deno.signal(s)がdenoプロセスを終了しないようブロックしてしまう問題が修正されました。 localstorageの最大容量が5MBから10MBに拡大されました。 REPLなどでEvent.prototypeを評価しようとすると例外が発生する問題が修正されました。 Eventの読み込み専用プロパティへ書き込みができなくなりました。(https://developer.mozilla.org/en-US/docs/Web/API/Event) deno lspコマンドから--parent-pidフラグが削除されました。 https://github.com/denoland/deno/releases/tag/v1.11.3
Denoの2021年Q3ロードマップが公開 Denoの2021年Q3のロードマップが公開されました。
今後、Denoの本体やdeno lspなどで実施される予定の変更内容が公開されています。
https://github.com/denoland/deno/issues/11168
deno_std v0.100.0のリリース deno_stdのv0.100.0がリリースされました。
変更点:
testing: assertEqualsなどの関数で文字列どうしを比較した際に、差分が大幅に見やすくなりました。 testing: assertExists関数のシグネチャがType Guardを使用して宣言されるように修正されました。 node/events: EventEmitter#addListenerがNode.jsと同様の挙動をするように修正されました。 path/glob: tsconfig.jsonで&amp;quot;noImplicitAny&amp;quot;: falseを指定した際にタイプエラーが発生する問題が修正されました。 https://github.com/denoland/deno_std/pull/987
Oak v7.7.0 DenoのWebフレームワークであるOakのv7.7.0がリリースされました。
主な変更点:
Context#sendEventsでkeepAliveオプションが追加され、Server-Sent Eventsサーバでコネクションのポーリングが行えるようになりました。 proxyミドルウェアでクエリパラメータが送信されない問題が修正されました。 https://github.com/oakserver/oak/commit/5403ac08ddf295cda388ac4f1f12f630d2e77a2f
Trex v1.8.0 Denoのパッケージ管理ツールであるTrexのv1.8.0がリリースされました。
このリリースではtrex execコマンドがサポートされ、deno.land/xで公開されているCLIツールをインストールせずに直接実行できるようになりました。</description></item><item><title>2021/06/21〜2021/06/27の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/06/27.html</link><pubDate>Sun, 27 Jun 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/06/27.html</guid><description>Deno v1.11.2がリリースされました Deno v1.11.2がリリースされました。
このリリースでは、deno lspへの機能追加やWeb標準との互換性の向上などが実施されています。
変更点:
deno lspでリントエラーを無視するためのクイックフィックスアクションが実装されました。 deno lspで文字列やコメント中に現れた識別子がリネームされないように修正されました。 Deno.emit()のmoduleオプションで&amp;quot;es2020&amp;quot;がサポートされました。 Console, URL, URLSearchParams, 及びWebsocketオブジェクトがWPTにパスするように修正されました。 fetchでHEADまたはOPTIONSリクエストを送信する際はレスポンスボディが空になるように修正されました。 WorkerがURLオブジェクトを受け付けるようになりました。 https://github.com/denoland/deno/releases/tag/v1.11.2
Deno DeployのBeta 1がリリースされました Deno DeployのBeta 1がリリースされました。
主な変更点:
BroadcastChannelを使用したエッジワーカー間での通信がサポートされました。(https://deno.com/deploy/docs/runtime-broadcast-channel) カスタムのTLS証明書のサポート https://deno.com/blog/deploy-beta1
fresh - Deno Deployで動作するWebフレームワーク freshというDeno Deploy上で動作するPreactをベースにしたWebフレームワークが公開されました。
特徴:
設定が不要 Next.jsライクなファイルシステムベースのルーティングやAPI Routesなどをサポートしています。 ページのレンダリングはエッジワーカー上で実行されるため、事前のビルドステップが必要ありません。 https://github.com/lucacasonato/fresh
xml - Denoで動作するXMLモジュール xmlはDenoで動作するXMLモジュールです。
XMLドキュメントのパースやJavaScriptオブジェクトからXMLドキュメントへの変換などがサポートされています。
https://github.com/lowlighter/xml</description></item><item><title>2021/06/14〜2021/06/20の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/06/20.html</link><pubDate>Sun, 20 Jun 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/06/20.html</guid><description>Deno v1.11.1がリリースされました Denoのv1.11.1がリリースされました。
このリリースでは、バグ修正などを中心に行われています。
主な変更点:
Deno.inspectでProxyオブジェクトを渡した際に、showProxyオプションにfalseが設定されていれば、プロキシ対象のオブジェクトではなくProxy自身の詳細情報を返却するように修正されました。 globalThis.dispatchEventを上書きすると、以降、addEventListenerで登録したmessageイベントのリスナが呼ばれなくなる問題が修正されました。 レスポンスボディとしてReadableStreamを使っていると、Deno.serveHttpがハングする問題が修正されました。 Streams APIのWeb標準との互換性が向上しました。 setTimeoutなどのAPIにおける最小待ち時間が4ミリ秒に変更されました。 https://github.com/denoland/deno/releases/tag/v1.11.1
deno_std v0.99.0がリリースされました deno_stdのv0.99.0がリリースされました。
変更点:
mime: MultipartWriter#createPartがpublicメソッドに変更されました node/util: util.inheritsが実装されました node/events: EventEmitter#removeAllListenersがNode.jsと同じ挙動をするように修正されました node: process.envが列挙可能になりました({...process.env}でエラーが発生しなくなりました) https://github.com/denoland/deno_std/releases/tag/0.99.0
Oak v7.6.0がリリースされました Oakのv7.6.0がリリースされました。
主な変更点:
ユニットテスト用のユーティリティが実装されました。 (https://oakserver.github.io/oak/testing) proxyミドルウェアが実装されました。 ctx.response.redirectで適切にリダイレクトが行われるようにするために、Referrerヘッダの代わりにRefererヘッダが使用されるように変更されました。 Cookieに複数の値を設定したときに、適切に動作が行われるように修正されました。 https://github.com/oakserver/oak/commit/ea56a0bdaf5b4547611ef0fcf7846eb393f51d5e
Deno internals - how modern JavaScript runtime is built Node.js Wroclaw #10でのBartek Iwańczuk氏の公演がYoutubeで公開されました。
Denoランタイムの内部構造などついて解説されています。
https://www.youtube.com/watch?v=LoknuwupOIE</description></item><item><title>2021/06/07〜2021/06/13の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/06/13.html</link><pubDate>Sun, 13 Jun 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/06/13.html</guid><description>Deno v1.11.0がリリースされました Deno v1.11.0がリリースされました。
このリリースでは、deno compileやdeno lspへの新機能の追加などが実施されています。
TypeScriptがv4.3にアップグレードされました Crypto.randomUUID()が実装されました SubtleCrypto.digest()が実装されました fetch()でabortがサポートされました TextDecoderStreamとTextEncoderStreamがサポートされました。 Deno.watchFsがFsWatcherインターフェースを返却されるように修正されました FsWatcher.returnメソッドはv2.0にて削除される予定のようです deno infoコマンドでlocalStorageの保存先が表示されるようになりました deno lintがstableという扱いになりました deno compileでdata:URLのダイナミックimportがサポートされました deno compileでDeno.emit()がサポートされました deno lspのCodeLensでテストコードの実行がサポートされました deno lspでモジュールレジストリの自動検出が実装されました BroadcastChannelが実装されました(unstable) Deno 1.11 Release Notes Deno 1.11.0 がリリースされたので新機能や変更点の紹介 deno_std v0.98.0がリリースされました deno_stdのv0.98.0がリリースされました。
変更点:
async: async/teeモジュールが追加されました async/mux: MuxAsyncIterator.addでAsyncIterableがサポートされました io/bufio: readLinesとreadStringDelimにオプションが追加され、TextDecoderの挙動を詳細に制御できるようになりました encoding/binary: readExact関数が追加されました encoding/binary: getNBytes関数において、初回のDeno.Reader.readの呼び出しで指定したバイト数未満のデータしか読めなかった際に、即座に例外が投げられる問題が修正されました encoding/binary: varnumなどの関数でUint8Array.byteOffsetが無視される問題が修正されました node: perf_hooksモジュールが追加されました node/events: EventEmitter#once/getMaxListeners/setMaxListenersがNode.jsと同じ挙動をするように修正されました testing/asserts: WeakMapやWeakSetなどのオブジェクト同士を比較しようとすると、例外が投げられるように変更されました https://github.com/denoland/deno_std/releases/tag/0.98.0
denoland/deno_docker 今まで、DenoのDockerイメージはAndy Hayden氏によって個人でメンテナンスされていました。</description></item><item><title>2021/06/01〜2021/06/06の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/06/06.html</link><pubDate>Sun, 06 Jun 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/06/06.html</guid><description>Deno v1.10.3がリリース Deno v1.10.3がリリースされました。
deno lspの効率化や新機能の追加などを中心に、様々な変更が実施されています。
変更点:
deno lspで// @deno-types=&amp;quot;&amp;quot; と /// &amp;lt;references types=&amp;quot;&amp;quot; /&amp;gt;に対する診断などがサポートされました deno lspでX-Deno-Warningに対する診断がサポートされました deno lspでlintのメッセージだけでなく、ヒントも表示されるようになりました deno lspでJSONやMarkdownファイルのフォーマットがサポートされました deno lspでtsserverへのリクエストごとに叩かれるopの数が大幅に削減されました deno lspのコードアクションでimport節を挿入した際に、拡張子が省かれてしまう問題が修正されました Deno.emitでバンドルする際にソースマップが生成されるようになりました (compilerOptionsでsourceMap: falseを指定することで無効化可能です) deno installでfile:スキーマがサポートされました deno test --coverage=&amp;lt;dir&amp;gt;で&amp;lt;dir&amp;gt;が存在しないときに、パニックする問題が修正されました ネイティブHTTPサーバで、respondWithによって空のBlobオブジェクトを返却しようとすると、エラーが発生する問題が修正されました Requestクラスの未実装なプロパティが削除されました FileコンストラクタがWPTにパスするように修正されました wpt.deno.land wpt.deno.landというWebページが公開されました。
このページでは、DenoのWPT(Web Platform Tests)への準拠度を確認することができます。
https://wpt.deno.land/ https://github.com/denoland/wpt.deno.land twd twdという、Tailwind CSSライクなスタイルシートを生成するCLIツールが公開されました。
引数として与えられたHTMLファイルの内容を元に、twindを使用してスタイルシートが生成されます。
https://github.com/kt3k/twd https://github.com/tw-in-js/twind Eta Etaは軽量性や速度を重視したテンプレートエンジンです。
レイアウトによるテンプレートの再利用や、プラグインによるレンダリングの挙動のカスタマイズなどがサポートされています。
また、Denoだけでなく、ブラウザやNode.jsもサポートされています。
https://github.com/eta-dev/eta https://eta.js.org/</description></item><item><title>2021/05/24〜2021/05/30の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/05/30.html</link><pubDate>Sun, 30 May 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/05/30.html</guid><description>Sinco v2.0.0のリリース ブラウザのオートメーション・テスト用モジュールであるSincoのv2.0.0がリリースされました。
変更点:
Firefoxがサポートされました。 使用するブラウザの実行可能ファイルへのパスを指定できるようになりました(binaryPathオプション) https://github.com/drashland/sinco/releases/tag/v2.0.0
Velociraptor v1.0.0のリリース Velociraptor v1.0.0がリリースされました。
変更点:
Git フックのサポートが追加されました。 vr upgradeコマンドでアップグレードできるようになりました。 Windows環境ではデフォルトでPowerShellが使用されるようになりました。 https://github.com/jurassiscripts/velociraptor/releases/tag/1.0.0
zeno.zsh fzfを使用した入力補完やスニペット展開などの機能を提供するzshプラグインが公開されました。
DenoとTypeScriptで実装されているようです。
詳しくは、Deno + TypeScriptでzshプラグインを実装して最高になったの記事で解説されています。
https://github.com/yuki-yano/zeno.zsh https://zenn.dev/yano/articles/zsh_plugin_from_deno Cliffy v0.19.0のリリース DenoのCLIフレームワークであるCliffy v0.19.0がリリースされました。
変更点:
keycodeモジュールでKeyEvent型がKeyCodeにリネームされました。 commandモジュールにEnumTypeが追加されました。 commandモジュールで、upgradeコマンドの実装を容易にするためのUpgradeCommandクラスが追加されました。 commandモジュールでinteger型がサポートされました。 keypressモジュールが追加されました。 https://github.com/c4spar/deno-cliffy/releases/tag/v0.19.0
deploy_dir deploy_dirという静的なWebサイトをDeno DeployへデプロイするためのCLIツールが公開されました。
指定されたディレクトリの内容を読み込み、Deno Deployへ公開できる形式へパッケージングしてくれます。
https://github.com/kt3k/deploy_dir</description></item><item><title>2021/05/17〜2021/05/23の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/05/23.html</link><pubDate>Sun, 23 May 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/05/23.html</guid><description>Deno v1.10.2がリリース Denoのv1.10.2がリリースされました。
このリリースではCVE-2021-32619へのセキュリティ上の修正が含まれるため、できるだけ早くこのバージョンへアップグレードすることを推奨されています。
その他の変更点:
.vscode/settings.jsonなどでdeno.configに相対パスが設定されていた場合、deno lspで適切に設定が読まれない問題が修正されました。 TypeScriptファイルをimportする際は、X-TypeScript-Typesヘッダが無視されるようになりました。 https://github.com/denoland/deno/releases/tag/v1.10.2 https://twitter.com/deno_land/status/1394353166863454213 deno_std v0.97.0がリリース io/buffer: Deno Deployでも型エラーなしで使えるようになりました。 io: types.d.tsが追加されました。 io/bufio: readDelimやreadStringDelimでデリミタが内部で複数のチャンクにまたがった際に、誤った結果を返す問題が修正されました。 node/events: EventEmitter#onなどにリスナとして関数以外の値を渡すと、エラーが発生するようになりました。 testing: assertObjectMatchで配列が適切に取り扱われるようになりました。 https://github.com/denoland/deno_std/releases/tag/0.97.0
denoland/setup-deno v1.0.0がリリース denoland/setup-denoはGitHub ActionsからDenoを利用するためのアクションです。
v1.0.0がリリースされたため、すでにdenolib/setup-denoをお使いの場合は、そちらから移行するとよさそうです。
https://github.com/denoland/setup-deno/releases/tag/v1.0.0
Flat Data Flat Dataは、HTTPエンドポイントまたはSQLクエリからデータを取得し、GitHubリポジトリに格納するためのGitHubアクションです。
Denoを使用したJavaScript/TypeScriptファイルの実行がサポートされており、ダウンロードされたデータを変換することができます。
また、GitHubリポジトリに格納されたデータを可視化するために、Flat Viewerというツールも提供されています。
https://github.com/githubocto/flat Flat Dataについて Flat Viewer packup - Parcelライクなビルドツール packupというParcelビルドツールが公開されました。
Parcelに影響を受けているようで、以下のような特徴があります。
設定なしでアプリケーションコードをバンドルできる TypeScriptをサポート esbuildを使用した高速なビルド https://github.com/kt3k/packup
luath v0.6.0/v0.7.0/v0.8.0がリリース Denoで実装されたフロントエンドビルドツールであるluathのv0.6.0/v0.7.0/v0.8.0がリリースされました。
変更点:</description></item><item><title>2021/05/10〜2021/05/16の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/05/16.html</link><pubDate>Sun, 16 May 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/05/16.html</guid><description>Deno v1.10.1がリリース Deno v1.10.0及びv1.10.1がリリースされました。
このリリースでは、deno testコマンドの大幅な拡張やWebStorage APIの実装などが実施されています。
変更点:
deno testコマンドに--jobsオプションが追加され、テストの並行実行がサポートされた deno testコマンドに--docオプションが追加され、ドキュメンテーションコメント内のコードの型チェックがサポートされた deno testコマンドに--watchオプションが追加された Deno.testにpermissionsオプションが追加され、テストケースごとにパーミッションを指定できるようになった(unstable) Web Workerでstructured clone algorithmがサポートされた localStorageとsessionStorageが実装された Markdownファイルでdeno-fmt-ignore-fileディレクティブがサポートされた WebAssembly.Memoryでsharedオプションがサポートされ、SharedArrayBufferを受け付けるようになった --import-mapオプションでリモートURLを指定できるようになった ネイティブプラグインAPIに変更が行われた deno lintやdeno compileで--unstableオプションの指定が必須でなくなった TextEncoder#encodeIntoのパフォーマンス及びWeb標準との互換性の向上が行われた Deno.emitのbundleオプションの型が&amp;quot;esm&amp;quot; | &amp;quot;iife&amp;quot;から&amp;quot;module&amp;quot; | &amp;quot;classic&amp;quot;に変更された 公式ブログポスト Deno 1.10.1 がリリースされたので新機能や変更点の紹介 v1.10.1のリリースノート v1.10.0のリリースノート deno_std v0.96.0がリリース deno_stdのv0.96.0がリリースされました。
変更点:
http: カスタムのレスポンステキストを指定できるようになった io/util: readRange()関数が実装された mime/multipart: MultipartReader#readForm()でReadFormOptionsというオブジェクト形式の引数がサポートされた node: consoleモジュールが追加された node/assert: rejects()とdoesNotReject()が実装された node/assert: fail()が実装された node/os: homedir()が実装された io/streams: readableStreamFromReader()でバイトReadableStreamが使用されないように修正された io/bufio: readDelim()のパフォーマンスが向上した bytes: readDelim()のパフォーマンス向上のため、bytes_list.tsが追加された node/stream: Streamがdefault exportされるようになった https://github.</description></item><item><title>2021/05/03〜2021/05/09の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/05/09.html</link><pubDate>Sun, 09 May 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/05/09.html</guid><description>alosaur v0.31.0がリリース DenoのWebフレームワークであるalosaurのv0.31.0がリリースされました。
変更点:
ContextがHttpContextにリネームされました Microserviceクラスが実装されました (https://github.com/alosaur/alosaur/tree/master/examples/microservice) OAuthサポートが追加されました https://github.com/alosaur/alosaur/releases/tag/v0.31.0
alosaur-lite alosaur-liteはDenoのWebフレームワークであるalosaurの軽量版です。(gzip圧縮込みで2.6KB)
Deno Deployでの使用を想定されているようです。
https://github.com/alosaur/alosaur-lite
Oak v7.4.0がリリース Oakのv7.4.0がリリースされました。
主な変更点:
send()でRange及びIf-RangeHTTPヘッダのサポートが追加されました。 ルーターをネストできるようになりました。(#275) https://github.com/oakserver/oak/commit/eefd2fdb4a3fc6dfbb52fb1c6d74ff3de4b1b85b
Effective Deno Denoを有効に活用するためのノウハウをまとめた本をZennで公開しました。
https://zenn.dev/uki00a/books/effective-deno</description></item><item><title>2021/04/26〜2021/05/02の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/05/02.html</link><pubDate>Sun, 02 May 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/05/02.html</guid><description>gql - DenoのGraphQLサーバモジュール gqlはDenoでGraphQLサーバを実装するためのモジュールです。以下のライブラリ・フレームワークがサポートされています。
std/http Oak Abc Opine deno-libs/tinyhttp https://github.com/deno-libs/gql
deno-libs/tinyhttp - tinyhttpのDenoポート deno-libs/tinyhttpはNode.jsのtinyhttpパッケージのDenoポートです。
先述したgqlモジュールでもサポートされています。
https://github.com/deno-libs/tinyhttp
crux.land Deno Deployで動作するDenoのスクリプトレジストリ。
20KB未満の軽量なスクリプトをホストすることを目的としているようです。
https://crux.land/
terraform-deploy-provider - Deno Deploy向けのTerraformプロパイダ terraform-deploy-providerはDeno Deploy向けのTerraformプロパイダです。
https://github.com/wperron/terraform-deploy-provider</description></item><item><title>2021/04/19〜2021/04/25の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/04/25.html</link><pubDate>Sun, 25 Apr 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/04/25.html</guid><description>Deno本体の最新情報 Deno v1.9.1/1.9.2のリリース Denoのv1.9.1とv1.9.2がリリースされました。
v1.9.1の変更点:
deno lspでtextDocument/documentSymbol, textDocument/prepareCallHierarchy, textDocument/semanticTokens/fullがサポートされた deno lspでX-TypeScript-Typesとimport type/export typeの組み合わせがうまく機能しない問題が修正された v1.9.0で実施されたDeno.Conn型への変更がリバートされた Deno.serveHttpがWorker内で動作しない問題が修正された Deno.serveHttpでレスポンスの返却中にハングが起きうる問題が修正された Workerは停止しているがterminateメッセージをまだ受信していない場合、postMessageで競合状態に陥る問題が修正された v1.9.2の変更点:
WebSocketメッセージが適切にパースされない問題が解消された M1 Mac上でdeno compileで生成されたバイナリを再びdeno compileで上書きすると、壊れたバイナリが生成される問題が修正された Responseオブジェクトをconsole.logなどで表示しようとすると、エラーが発生する問題が修正された https://github.com/denoland/deno/releases/tag/v1.9.1 https://github.com/denoland/deno/releases/tag/v1.9.2 deno_std v0.94.0/0.95.0のリリース deno_std v0.94.0とv0.95.0がリリースされました。
v0.94.0の変更点:
node/fs: fstat()が実装された io/streams: Deno.ReaderからReadableStreamを作成するために、readableStreamFromReader()が実装された testing: assertEqualsでundefinedが設定されたキーと存在しないキーが区別されない問題が修正された v0.95.0の変更点:
node/child_process: spawn()の基本的なサポート path/glob: globToRegExp()にcaseInsensitiveオプションが追加された node/fs: すでに実装されている多くのAPIがexportされていなかった問題が修正された https://github.com/denoland/deno_std/releases/tag/0.94.0 https://github.com/denoland/deno_std/releases/tag/0.95.0 サードパーティモジュールなどの最新情報 deno-puppeteer v9.0.0のリリース deno-puppeteerのv9.0.0がリリースされました。
変更点:
内部のpuppeteerのバージョンが9.0.0へ更新された Macでinstall.ts経由でインストールしたChromeがdeno-puppeteerで起動できない問題が修正された https://github.</description></item><item><title>2021/04/12〜2021/04/18の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/04/18.html</link><pubDate>Sun, 18 Apr 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/04/18.html</guid><description>Deno本体の最新情報 Deno v1.9.0がリリース Deno v1.9.0がリリースされました。このリリースでは、様々な機能の追加やパフォーマンスチューニングなどが実施されています。
また、magurotunaさんによるDeno v1.9.0の解説記事が公開されています。
変更点:
Deno本体にネイティブのHTTP/2サーバの実装が組み込まれた Deno内部のJavaScriptとRust間のメッセージングの仕組みが改善され、最大で98%程のパフォーマンス向上が実現された BLOB URLやData URLがサポートされた deno lspのimport補完が向上した deno lspでtextDocument/foldingRange及びtextDocument/selectionRangeが実装された --allow-readや--allow-netなどと同様、--allow-envや--allow-runで許可リストを指定できるようになった deno runコマンドで--promptオプションがサポートされ、対話的に権限を与えられるようになった Deno.fstat(Sync)/ftruncate(Sync)が安定化された Deno.Fileにstat(Sync)/truncate(Sync)メソッドが追加された Deno.Buffer/readAll(Sync)/writeAll(Sync)/iter(Sync)が非推奨化された これらのAPIはv2.0で削除される予定です これらのAPIはdeno_std/ioに移動されています Deno.memoryUsage()が実装された(unstable) TypeScriptのuseDefineForClassFieldsオプションが有効化された https://deno.com/blog/v1.9 https://github.com/denoland/deno/releases/tag/v1.9.0 https://zenn.dev/magurotuna/articles/deno-release-note- deno_std v0.93.0がリリース Deno v1.9.0のリリースに合わせて、deno_std v0.93.0がリリースされました。
変更点:
io/util: Deno v1.9.0でのDeno.iterの非推奨化に合わせて、io/utilにiterが追加された node/fs: fdatasync/fsync/ftuncate/futimesが実装された https://github.com/denoland/deno_std/pull/850
サードパーティモジュールなどの最新情報 Oak v7.0.0及びv7.1.0のリリース DenoのWebフレームワークであるOakのv7.0.0及びv7.1.0がリリースされました。
主な変更点:
Deno v1.9で実装されたネイティブHTTPサーバがサポートされた Deno Deployのサポート context.stateがapp.stateから深いコピーが行われるようになった ETagサポートが追加された https://github.com/oakserver/oak/commit/2a68eda28cb93bfb099a5f27dfad728f2183e0df https://github.com/oakserver/oak/commit/4ae51e28e04490cc639e887659b8626c05c9b0bb Servest v1.</description></item><item><title>2021/04/05〜2021/04/11の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/04/11.html</link><pubDate>Sun, 11 Apr 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/04/11.html</guid><description>Deno本体の最新情報 Deno v1.9.0のリリースについて 今週は特にリリースはありませんが、2021/4/13にv1.9.0のリリースが予定されています。
また、v1.9.0のリリースに向けて、以下の機能がmainブランチにマージされています:
ネイティブHTTPバインディング BLOB URLのサポート fetch APIでのdata URLのサポート https://github.com/denoland/deno/blob/v1.8.3/docs/contributing/release_schedule.md
サードパーティモジュールなどの最新情報 denoland/setup-deno denoland/setup-denoというGitHub ActionsでDenoを利用するためのアクションがdenoland Organizationにて公開されました。
https://github.com/denoland/setup-deno denolib/setup-deno - denoland/setup-denoと同様、GitHub ActionsからDenoを利用するためのアクション deno-postgres v0.9.0及びv0.10.0がリリース deno-postgresのv0.9.0及びv0.10.0がリリースされました。
これらのリリースでは、以下の機能が追加されています:
scram-sha-256認証のサポート Client#createTransactionが実装され、トランザクションがより扱いやすくなった https://github.com/denodrivers/postgres/releases/tag/v0.9.0 https://github.com/denodrivers/postgres/releases/tag/v0.10.0 rollup-plugin-deno rollup-plugin-denoは、RollupでDeno向けのバンドルを生成するためのRollupプラグインです。
Node.jsのビルトインモジュールの読み込みをdeno_std/nodeに置換することで、それらに依存したモジュールをDenoで実行できるようにしてくれます。
https://github.com/egoist/rollup-plugin-deno</description></item><item><title>2021/03/29〜2021/04/04の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/04/04.html</link><pubDate>Sun, 04 Apr 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/04/04.html</guid><description>Deno本体の最新情報 Deno v1.8.3がリリース Deno v1.8.3がリリースされました。このリリースでは、deno lspへの機能の追加やバグ修正などが行われています。
変更点:
deno lspでimportの補完がサポートされた deno lspでtextDocument/selectionRangeが実装された WebSocket#closeですでに閉じているコネクションを再び閉じようとしたときに、例外が投げられないように修正された AbortController.abort()が追加された TypeScriptのlibとしてdom.asynciterableが追加された(Denoのいずれかのバージョンで誤って削除されてしまったようです) https://github.com/denoland/deno/releases/tag/v1.8.3
deno_std v0.92.0がリリース deno_stdのv0.92.0がリリースされました。
変更点:
io/bufio: Deno Deployに対応した node/fs: symlinkとsymlinkSyncが実装された node/util: format関数が実装された io: io/buffer及びio/utilが追加された (Deno v2.0に向けて、Deno.Buffer/readAll/readAllSync/writeAll/writeAllSyncをDeno名前空間からstdへ移行することが目的のようです) https://github.com/denoland/deno_std/releases/tag/0.92.0
Deno Deployが公開された Deno Deployが公開されました。
Deno DeployはCDN Edge上でTypeScriptやWebAssemblyなどを動作させることができるサービスです。Cloudflare WorkersのAPIと互換性があります。
https://deno.com/deploy/docs サードパーティモジュールなどの最新情報 Snel - DenoでSvelteアプリを開発するためのツール SnelはDenoでSvelteアプリを開発するためのツール/フレームワークです。
.svelteファイルをJavaScriptファイルへコンパイルしたり、HMRを搭載したdevサーバなどが提供されています。
将来的にはSSRやSSGなどの機能も提供される予定のようです。
https://github.com/crewdevio/Snel
Sift - Deno Deployのルーティングライブラリ SiftはDeno Deployのルーティングライブラリです。
path-to-regexpでサポートされている形式で、ルーティングを定義することができます。
他にも、静的ファイルの配信やJSXのレンダリングなどがサポートされています。
https://github.com/satyarohith/sift
deno-dom - Denoで利用できるDOM APIの実装 deno-domは、Denoから利用することのできるDOM APIの実装を提供しています。</description></item><item><title>2021/03/22〜2021/03/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/03/28.html</link><pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/03/28.html</guid><description>Deno本体の最新情報 Deno v1.8.2がリリース Deno v1.8.2がリリースされました。
このリリースでは、バグ修正などを中心に実施されています。
変更点:
Deno.createHttpClientを使用した際に、User-Agentヘッダが設定されない問題が修正された deno fmtでmarkdownファイルのスペースなどが適切にフォーマットされない問題が修正された deno lspでエディタ以外でファイルが編集されていると、&amp;ldquo;The current snapshot version is missing.&amp;ldquo;エラーが発生する問題が修正された deno lspでファイルの診断(diagnostics)が固有のスレッドで実行されるようになった https://github.com/denoland/deno/releases/tag/v1.8.2
deno_std v0.91.0がリリース deno_std v0.91.0がリリースされました。
主な変更点:
encoding/yaml: EXTENDED_SCHEMAが追加され、Yamlファイル内でJSの関数や正規表現などを使用できるようになった io/streams: readerFromIterable()が追加された node/fs: utimes/utimesSyncが実装された など
https://github.com/denoland/deno_std/releases/tag/0.91.0
status.deno.landが公開された status.deno.landが公開されました。
このサイトでは、Denoのモジュールレジストリなどの運用状況を確認することができます。
https://status.deno.land
サードパーティモジュールなどの最新情報 swdev - Service WorkerベースのNo bundleビルドツール swdevという、Service WorkerベースのNo bundleビルドツールが公開されました。
以下のようが機能が提供されているようです:
Service Workerを利用したTypeScriptやSvelteファイルの変換 Deno.watchFs()ベースのCache Busting Rollupベースのプロダクションビルド https://github.com/mizchi/swdev
deno-sqlite v2.4.0がリリース deno-sqlite v2.4.0がリリースされました。
このリリースでは、以下のような変更が加わっています:
SQLiteのv3.35.0への更新 DB.</description></item><item><title>2021/03/15〜2021/03/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/03/21.html</link><pubDate>Sun, 21 Mar 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/03/21.html</guid><description>サードパーティモジュールなどの最新情報 luath - Vite/WMRライクなフロントエンドビルドツール luathというフロントエンド開発用のビルドツールが公開されました。
ViteやWMRに影響を受けており、以下のような機能が提供されています:
HMR及びオンデマンドビルドなどの機能を提供するdevサーバ Rollup互換のプラグインシステム PostCSSやCSS Modulesのサポート https://github.com/cmorten/luath
estest - DenoやNode.jsなどで動作するテストフレームワーク estestはDenoやNode.jsなどのES Modulesをサポートする環境で動作するテストフレームワークです。
将来的にはブラウザもサポートされる予定のようです。
https://github.com/mikeal/estest
Servest v1.2.0 DenoのHTTPモジュールであるServestのv1.2.0がリリースされました。
このリリースでは、Router.options()が実装されています。
https://github.com/keroxp/servest/releases/tag/v1.2.0
deno-bin deno-binという、npm/npx経由でDenoを実行するためのツールが公開されました。
Node.jsプロジェクトにおいてdeno lintやdeno fmtなどを利用する用途などが想定されているようです。
https://github.com/kt3k/deno-bin
その他の情報 第10回 Deno勉強会@オンライン 2021/04/03(土)に、第10回 Deno勉強会が開催されます。
詳しくは以下のページを参照ください:
https://deno-ja.connpass.com/event/208138/</description></item><item><title>2021/03/08〜2021/03/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/03/14.html</link><pubDate>Sun, 14 Mar 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/03/14.html</guid><description>Deno本体の最新情報 Deno v1.8.1のリリース Deno v1.8.1がリリースされました。このリリースでは、バグの修正を中心に実施されています。
主な変更点:
importsNotUsedAsValuesオプションがswcに渡されるようになりました。 Windows上でdeno compileを実行すると、ターゲットに関わらず常に.exeが拡張子として付与される問題が修正されました。 Worker内でトップレベルawaitが使用されていると、ブロックが発生する問題が修正されました。 https://github.com/denoland/deno/releases/tag/v1.8.1
deno_std v0.90.0のリリース deno_std v0.90.0がリリースされました。
変更点:
node: moduleモジュールをrequireで読み込めるようになりました。 node: Node.jsで書かれたスクリプトを実行するためのCLIツールが実装されました。(node/cli.ts) node: assertモジュールの互換性が向上しました。 http: v0.88.0で発生したパフォーマンスに関する問題が修正されました。 https://github.com/denoland/deno_std/commit/3f9714bf05a75303355fddd22cad9794be50e47d
サードパーティモジュールなどの最新情報 nano nanoは軽量のJSXライブラリです。以下のような機能をサポートしています:
SSRをサポート(DenoとNode.jsの両方で動作します) 組み込みのRouterやStoreなどを提供 コンポーネントのpre-fetch https://github.com/nanojsx/nano
depsbot モジュールなどの依存関係の更新状態をチェックをしてくれるGitHub actionです。
npmにも公開されており、コマンドラインから直接実行することもできます。
https://github.com/denosaurs/depsbot
wizard wizardというBDDスタイルのAPIを提供するテストライブラリが公開されました。
まだ開発が開始したばかりではありますが、Deno.test()をベースにしているため、各種サニタイザやDenoのCLIをそのまま利用することができます。
https://github.com/deno-libs/wizard
deno-redis v0.20.0 deno-redis v0.20.0がリリースされました。
変更点:
CLIENT PAUSEコマンドでMODEを指定できるようになりました 以下のコマンドがサポートされました: CLIENT UNBLOCK CLIENT UNPAUSE CLIENT INFO CLIENT TRACKINGINFO CLIENT LIST https://github.</description></item><item><title>2021/03/01〜2021/03/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/03/07.html</link><pubDate>Sun, 07 Mar 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/03/07.html</guid><description>Deno本体の最新情報 Deno v1.8.0がリリースされました Deno v1.8.0がリリースされました。
magurotunaさんによるDeno v1.8.0のまとめが公開されていますので、よろしければそちらも参照ください。
主な変更点:
WebGPUがサポートされました(experimental) ICUサポートが追加されました。 テストカバレッジの収集と集計が個別のコマンドに分離されました(収集はdeno test --coverage、集計はdeno coverageコマンドで行います) lcov形式でのカバレッジの集計がサポートされました。 Import maps/Deno.permissions/Deno.link/Deno.symlink/deno lspが安定化されました(--unstableオプションが不要になった) リモートモジュールをダウンロードする際に、Authorizationヘッダにトークンを設定できるようになりました(DENO_AUTH_TOKENS) テストコード中でDeno.exit()の呼び出しがチェックされるようになりました(exitサニタイザ) Deno.metrics()で収集できる情報がより詳細化されました(--unstableを付与したときのみ) deno fmtでJSONファイルのフォーマットがサポートされました。 Deno.emitでIIFE形式の出力サポートされました。 TypeScriptが4.2にアップグレードされました。 https://github.com/denoland/deno/releases/tag/v1.8.0 https://zenn.dev/magurotuna/articles/deno-release-note-1-8-0 deno_std v0.89.0がリリース Deno v1.8.0のリリースに合わせ、deno_stdのv0.89.0がリリースされました。
std/nodeへの機能追加などに加え、std/io/streamsモジュールに破壊的変更が加わっています。
主な変更点:
io/streams: readableStreamFromAsyncIterator()が削除され、代わりにreadableStreamFromIterable()が追加されました。 node: constantsモジュールが追加されました。 node/crypto: createHash()関数が実装されました。 node: process.hrtime()が実装されました。 node/fs: truncate/truncateSyncが実装されました。 node/util: callbackify/promisify/typesが公開されました。 node/events: require('events').EventEmitterがundefinedになる問題が修正されました。 node: requireでshebangの書かれたJSファイルを読めるようになりました。 node: process.argvがProxyから配列へ変更されました。 https://github.com/denoland/deno_std/pull/780
サードパーティモジュールなどの最新情報 ts_morphがDenoをサポート ts_morphにDenoのサポートが追加されました。
ts_morphはTypeScriptのコンパイラAPIのラッパライブラリです。
https://github.com/dsherret/ts-morph/releases/tag/10.0.1 https://deno.land/x/ts_morph@10.0.1 vnoがVue 3をサポート vnoにVue 3のサポートが追加されました。</description></item><item><title>2021/02/22〜2021/02/28の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/02/28.html</link><pubDate>Sun, 28 Feb 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/02/28.html</guid><description>Deno本体の最新情報 今週は特にリリースなどは行われていません。
来週の3月2日にDeno v1.8.0のリリースが予定されています。
https://github.com/denoland/deno/blob/v1.7.5/docs/contributing/release_schedule.md
サードパーティモジュールの最新情報 Dashport - Passport.jsライクな認証モジュール DashportはNode.jsのPassport.jsに影響を受けた認証モジュールです。
Passport.js同様、ストラテジによって柔軟に拡張することができます。
現時点で公式でサポートされているWebフレームワークはOakのみです。
https://github.com/oslabs-beta/dashport
pngs pngsはpngイメージのエンコード/デコード用のDenoモジュールです。
WebAssemblyを使用して実装されています。
https://github.com/denosaurs/pngs
deno_license_checker - ライセンスヘッダーのチェックを行うツール deno_license_checkerは、各ソースファイルにライセンスヘッダーが正しい形式で記述されていることをチェックするツールです。
設定ファイル(.licenserc.json)によって、挙動を細かくカスタマイズすることが出来ます。
https://github.com/kt3k/deno_license_checker
deno-redis v0.19.0がリリース deno-redis v0.19.0がリリースされました。
変更点:
クライアントサイドキャッシングがサポートされました subscribe及びpsubscribeメソッドがジェネリクスメソッドに変更されました https://github.com/denodrivers/redis/releases/tag/v0.19.0</description></item><item><title>2021/02/15〜2021/02/21の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/02/21.html</link><pubDate>Sun, 21 Feb 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/02/21.html</guid><description>Deno本体の最新情報 Deno v1.7.5がリリース Deno v1.7.5がリリースされました。 このリリースではバグ修正などを中心に実施されています。
変更点:
btoa()関数とEventクラスがWPTにパスするように修正され、Web標準との互換性が増しました。 deno lspでデータURLが適切に扱われない問題などが修正されました。 Dynamic importsで発生した例外をcatchできるようになりました。 https://github.com/denoland/deno/releases/tag/v1.7.5
deno_std v0.88.0がリリース deno_std v0.88.0がリリースされました。
変更点:
std/encoding/utf8モジュールが削除されました。 std/testing/asserts: assertEquals()などの関数で、シンボルが適切に取り扱われない問題が修正されました。 std/node: url及びcryptoモジュールをrequire()で読み込めるようになりました。 std/node: ttyモジュールが部分的に実装されました。 std/node: Conditional exportsが実装されました。 https://github.com/denoland/deno_std/releases/tag/0.88.0 https://github.com/denoland/deno_std/compare/0.87.0...0.88.0 vscode_deno v3.0.0がリリース vscode_deno v3.0.0がリリースされました。
このリリースにおける主要な変更点として、Canaryバージョン同様、deno lspを使用するように変更されています。
サードパーティモジュールの最新情報 deno_mysql v2.8.0がリリース deno_mysql v2.8.0がリリースされました。
変更点:
MariaDB v10.0のサポートが追加されました。 MySQLのTINYINT型がJavaScriptのBoolean型へ変換されないように修正されました。 caching_sha2_password認証プラグインがサポートされました。 configLogger()が実装され、ロギングの挙動をカスタマイズできるようになりました。 https://github.com/denodrivers/mysql/releases/tag/v2.8.0
Sinco v1.1.0がリリース Since v1.1.0がリリースされました。
SincoはDenoで実装されたブラウザのオートメーション・テスティングライブラリです。
変更点:
HeadlessBrowser#evaluatePage()が実装され、現在のページ内での関数や式の実行がサポートされました。 Dockerコンテナ内での実行がサポートされました。 https://github.</description></item><item><title>2021/02/08〜2021/02/14の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/02/14.html</link><pubDate>Sun, 14 Feb 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/02/14.html</guid><description>Deno本体の最新情報 Deno v1.7.3/v1.7.4がリリースされました Deno v1.7.3がリリースされました。
その後、一部のバージョンのLinuxディストリビューションで動作しない問題が発覚したため、その問題を修正したDeno v1.7.4がリリースされました。
v1.7.3/v1.7.4の主な変更点:
deno lspでcodeAction/resolveが実装されました。 deno lspにdeno.cacheコードアクションが実装されました。 deno lspにImplementationscode lensが実装されました。 Import mapsがデータURL(data:)を適切にハンドリングするように修正されました。 https://github.com/denoland/deno/releases/tag/v1.7.4 deno_std v0.87.0がリリースされました Deno v1.7.3のリリースに合わせ、deno_std v0.87.0がリリースされました。
このリリースにはhttp/cookieモジュールに対する破壊的変更が含まれています。
変更点:
http/cookie: Cookies及びSameSiteの型エイリアスが削除されました。 http/file_server: SVGファイルに対して適切なContent-Typeが設定されるように修正されました。 https://github.com/denoland/deno_std/releases/tag/0.87.0
サードパーティモジュールの最新情報 denops.vim - DenoでVim/Neovimプラグインを書くためのエコシステム denops.vimという、Denoを使ってVim/Neovimプラグインを書くためのエコシステムが公開されました。
coc.nvimに影響を受けているようです。
サンプルプラグインも公開されているため、興味のある方は見てみるとよいかもしれません。
https://github.com/vim-denops/denops-helloworld.vim https://github.com/vim-denops/denops.vim https://github.com/vim-denops/denops-deno https://github.com/vim-denops/denops-std-deno slack_web_api - DenoのSlack APIクライアント slack_web_apiはNode.jsの@slack/web-apiをDenoにポートしたモジュールです。
このモジュールを使用することで、DenoからSlack APIを叩くことができます。
https://deno.land/x/slack_web_api@1.0.1
deno-redis v0.18.0がリリース deno-redis v0.18.0がリリースされました。
このリリースでは、deno lintでcamelcaseルールが実装されたことに合わせ、全メソッド及びプロパティがキャメルケース形式へリネームされています。
変更点:</description></item><item><title>2021/02/01〜2021/02/07の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/02/07.html</link><pubDate>Sun, 07 Feb 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/02/07.html</guid><description>Deno本体の最新情報 Deno v1.7.2がリリース Deno v1.7.2がリリースされました。これに合わせて、deno_std v0.86.0もリリースされています。
主な変更点:
deno lspでtextDocument/codeLens及びtextDocument/codeActionが実装された WPTにパスするよう、File及びBlobの実装がリライトされた https://github.com/denoland/deno/releases/tag/v1.7.2 https://github.com/denoland/deno_std/releases/tag/0.86.0 deno_stdのリポジトリがdeno本体のリポジトリから分離された Denoには標準モジュールとしてdeno_stdが存在します。
今まで、このdeno_stdの開発は、deno本体と同じリポジトリ内(denoland/deno)で行われていました。
この度、deno_stdが個別のリポジトリへと分離されました。
これにより、deno_stdの開発時にRustのセットアップが必要なくなるため、deno_stdへのコントリビューションが行いやすくなるのではないかと思われます。
https://github.com/denoland/deno_std
サードパーティモジュールの最新情報 emacs-ng emacs-ngはEmacsのフォークです。
以下のような機能を備えているようです:
Denoを組み込むことで、Emacs内でJavaScript/TypeScriptコードの実行を可能とする MozillaのWebRenderをサポート https://github.com/emacs-ng/emacs-ng
deno-postgres v0.7.0がリリースされた deno-postgres v0.7.0がリリースされました。
v0.6.0までは、deno-postgresがサポートしていないデータ型を利用しようとすると、例外が発生しました。
このリリースにおいて、現時点でdeno-postgresでサポートされていない全てのデータ型が、JavaScriptのStringとして返却されるように挙動が変更されました。
将来的には、ライブラリの利用者が各データ型のハンドリング方法を制御できるようにするために、カスタムのハンドラを登録できるようにすることも検討されているようです。
https://github.com/denodrivers/postgres/issues/239
https://github.com/denodrivers/postgres/releases/tag/v0.7.0
Trex v1.5.0がリリースされた TrexはDenoのパッケージマネージャです。
このリリースではtrex lsコマンドが実装され、インストールされた依存パッケージの一覧を表示できるようになりました。
https://github.com/crewdevio/Trex/releases/tag/v1.5.0
Deno Module Visualizer Deno Module Visualizerが公開されました。
Deno Module Visualizerは、あるモジュールとその依存関係をGraphvizを使って可視化してくれます。
使用例:
deno-postgres v0.7.0 deno-redis v0.17.0 https://deno-visualizer.danopia.net/</description></item><item><title>2021/01/25〜2021/01/31の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/01/31.html</link><pubDate>Sun, 31 Jan 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/01/31.html</guid><description>Deno v1.7.1がリリース Denoのv1.7.1がリリースされました。
このリリースに合わせて、stdのv0.85.0もリリースされています。
v1.7.0でリリースされたDeno.emitやDeno.resolveDnsの安定性の向上 deno lspのバグ修正・安定性の向上 std/nodeでprocess.on(&amp;quot;exit&amp;quot;)がサポートされた https://github.com/denoland/deno/releases/tag/v1.7.1
deno-postgresのv0.5.0/v0.6.0がリリース deno-postgresのv0.5.0及びv0.6.0がリリースされました。
v0.5.0 v0.6.0 これらのリリースにはいくつかの破壊的変更が含まれています:
Client#queryメソッドが削除され、Client#queryArrayとClient#queryObjectメソッドが追加された Client#queryArrayはクエリの結果をネストされた配列として返却します Client#queryObjectはクエリの結果をオブジェクトの配列として返却します Client#multiQueryメソッドが削除された PostgreSQLのbigint型がJavaScriptのBigIntとして返却されるように変更された v0.4.0まではJavaScriptのString型として返却されていました https://github.com/denodrivers/postgres
Harmony - Discord APIライブラリ HarmonyというDiscord APIライブラリが公開されました。
このライブラリを使うことで、Discordボットの開発などを行うことができます。
https://github.com/harmonyland/harmony</description></item><item><title>2021/01/18〜2021/01/24の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/01/24.html</link><pubDate>Sun, 24 Jan 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/01/24.html</guid><description>Deno v1.7.0がリリース Deno v1.7.0がリリースされました。
以下は変更点の要約です:
deno compileコマンドでクロスコンパイルや軽量バイナリの生成、パーミッションの指定などがサポートされた import及びWorkerでData URLがサポートされた Deno.resolveDnsが実装された Deno.transpileOnly/bundle/compileが、Deno.emitという単一のAPIに統合された deno fmtコマンドでマークダウンファイルがサポートされた ReadableStreamでasyncIteratorプロトコルが実装された ReadableStream#getIteratorが非推奨になった(v1.8で削除されることが予定されています) Workerを起動する際に、パーミッションを指定できるようになった globalThis.location及び--locationフラグがサポートされた fetch及びWorkerで相対URLを指定できるようになった fetchでリクエストボディのストリミーングがサポートされた TLSセッションキャッシュが実装された また、magurotunaさんによって、Deno v1.7.0に関する日本語の紹介記事が書かれています。
Deno 1.7.0 がリリースされたので新機能や変更点の紹介 deno-rollup - RollupのDenoポート deno-rollupはRollupをDenoから使用できるようにしたパッケージです。
内部的にはRollupのブラウザビルドが利用されています。
CLIまたはJavaScript APIが提供されており、それらを使用することでソースコードをバンドルできます。
https://github.com/cmorten/deno-rollup
code-block-writer - JavaScript/TypeScriptコードの生成をサポートするモジュール code-block-writerはJavaScript/TypeScriptコードの生成をサポートするDenoモジュールです。
設定を変更することでインデント幅や文字列を囲むのに使用するクォートなどを柔軟に変更することができます。
また、このモジュールはnpmパッケージとしても公開されており、Node.jsからも使用することができます。
https://github.com/dsherret/code-block-writer</description></item><item><title>2021/01/11〜2021/01/17の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/01/17.html</link><pubDate>Sun, 17 Jan 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/01/17.html</guid><description>Deno in 2020 Denoの公式ブログポストにて、Deno in 2020という記事が公開されました。
この記事では、2020年中にDenoに行われた変更点がまとめられています。
また、この記事の公開に合わせて、Deno Surveyというアンケートも実施されています。
https://deno.land/posts/deno-in-2020
Obsidian - GraphQLクライアント/サーバモジュール ObsidianはDenoで実装されたGraphQLクライアント/サーバモジュールです。
SSRされたReactアプリケーション向けに最適化されています。
現時点では、以下のような機能が提供されています:
Reactとの統合(useObsidianフック、ObsidianWrapperコンポーネント) Oakフレームワークとの統合 クライアントサイド及びサーバサイドでのキャッシュ(サーバサイドキャッシュではRedisが使用されています) GraphQL Playground https://github.com/open-source-labs/obsidian
Sinco - ブラウザのオートメーション・テストツール SincoはDenoで動作するブラウザのオートメーション・テストツールです。
現時点ではヘッドレスモードのChromeのみに対応しています。
https://github.com/drashland/sinco</description></item><item><title>2021/01/04〜2021/01/10の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/01/10.html</link><pubDate>Sun, 10 Jan 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/01/10.html</guid><description>vno vnoはDenoでVue.jsを用いた開発を行うためのビルドツールです。
現時点では以下のような機能が提供されているようです。
シングルファイルコンポーネントのビルド・バンドル Devサーバ まだ実装されてはいないものの、将来的にはSSRを実装することも検討されているようです。
Lume LumeはDenoで実装されたシンプルなスタティックサイトジェネレータです。
markdown, nunjucks, jsxなど様々な形式でページを記述できる。 プラグインシステムにより拡張が可能。 bench - DenoとNode.jsフレームワークのベンチマーク benchは、Deno及びNode.jsフレームワークのベンチマークを公開しています。
GitHub Actionsを使用して、毎日、それぞれのフレームワークに対してベンチマークが実行されています。
現時点では、以下のフレームワークに対するベンチマークが公開されています:
abc alosaur deno (std/http) dinatra drash express fastify node (httpモジュール) oak servest mandarinets aqua reno</description></item><item><title>2020/12/28〜2021/01/03の最新情報</title><link>https://uki00a.github.io/deno-weekly/articles/2021/01/03.html</link><pubDate>Sun, 03 Jan 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/01/03.html</guid><description>Deno@v1.6.3がリリースされた Denoのv1.6.3がリリースされました。
ハイライト deno lspにtextDocument/renameやcacheコマンドが実装されました。 std@0.83.0も同時にリリースされました。std/node/fsにmkdtempとmkdtempSyncが実装されています。 deno-puppeteerが公開された puppeteerのDenoポートであるdeno-puppeteerが公開されました。</description></item><item><title>はじめに</title><link>https://uki00a.github.io/deno-weekly/articles/2021/01/02.html</link><pubDate>Sat, 02 Jan 2021 00:00:00 +0000</pubDate><guid>https://uki00a.github.io/deno-weekly/articles/2021/01/02.html</guid><description>はじめに このサイトでは、Denoに関する最新情報を定期的に発信しようと思います。
日頃からDenoに関するリポジトリや情報などをウォッチしており、どうせならそれに関する情報をアウトプットしてみようと思い、始めた試みです。
これから隔週程度の間隔で情報を発信していこうと思います。</description></item></channel></rss>