@ts-types@ts-self-typesプラグマについて

Denoで@ts-types@ts-self-typesというプラグマが実装されていたようです。

Document @ts-self-types (denoland/deno-docs#502)

@ts-typesについては@deno-typesプラグマと同様に、特定のJavaScriptモジュールに対して型定義を適用したい場合に指定することが想定されているようです。今後は@deno-typesではなく@ts-typesの方の使用が推奨されるようです。

// @ts-types="./add.d.ts"
import { add } from "./add.js";

@ts-self-typesについても、JavaScriptで書かれたモジュールに型を適用するための機能のようですが、実質的に/// <reference types="..." />と同様に動作するようです。基本的にJavaScriptモジュールに対して型を適用したい場合を除いて、/// <reference types="..." />の方の使用が推奨されるようです。

// @ts-self-types="./globals.d.ts"

deno_stdのリリース

deno_stdがリリースされています。

@std/async@1.0.0

@std/async@1.0.0がリリースされています。

@std/cli@1.0.0

@std/cli@1.0.0がリリースされています。

@std/text@1.0.0

@std/text@1.0.0がリリースされています。

このリリースに合わせて@std/text/caseが削除されています。代わりに@std/text/caseで提供されていた各APIは@std/text/to-camel-case@std/text/to-kebab-caseなどのファイルへ移行されています。

@std/ulid@1.0.0

@std/ulid@1.0.0がリリースされています。

@std/csv@1.0.0-rc.4

@std/csv@1.0.0-rc.4がリリースされています。

ParseErrorが削除されています (今後はSyntaxErrorthrowされます)

@std/yaml@1.0.0-rc.4

@std/yaml@1.0.0-rc.4がリリースされています。

stringify()parse()で利用されていたYamlErrorが削除されています。今後はstringify()からはTypeError, parse()からはSyntaxErrorthrowされます。

@std/expect@1.0.0-rc.3

@std/expect@1.0.0-rc.3がリリースされています。

expect.extend()との併用を想定して、expect()に型引数が追加されています。

@std/semver@1.0.0-rc.3

@std/semver@1.0.0-rc.3がリリースされています。

@std/semver/increment:

increment()prereleasebuildmetadata引数が削除されています。代わりにoptions引数が追加されており、そこでprereleasebuildオプションを指定できます。

@std/dotenv@0.225.0

@std/dotenv@0.225.0がリリースされています。

load()から以下のオプションが削除されています。

  • defaultsPath
  • examplePath
  • allowEmptyValues

Hono v4.5.0

Hono v4.5.0がリリースされています。

新しいミドルウェア

以下のモジュールが追加されています。

hono/jsx

React v19に関連して、hono/jsx/domに以下のフックが追加されています。

  • useActionState()
  • useFormStatus()
  • useOptimistic()

また、jsxRenderer<head>内にレンダリングされた<title><meta>などのタグを認識してくれるように改善されているようです。

hono/jsxとReactの互換パッケージ

@hono/react-compatというhono/jsxreactreact-domのエイリアスとして利用するためのパッケージが公開されています。

Denoから使う際はdeno.jsonでImport Mapsを定義しておくとよさそうです。

{
  "imports": {
    "react": "npm:@hono/react-compat@0.0.1",
    "react-dom": "npm:@hono/react-compat@0.0.1"
  }
}