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

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/01/23〜2023/01/29の最新情報

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....

January 29, 2023

2021/03/21〜2022/03/27の最新情報

Deno v1.20.2 permissionsオプションへの破壊的変更について Deno v1.20で行われる予定であったpermissionsオプションへの破壊的変更が正式に反映されました。 詳細については下記を参照ください。 Deno v1.20 deno taskコマンドの改善 deno taskコマンドの内部で使われているdeno_task_shellがアップデートされています。 これにより、cp -Rや|&のサポートなどが行われています。 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 "https://deno.land/std@0.132.0/collections/binary_heap.ts"; const heap = new BinaryHeap<number>(); heap....

March 27, 2022

2021/02/07〜2022/02/13の最新情報

--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 & net APIs (#13615) 背景: 現在、Denoのファイルシステムやネットワーク関連のAPIはGoのスタイルに従っています(Deno.Reader/Deno.Writer) しかし、これらのAPIはfetch()やStreams APIと互換性がありません (一応、この差異を吸収するためにdeno_std/streamsが提供されていたりします) この問題を解消するため、Deno.FileやDeno.Connなどにreadableプロパティ(ReadableStream<Uint8Array>型)やwritableプロパティ(WritableStream<Uint8Array>型)を追加することが検討されています。 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....

February 13, 2022

2021/01/10〜2022/01/16の最新情報

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 'http://localhost:3000/bin.ts' "$@" この形式でスクリプトが作成されてしまうと、将来的に新しい--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....

January 16, 2022

2021/11/01〜2021/11/07の最新情報

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: () => Promise<Response>) { 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 "....

November 7, 2021

2021/08/30〜2021/09/05の最新情報

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

September 5, 2021