import.meta.resolve()
のサポートconst worker = new Worker(import.meta.resolve("./worker.js")); // => "file:///home/uki00a/dev/worker.js"
Import mapsも解釈してくれます。
{
"imports": {
"redis": "https://deno.land/x/redis@v0.26.0/mod.ts"
}
}
import.meta.resolve("redis"); // => "https://deno.land/x/redis@v0.26.0/mod.ts"
addEventListener("unhandledrejection", (event) => {
console.error(event.reason); // error: Uncaught (in promise) Error: foo
});
Promise.reject(new Error("foo"));
let called = false;
addEventListener("beforeunload", (event) => {
if (!called) {
called = true;
event.preventDefault();
setTimeout(() => console.log(3), 50);
}
});
setTimeout(() => {
console.log(1);
setTimeout(() => console.log(2), 200);
}, 100);
deno.json(c)
でdeno test
がカスタマイズできるように{
"test": {
"files": {
"exclude": ["vendor"]
}
}
}
deno test
で--parallel
オプションがサポートテストケースを並列実行できます。
$ deno test --parallel
DENO_JOBS
環境変数で並列数を調整できます。
$ DENO_JOBS=4 deno test --parallel
このオプションの追加により、既存の--jobs
オプションは非推奨化されています。
Deno.Child
とDeno.SpawnOutput
の型定義に変更が加わっています。deno lsp
でimport-map-remap
コードアクションがサポートsemver
モジュールの追加import * as semver from "https://deno.land/std@0.149.0/semver/mod.ts";
console.log(semver.valid("v1.2.3")); // => 1.2.3
console.log(semver.gt("2.0.0", "1.2.4")); // => true
console.log(semver.satisfies("1.4.2", ">=1.x")); // => true
Deno でコマンドラインツールを雑に作ったので感想の記事がきっかけで入ったようです
encoding/json/stream
モジュールの追加import { JSONParseStream } from "https://deno.land/std@0.149.0/encoding/json/stream.ts";
import { readableStreamFromIterable } from "https://deno.land/std@0.149.0/streams/conversion.ts";
const readable = readableStreamFromIterable([
`{"name": "foo"}`,
`{"a": 1, "b": true}`,
]).pipeThrough(new JSONParseStream());
for await (const json of readable) {
console.log(json);
// Output:
// { name: "foo" }
// { a: 1, b: true }
}
Denoが$21Mを調達
この記事では、DenoやDeno Deployがどのような背景・目的で開発されているのかについても解説されています。
これに合わせて、Freshのリポジトリがdenoland organization配下に移動されています。
また、公式でFreshの紹介記事も公開されています。
JavaScriptCoreベースのJavaScriptランタイムであるBunのソースコードが公開されました。