Deno v1.22.3

Deno v1.22.3がリリースされました。

主な変更点:

  • fetch APIの引数にURLオブジェクト渡す形式が非推奨ではなくなりました。(TypeScript公式の型定義でもサポートされたため)
    // Deno v1.22.3までは、下記の形式は非推奨でした
    const res = await fetch(new URL("https://example.com"));
    
  • Import Mapファイルなどの.json.jsonc形式のファイルが変更されたときに、deno lspが自動で変更を検知してくれるようになりました。
  • --watchオプションで、dynamic importされるファイルが監視されない問題が修正されました。
  • エラー以外の値がthrowされた際にコンソールへ出力される内容が改善されました。

https://github.com/denoland/deno/releases/tag/v1.22.3

deno_std v0.143.0

deno_std v0.143.0がリリースされました。

http/http_statusでの破壊的変更について

STATUS_TEXTMap<Status, string>からReadonly<Record<Status, String>>へ変更されています。(破壊的変更)

その他にも、いくつかのヘルパー関数やタイプが追加されています。

import { isErrorStatus, STATUS_TEXT } from "https://deno.land/std@0.143.0/http/http_status.ts";

STATUS_TEXT[404]; // => "Not Found"
isErrorStatus(404); // => true
isErrorStatus(200); // => false

flagsモジュールでnegatableオプションがサポート

ここで指定されたフラグのみが、--no-プレフィックスの付与による否定がサポートされます。

import { parse } from "https://deno.land/std@0.143.0/flags/mod.ts";

parse(["deno", "fmt", "--no-config"], {
  string: ["config"],
  negatable: ["config"],
}); // => { _: [ "deno", "fmt" ], config: false }

parse(["deno", "fmt", "--no-config"], {
  string: ["config"],
}); // => { _: [ "deno", "fmt" ], "no-config": true }

dotenvモジュールでインラインコメントがサポート

#に続けてコメントを記述できます。

# This is a comment.
FOO=BAR # foobar
PORT=3000
import { config } from "https://deno.land/std@0.143.0/dotenv/mod.ts";

await config(); // => { FOO: "BAR", PORT: "3000" }

encoding/varintモジュールの追加

LEB128によるエンコーディング・デコーディングがサポートされています。

import { encodeU32 } from "https://deno.land/std@0.143.0/encoding/varint.ts";

encodeU32(128); // => Uint8Array(2) [ 128, 1 ]

node/assertの改善

deepEqualnotDeepEqualがサポートされました。


https://github.com/denoland/deno_std/releases/tag/0.143.0

deno_stdへのencoding/front_matterモジュールの追加について

deno_stdへFrontmatter用のモジュールを追加するPRが作成されています。

encoding: add front matter module (#2335)

今のところ、下記のように使用できる想定のようです。

import { extract } from "https://deno.land/std/encoding/front_matter.ts";

const { attrs, body } = extract<{ title: string, date: Date }>(`---
title: foobar
date: 2022-06-12
---

Hello`);
console.assert(attrs.title === "foobar");
console.assert(attrs.date instanceof Date);
console.assert(body === "Hello");

https://github.com/denoland/deno_std/pull/2335

Fresh v1.0のロードマップ

Fresh v1.0のロードマップが公開されています。

v1.0のリリースまでに、以下の変更などが行われる予定のようです。

詳しい内容については、下記を参照いただければと思います:


https://github.com/lucacasonato/fresh/issues/219

DenoのYoutubeチャンネルでイベントの動画が公開

DenoのYoutubeチャンネルでMelbJSやRemixConfなどでの発表内容が公開されています。


https://deno.news/archive/44-ryans-dream-stack-kitson-deploys-to-the-edge

oakserver/nat

DenoとDeno Deploy向けのSSRフレームワーク

acornnano-jsx, twindなどを使用して実装されているようです。


https://github.com/oakserver/nat