Deno v1.22

Deno v1.22がリリースされました。

変更点については以下の記事にまとめたため、詳しくはこちらを参照いただければと思います。

deno_std v0.140.0

deno_std v0.140.0がリリースされました。

http

serve関数などにonListenオプションが追加されています。

このオプションに関数を設定しておくと、サーバ起動時にそれが呼ばれます。

import { serve } from "https://deno.land/std@0.140.0/http/server.ts";

serve(() => Response.json({ message: "hello" }), {
  onListen({ port }) {
    console.log(`Listening on port ${port}`);
  },
});

collections/deep_merge

deepMerge関数で、循環参照のあるオブジェクトなどで無限ループが発生する問題が修正されています。

testing/asserts

assertRejects()に渡した関数が同期的に例外を投げた場合に成功と扱われてしまう問題が修正されました。

await assertRejects(() => {
  throw new Error("foo");
}); // => rejectされたPromiseが返されていないため、エラー

https://github.com/denoland/deno_std/releases/tag/0.140.0

SQLバイディング

Deno本体でSQLバインディングを公開するPRが作成されています。

experiment(runtime): expose SQLite bindings (#14627)

まだ実際にリリースされるかどうかは不明ですが、今のところ、下記のようにしてクエリを発行できる想定のようです。

const { Connection } = Deno.sqlite;
const conn = new Connection("sqlite.db");
const stmt = conn.prepare(`SELECT * FROM users WHERE id = ?`);
stmt.query(123);

https://github.com/denoland/deno/pull/14627

deno_blog

deno_blogという、Deno Deploy上で動作するブログを作成できるモジュールが公式からリリースされました。

import blog from "https://deno.land/x/blog@0.0.1/blog.tsx";

blog(import.meta.url, {
  title: "My first blog",
  author: "uki00a",
  header: "Hello world!",
  style: "body { padding: 8rem 0; background-color: #f0f0f0; }",
});

RemixでのDenoの公式サポートについて

Remix v1.5.0がリリースされました。

このリリースに合わせて、Denoの公式サポートが発表されています。(今まで、RemixでのDenoのサポートは実験的という位置づけでした) また、下記ドキュメントでDenoプロジェクトにおけるnpmパッケージの管理について詳しく解説されています。


https://github.com/remix-run/remix/releases/tag/v1.5.0

Aleph.js v1.0.0-alpha.47

Aleph.js v1.0.0-alpha.47がリリースされました。

このリリースに合わせて、RustのフロントエンドフレームワークであるYewの使用例が追加されています。


https://github.com/alephjs/aleph.js/releases/tag/1.0.0-alpha.47

dangodb

dangoDBというDeno向けのMongoDB ODMが公開されました。