Deno.test
のsub-steps APIが安定化Deno.test("nested test case", async (t) => {
const success = await t.step("step 1", async (t) => {
const success = await t.step("step 1-1", () => {
throw new Error("Failed!");
});
if (!success) throw new Error("Failed!");
await t.step("step 1-2", () => {});
});
if (success) throw new Error("Failed!");
});
シンボル定義を元にした型推論やシンボルへの別名の設定がサポート
const dylib = Deno.dlopen("./add.so", {
plus: {
name: "add",
parameters: ["i32", "i32"],
result: "i32",
} as const,
});
const result = dylib.symbols.plus("1", 2); // NG! (型エラー)
また、Deno.UnsafeFnPointer
が実装され、関数ポインタを取り扱えるようになりました。
今回のリリースでWeb Cryptography APIの実装が完了
現状、WPTの98.1%のテストが成功しているようです。
WebSocketStream
でハンドシェイク時に送信するヘッダを設定できるようになりました。
const wss = new WebSocketStream("wss://localhost:4000/ws", {
headers: { "X-FOO": "foo" },
});
また、WebSocketサーバ(Deno.upgradeWebSocket
)でping/pongメッセージのハンドリングがサポートされました。
Error.cause
の内容が表示されるようになりましたdeno install
で--prompt
オプションがサポートGo by ExampleライクなWebサイトが公開されました。
Denoの使用方法などについて解説されています。
deployctl
の開発が再開合わせて、deployctl
のv0.5.0がリリース
deployctl deploy
コマンドにより、Deno Deployへのリリースがサポートされました。
また、check
, run
, 及びtypes
コマンドが削除されています。
deno vendor
コマンドの提案# リモートモジュールを_vendorにキャッシュ+Import mapの生成
$ deno vendor main.ts
# deno vendorで生成されたImport mapを利用
$ deno run --import-map=_vendor/import_map.json main.ts
より詳しくは#13346を参照ください
window
変数を削除する提案#13367のissueでDenoからwindow
変数を削除する提案が行われています。
2.0のリリースに合わせて変更が実施される可能性もあるかもしれません。
deno_std/testing
への改善提案#1779のissueにて、testing/expect.ts
の追加が提案されています。
import { expect } from "https://deno.land/std/testing/expect.ts";
expect(add(1, 2)).toEqual(3)
#1831のissueにて、Deno.test
のsub-steps APIをベースにして、Mochaポリフィルの追加が提案されています。
describe("doSomethingAsync()", () => {
beforeEach(setup);
afterEach(cleanup);
it("should work", async () => {
await doSomethingAsync({ name: "foo" });
});
});
DenoからGoogle Analyticsへ情報を送信するためのモジュール
import { createReporter } from "https://deno.land/x/g_a@0.1.2/mod.ts";
import { serve } from "https://deno.land/std@0.122.0/http/server.ts";
const ga = createReporter();
serve(async (req, conn) => {
const start = performance.now();
const res = new Response("Hello");
await ga(req, conn, res, start, null);
return res;
}, { port: 3000 });
TauriとFFI(Deno.dlopen
)をベースにしたデスクトップアプリケーションフレームワーク