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

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

October 8, 2023

2023/04/03〜2023/04/09の最新情報

Flashの削除について まだリリースはされていませんが、Deno v1.25で実装されたFlashというHTTPサーバを削除する対応が実施されているようです。 refactor: remove “ext/flash” #18578 これに伴い、Flashを起動するためのAPIであったDeno.serve()についても、一時的にDeno.serveHttp()ベースの実装へ書き換えられています。 refactor: “Deno.serve()” API uses “Deno.serveHttp()” 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....

April 9, 2023

2022/11/21〜2022/11/27の最新情報

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ファイルの定義に/が含まれれているとマッピングがうまく動作しない問題が解消されています { "imports": { "preact/": "npm:preact/" } } 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....

November 27, 2022

2021/08/22〜2022/08/28の最新情報

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<string, unknown>[]に変更されています。 import { parse } from "https://deno.land/std@0.153.0/encoding/csv.ts"; const records = parse(`id,name 1,foo 2,bar`); console.log(records); // Output: [ [ "id", "name" ], [ "1", "foo" ], [ "2", "bar" ] ] std/http/cookie_mapモジュールが追加 MapライクなAPIをベースにCookieを管理するためのユーティリティモジュールが追加されました。 CookieMapはリクエスト及びレスポンスに関するCookieの管理に利用することができます。 import { CookieMap, mergeHeaders } from "https://deno.land/std@0.153.0/http/cookie_map.ts"; const req = new Request("http://localhost:3000", { headers: { cookie: "foo=bar; hoge=piyo;" }, }); const cookies = new CookieMap(req); cookies....

August 28, 2022

2021/07/04〜2022/07/10の最新情報

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: "localhost", URL: "http://localhost:3000" } その他には、stringify()関数が追加されています。 import { stringify } from "https://deno.land/std@0.147.0/dotenv/mod.ts"; stringify({ PORT: "3000", HOST: "localhost", LOG_LEVEL: "debug" }); // PORT=3000 // HOST=localhost // LOG_LEVEL=debug http oak_commonsのHTTPエラーとコンテントネゴシエーション用のモジュールがdeno_std/httpに取り込まれました。 http/negotiation import { accepts } from "https://deno.land/std@0.147.0/http/negotiation.ts"; const req = new Request("https://github....

July 10, 2022