Deno Deploy Beta 4
Deno Deploy Beta 4が発表されました。
このリリースに合わせて、有料のProプランが公開されています。 詳しくは、以下の記事で価格設定などについて解説されています。
その他にも、ダッシュボードがリニューアルされています。 リクエストごとの平均CPU時間の可視化やログのUIの改善などが実施されています。
https://deno.com/blog/deploy-beta4
Deno v1.22.1
Deno v1.22.1がリリースされました。
このリリースはバグ修正を中心に行われています。
主な変更点:
Deno.ChildStatus.signal
の型がstring
からDeno.Signal
に変更されました。deno test --coverage
で、interface
のみを含むファイルなどで計測結果がNaN%
と表示される問題が修正されました。WebSocket.close
を呼ぶと"close"
イベントが2回発火される問題が修正されました。globalThis.dispatchEvent
が改ざんされている(delete
による削除など)と、Deno.exit()
でエラーが発生する問題が修正されました。Deno.permissions.query()
などのパーミッション関連のAPIに不正な形式の引数を与えた際のエラーメッセージが改善されました。
https://github.com/denoland/deno/releases/tag/v1.22.1
deno_std v0.141.0
deno_std v0.141.0がリリースされました。
いくつかの破壊的変更が実施されています。
testing/asserts
assertStrictEquals
などの改善
assertStrictEquals
/ assertAlmostEquals
/ assertNotStrictEquals
の内部の比較処理で、===
の代わりにObject.is()
を使用するように修正されています。(Node.jsのassert
パッケージなどと同様の挙動に変わりました。)
assertEquals
などの型定義の改善 (破壊的変更)
assertEquals
やassertNotEquals
などの型定義が修正されています。
例えば、下記のように異なる型の値同士を比較すると、型エラーが発生します。
assertEquals(123, "foo");
次のようにすると、型エラーを回避できます。
assertEquals<unknown>(123, "foo");
assertRejects
やassertThrows
の戻り値の変更
assertRejects
やassertThrows
で補足された例外が戻り値として返却されるように修正されました。
const error = assertThrows(() => {
throw new Error("foo");
});
assert(error instanceof Error);
assertEquals(error.message, "foo");
flags
parse()
関数にcollect
オプションが追加されました。(破壊的変更)
下記のように、collect
オプションで指定されたフラグのみ、複数回の指定が許容されるように挙動が変更されています。
import { parse } from "https://deno.land/std@0.140.0/flags/mod.ts";
parse([
"deno",
"run",
"--check=true",
"--config",
"deno.json",
"--check=false",
"--config=tsconfig.json",
"main.ts",
], {
boolean: ["check"],
string: ["config"],
collect: ["config"],
});
// {
// _: [ "deno", "run", "main.ts" ],
// check: false,
// config: [ "deno.json", "tsconfig.json" ]
// }
streams
toTransformStream()
の追加
streams/conversion
にtoTransformStream()
が追加されました。
ジェネレータ関数をTransformStream
に変換できます。
import { readableStreamFromIterable } from "https://deno.land/std@0.140.0/streams/conversion.ts";
const readable = readableStreamFromIterable(["a", "b", "c"])
.pipeThrough(toTransformStream(async function* transformer(source) {
for await (const x of source) {
yield x.repeat(2);
}
}));
for await (const x of readable) {
console.log(x); // aa, bb, cc
}
earlyZipReadableStreams()
の追加
streams/merge
にearlyZipReadableStreams()
が追加されています。
既存のzipReadableStreams()
とは異なり、指定されたReadableStream
のうちいずれか一つでも処理が停止したら、earlyZipReadableStreams()
から返却されるReadableStream
も停止します。
import { readableStreamFromIterable } from "https://deno.land/std@0.140.0/streams/conversion.ts";
import { earlyZipReadableStreams } from "https://deno.land/std@0.140.0/streams/merge.ts";
const a = readableStreamFromIterable([1, 2, 3]);
const b = readableStreamFromIterable([4, 5, 6, 7, 8]);
for await (const x of earlyZipReadableStreams(a, b)) {
console.log(x); // 1, 4, 2, 5, 3, 6
}
TextLineStream
の改善
streams/delimiter
のTextLineStream
で\r
がサポートされました。
http
http/util
モジュールが追加されています。
現在は、ETag値を比較するcompareEtag
という関数が公開されています。
node
dns
パッケージで下記レコードの問い合わせがサポートされました。
NAPTR
(dns.resolveNaptr
)NS
(dns.resolveNs
)CAA
(dns.resolveCaa
)SOA
(dns.resolveSoa
)
また、fs
パッケージのReadStream
が、実装はされていたもののexport
されていなかった問題が修正されています。
async/pool
pooledMap
の戻り値の順番が引数のIterable
と一致するように修正されています。
https://github.com/denoland/deno_std/releases/tag/0.141.0
denoland/examples
denoland/examplesというリポジトリが公開されています。
Reactなどを使ったexampleアプリの一覧などが掲載されています。
https://github.com/denoland/examples
denoflare v0.5.0
denoflare v0.5.0がリリースされました。
大きな変更点として、R2のサポートが追加されています。