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上で動かせるようになりました。