Deno v1.24.1
Deno v1.24.1がリリースされました。
このリリースはバグ修正がメインです。
"unhandledrejection"
イベントに関する修正
"unhandledrejection"
イベントのリスナに関する型定義が修正されています。
また、モジュールのトップレベルで同期的にエラーが発生した際にも"unhandledrejection"
イベントが発火されるように修正されています。
Deno.Child.unref()
に関する修正
Deno.Child.unref()
を呼ぶと、Deno.Child.stdout
やDeno.Child.stderr
もunref
されるように修正されています。
その他の変更点
型チェック時(--check
)に、TypeScriptのjsxFactory
とjsxFragmentFactory
オプションが自動で設定される問題が修正されています。
https://github.com/denoland/deno/releases/tag/v1.24.1
deno_std v0.150.0
deno_std v0.150.0がリリースされました。
http/http_errors
createHttpError
でheaders
オプションがサポートされています。
import { createHttpError } from "https://deno.land/std@0.150.0/http/http_errors.ts";
import { Status, STATUS_TEXT } from "https://deno.land/std@0.150.0/http/http_status.ts";
const error = createHttpError(
Status.Unauthorized,
STATUS_TEXT[Status.Unauthorized],
{ headers: { "WWW-Authenticate": "Basic" } }
);
error.headers; // => `Headers { "www-authenticate": "Basic" }`
io/writers
StringWriter
にデータを書き込む際に、引数のUint8Array
がコピーされるようになりました。
引数に渡したUint8Array
が別の箇所で変更されると、StringWriter#toString
が返却する文字列にも影響が出てしまう問題があったようです。
import { StringWriter } from "https://deno.land/std@0.150.0/io/writers.ts";
const encoder = new TextEncoder();
const w = new StringWriter();
const bytes = encoder.encode("Hello");
w.writeSync(bytes);
bytes[0] = 104;
w.toString(); // => v0.150.0だと"Hello", v0.149.0までは"hello"が返されます
node
process
:process.on("uncaughtException")
とprocess.on("uncaughtExceptionMonitor")
がサポートされました。fs
:fs.watch()
のNode.jsとの互換性が向上しました。child_process
:Deno.spawnChild()
を使用して内部実装が書き直されました。child_process
:ChildProcess.ref()
とChildProcess.unref()
が実装されました。
https://github.com/denoland/deno_std/releases/tag/0.150.0
Roll your own JavaScript runtime
Denoの内部でも使われているdeno_core crateを使って、JavaScriptランタイムを自作するチュートリアルが公開されています。
esm.sh v89
esm.shのv89がリリースされました。
?deno-std
パラメータがサポートされており、esm.shが使用するdeno_std/node
のバージョンを指定できるようになりました。
https://esm.sh/<some-module>?deno-std=0.149.0
https://github.com/ije/esm.sh/releases/tag/v89
Build a Full-stack CRUD App using Deno’s Fresh and Postgres
Fresh/Remult/PostgreSQLを使用して、シンプルなCRUDアプリを作成するチュートリアルが公開されています。