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

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

April 7, 2024

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

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

March 24, 2024

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

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

January 7, 2024

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

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

December 10, 2023

2023/11/27〜2023/12/03の最新情報

fresh v1.6 fresh v1.6がリリースされました。 以下に内容をまとめたため、よろしければそちらを参照いただければと思います。 fresh v1.6 Deno v1.38.4 Deno v1.38.4がリリースされました。 node:child_process: spawnSync()でstatusが常に0に設定される問題が修正されました。 deno lsp: CPU使用率やパフォーマンスの改善が実施されています。 Deno Cron (Deno.cron())のアナウンス Deno.cron()が正式にアナウンスされました。 Announcing Deno Cron 上記の記事によると、Deno.cron()はすでにDeno Deployでも利用できるようで、登録されたハンドラを実行する際に、オンデマンドでisolateを立ち上げてくれるようです。 freshのイテレーションプラン (2023/12) freshの2023/12におけるイテレーションプランが公開されています。 December 2023 iteration plan #2108 View TransitionsのサポートやDeno v1.38で導入されたHMRやprecompiled JSX transformなどに関する検討などが計画されているようです。 OpenAI Deno SDK OpenAI公式からDenoのSDKが公開されました。 And… we’re back to shipping! Announcing the @OpenAI Deno SDK, now available at https://t.co/1apX59gG5S, built in collaboration with @stainlessapi. Deno is a Javascript runtime that natively supports Typescript, is secure by default, and provides an awesome DevX....

December 3, 2023

2023/11/13〜2023/11/19の最新情報

ワークスペースのサポートについて DenoにワークスペースをサポートするPRがマージされています。Deno v1.39でリリースされる可能性があるかもしれません。 feat(unstable): Workspaces support #20410 これはdeno.jsonで定義された各ワークスペースごとに独自のImport Mapsを持たせることができる機能のようです。 利用方法 ⚠️この機能は今後使用方法が大きく変わる可能性があります。 以下の構成のプロジェクトがあったとします。 . ├── deno.json ├── main.ts ├── ws-a │ ├── deno.json │ └── mod.ts └── ws-b ├── deno.json └── mod.ts ワークスペースを利用する際は、ルートディレクトリのdeno.jsonでワークスペースとして扱うディレクトリを指定します。 { "workspaces": ["ws-a", "ws-b"], "imports": { "$std/": "https://deno.land/std@0.206.0" } } これにより、ws-aとws-bという2つのワークスペースが認識されます。 ws-a/deno.jsonは以下のように定義します。ここではルートディレクトリとは異なるバージョンのdeno_stdを読み込むよう指定しています。 { "name": "ws-a", "version": "0.0.1", "imports": { "$std/": "https://deno.land/std@0.207.0/" } } ws-a/mod.tsは以下のように書かれていたとします。 export { VERSION } from "$std/version....

November 19, 2023

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

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

October 8, 2023

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

Deno v1.37でリリースされそうな機能について (part 2) 前週に引き続き、直近で開発されているDeno v1.37でリリースされそうな機能について紹介いたします。 Jupyter Kernelの実装 (deno jupyter) Deno本体にJupyter Kernelを実装するPRがマージされています。 feat: Add “deno jupyter” subcommand #20337 このPRではdeno jupyterという新しいコマンドが実装されており、これを利用することで、Deno本体に組み込まれたJupyter Kernelのインストールや起動などを行うことができるようです。 このコマンドでは、以下の3つのオプションが提供されています。 オプション 説明 --install Deno本体に組み込まれたKernelをJupyterにインストールします。 --kernel Deno本体に組み込まれたKernelを起動します。以下の--connとセットで指定する必要があります。 --conn コネクションファイルのパス これらのうち、ユーザーが直接利用するのは--installオプションです。 # KernelをJupyterにインストールします $ deno jupyter --unstable --install --kernelと--connについては、JupyterがKernelを起動する際に使用されるもののため、ユーザーが直接利用することは想定されていません。 また、--installも--kernelも指定しないでdeno jupyterを実行すると、Deno Kernelがインストールされているかどうかを確認できるようです。 $ deno jupyter --unstable 今のところ、deno jupyterの利用には--unstableの指定が必要なようです。 using/await usingのサポート (TypeScriptのみ) Deno本体のTypeScriptをv5.2へアップデートする対応に続いて、usingとawait usingをサポートする対応がマージされています。 feat: explicit resource management in TypeScript #20506...

September 17, 2023

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

Deno v1.37でリリースされそうな機能について 今週はDenoのリリースが行われていないため、おそらく次にリリースされるであろうDeno v1.37に入りそうな機能などについて紹介します。 Lockfile v3 deno.lockの新しいフォーマット(v3)が実装されています。 feat: lockfile v3 #20424 npm.specifiersがpackages.specifiersへ、npm.packagesがpackages.npmへ移動されています。 これはdeno:URLのサポートを想定した変更のようです。 TypeScript v5.2 Deno本体に搭載されたTypeScriptをv5.2にアップデートするPRがマージされています。 feat: TypeScript 5.2 #20425 ただし、usingやDecorator Metadataなどについてはv8側でサポートされるまでは使用できない状況のようです。 Import Attributes DenoにImport Attributesを実装するPRがマージされています。 feat: support import attributes #20342 // static import import data from "./data.json" with { type: "json" }; // dynamic import const data2 = await import("./data2.json", { with: { type: "json" } }); Deno Deployでnpmパッケージがサポート Deno Deployでnpmパッケージがサポートされました。Denoと同様に、npm:URL経由でnpmパッケージを読み込むことができます。 以下の公式ブログ記事では、ExpressやFastify, OpenAI APIなどの使用例が紹介されています。...

September 10, 2023

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

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 "https://deno.land/std@0.193.0/http/user_agent.ts"; const ua = new UserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"); console.info(ua.browser); // => { name: "Chrome", version: "114.0.0.0", major: "114" } 直近でリリースされたOak v12.6.0にも、このstd/http/user_agent.tsを使用したUser-Agentのサポートが入っています。 std/json/concatenated_json_parse_stream.ts nullnullのように、セパレータなしで連続してnullやtrueなどの値が現れた際に、適切に処理が行われるように修正されました。 import { ConcatenatedJsonParseStream } from "https://deno.land/std@0.193.0/json/concatenated_json_parse_stream.ts"; const result = []; for await ( const x of ReadableStream.from(["nullnull", "1"])....

July 9, 2023