2021/05/09〜2022/05/15の最新情報

Deno v1.21.3 Deno v1.21.3がリリースされました。 deno task deno task <タスク名>の<タスク名>の直後に--から始まるオプションを指定できない問題が修正されました。 その他の修正 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 "https://deno.land/std@0.139.0/encoding/jsonc.ts"; console.log(parse(`{ // hello "foo": 1 }`)); // => { 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: "testdata" }); https://github.com/denoland/deno_std/releases/tag/0.139.0 --no-configオプションのサポートについて deno.json(c)の自動的な読み込みを無効化するために、--no-configオプションを追加するPRが作成されています。 feat: add –no-config flag (#14555)...

May 15, 2022

2021/03/28〜2022/04/03の最新情報

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<Response>; 変更後: function fetch( input: URL | Request | string, init?: RequestInit, ): Promise<Response>; deno lspでdeno.jsoncなどの拡張子が.jsoncのファイルがウォッチされない問題が修正されました。 deno taskコマンドでのPATHEXT環境変数の取り扱いが改善されました。 https://github....

April 3, 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/10/25〜2021/10/31の最新情報

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("node:events"); 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: エラーログに色がつくようになりました...

October 31, 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

2021/07/26〜2021/08/01の最新情報

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です。...

August 1, 2021

2021/06/21〜2021/06/27の最新情報

Deno v1.11.2がリリースされました Deno v1.11.2がリリースされました。 このリリースでは、deno lspへの機能追加やWeb標準との互換性の向上などが実施されています。 変更点: deno lspでリントエラーを無視するためのクイックフィックスアクションが実装されました。 deno lspで文字列やコメント中に現れた識別子がリネームされないように修正されました。 Deno.emit()のmoduleオプションで"es2020"がサポートされました。 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

June 27, 2021

2021/05/24〜2021/05/30の最新情報

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

May 30, 2021