Supabase Functions
SupabaseでSupabase FunctionsというFaaSが利用できるようになりました。
Supabase FunctionsはDeno Deployをベースにしており、TypeScriptなどを利用してコードを記述できるようです。
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.com/denoland/deno/releases/tag/v1.20.4
deno_std v0.133.0
deno_std v0.133.0がリリースされました。
testing/mockモジュールが追加
testingモジュールにテストスパイやテストスタブなどを提供するモジュールが追加されました。
spy
spy()で関数をラップすることで、assertSpyCall()やassertSpyCalls()などで検証ができます。
import { assertSpyCall, assertSpyCalls, spy } from "https://deno.land/std@0.133.0//testing/mock.ts";
import { assertEquals } from "https://deno.land/std@0.133.0/testing/asserts.ts";
function add(a: number, b: number): number {
return a + b;
}
const addSpy = spy(add);
assertEquals(addSpy(1, 2), 3); // => OK
assertEquals(addSpy(2, 3), 5); // => OK
assertSpyCall(addSpy, 0, {
args: [1, 2],
returned: 3,
}); // => OK
assertSpyCall(addSpy, 1, {
args: [2, 3],
returned: 5,
}); // => OK
assertSpyCalls(addSpy, 2); // => OK
stub
stub()を利用することで、オブジェクトのメソッドをスタブできます。
import { assertSpyCalls, returnsNext, stub } from "https://deno.land/std@0.133.0/testing/mock.ts";
import { assertEquals } from "https://deno.land/std@0.133.0/testing/asserts.ts";
const randomUUID = stub(crypto, "randomUUID", returnsNext([
"00000000-0000-0000-0000-000000000000",
"11111111-1111-1111-1111-111111111111",
]));
try {
assertEquals(crypto.randomUUID(), "00000000-0000-0000-0000-000000000000"); // => OK
assertEquals(crypto.randomUUID(), "11111111-1111-1111-1111-111111111111"); // => OK
assertSpyCalls(randomUUID, 2); // => OK
} finally {
randomUUID.restore();
}
returnsNext()はスタブを作成するためのヘルパであり、他にもreturnsArgs()やreturnsArg他)などの関数も提供されています。
bytesモジュールへの破壊的変更
indexOf,lastIndexOf, 及びincludesがそれぞれindexOfNeedle,lastIndexOfNeedle, 及びincludesNeedleへリネームされています。bytes/equalsのequalsNaiveとequalsSimdがprivateへ変更されました。
https://github.com/denoland/deno_std/releases/tag/0.133.0
denoland/wanted_modules
Deno公式でDenoに不足しているモジュールをレポートするためのリポジトリが作成されました。
詳しくはIssuesを参照ください。
https://github.com/denoland/wanted_modules
AstroにDenoアダプタが追加
Astro v0.26.0がリリースされました。
Denoアダプタ(@astrojs/deno)が追加されており、AstroとNode.jsで開発したコードをDeno上で動かせるようになりました。