Deno v1.38.5
Deno v1.38.5がリリースされました。
Deno.Kv
にwatch()
メソッドが実装されています。引数として監視したいキーの一覧を指定すると、戻り値として返却されたReadableStream<Deno.KvEntryMaybe<T>[]>
からそれらのキーに関する変更が通知されます。
const kv = await Deno.openKv(":memory:");
const watcher = kv.watch(
[
["users", 1],
["users", 2]
]
);
(async () => {
for await (const entries of watcher) {
// 変更があった際は通知されます。
console.info(entries);
}
})();
await kv.set(["users", 1], "foo");
await kv.set(["users", 2], "bar");
await kv.set(["users", 3], "baz");
--unstable-sloppy-imports
の実装について
まだリリースはされていませんが、Deno本体に--unstable-sloppy-imports
というオプションを導入するPRがマージされています。
この機能を有効化すると、以下のようなモジュールの読み込み方法が有効化されます。
拡張子なしでのモジュールのimport
// Denoがサポートする拡張子(ts, js, tsx, mjsなど)のファイルの探索を試みます。
// もしそれらの拡張子のファイルが見つかれば、それが読み込まれるようです。
import { add } from "./add";
ディレクトリを指定したimport
// 対象のディレクトリから`index.${Denoがサポートする拡張子}`を名前に持つファイルの探索を試みます。
import { foo } from "./path/to/dir";
TypeScriptモジュールの.js拡張子でのimport
// add.tsがあれば、それが読み込まれます。
import { add } from "./add.js";
この機能は以下のいずれかの方法で有効化できるようです。
--unstable-sloppy-imports
オプションを指定するdeno.json
でunstable: ["sloppy-imports"]
を設定するDENO_UNSTABLE_SLOPPY_IMPORTS
環境変数を設定する
この機能は既存のNode.jsプロジェクトをDenoで動かしやすくすることを目的としているようで、それ以外のケースにおいては、基本的に有効化することは推奨はされないようです。そのため、この機能を有効化した上で上記のいずれかの方法によるimport
が検出された場合は、警告が出力されるようです。
fresh v1.6.1
fresh v1.6.1がリリースされています。
Tailwind CSSプラグインの改善
fresh v1.6で追加されたTailwind CSSプラグインに関する変更が実施されています。
- Tailwind CSSプラグインと
router.basePath
オプション(fresh.config.ts
)の併用がサポートされました。 - autoprefixerの設定をカスタマイズできるようになりました。(
TailwindPluginOptions
)
その他
ctx.data
の非推奨化が解除されています。(意図せずして非推奨化されていたようです)- v1.6.0で行われたルーティングの実装に関する
URLPattern
からRegExp
への移行がrevertされたようです。(代わりにDeno本体でURLPattern
のパフォーマンスチューニングが実施されているようです)
deployctl v1.9.0
deployctl v1.9.0がリリースされています。
deno.json(c)
による設定のサポート
deno.json(c)
にdeploy
フィールドを定義しておくと、deployctl
がそこから設定を読み込んでくれるようになりました。
deploy
フィールドには以下の項目を設定できるようです。
project
entrypoint
include
exclude
deployctl deploy
の実行後にdeno.json(c)
が存在しなければ、deployctl
が自動でdeno.json
にこれらの設定を書き込んでくれるようです。
deployctl deploy
コマンドの改善
--project
や--entrypoint
オプションが省略された際のプロジェクト名やエントリポイントの推論がサポートされています。
プロジェクト名はGitリポジトリやディレクトリ名などから推論されるようです。また、もしmain.ts
やindex.ts
などの名前のファイルが見つかれば、それがエントリポイントとして取り扱われるようです。
インタラクティブな認可フローのサポート
deployctl
の実行時に--token
オプションなどでアクセストークンが指定されなかった際は、インタラクティブな認可フローを実行してトークンが発行されるようになりました。
発行されたトークンはmacOSではkeychainパッケージを使用して保存されるようです。
GitHubアクションの改善
deployctl
のGitHubアクションでinclude
/exclude
オプションがサポートされています。
https://github.com/denoland/deployctl/blob/1.9.0/action.yml#L19-L24
denokv v0.6.0
denokv v0.6.0がリリースされています。
@deno/kvパッケージがnpmレジストリに公開されています。
このパッケージを使用することで、Node.jsからDeno KVのKV Connectプロトコルを実装したサーバーやSQLiteバックエンドなどへ接続できるようです。
また、Deno CLIの実装とは異なる独自のインメモリ実装なども提供されているようです。(implementation: "in-memory"
)
lume v2
lume v2がリリースされています。
UnoCSSプラグインやsharpベースの画像変換プラグインの追加、デフォルトのテンプレートエンジンがNunjucksからVentoへ移行、APIやCLIオプションの整理などが行われているようです。
以下のページでマイグレーションガイドが公開されています。