2021年のDeno Advent Calendarが公開
Qiitaで2021年のDeno Advent Calendarが公開されました。
https://qiita.com/advent-calendar/2021/deno
deployctlがアーカイブ
Deno Deployのコマンドラインツールであるdeployctlがアーカイブされました。
今後は代わりにDeno CLIを使って開発していくようアナウンスされています。
Freshのアップデート
PreactベースのWebフレームワークであるFreshがアップデートされ、MiddlewareとCSPのサポートが追加されました。
Middlewareサポート
Middlewareを利用する際は、pagesディレクトリ配下に下記のいずれかの名前のファイルを用意し、handler関数をexportする必要があります。
/_middleware.tsx/_middleware.ts/_middleware.jsx/_middleware.js
export async function handler(req: Request, handle: () => Promise<Response>) {
const start = Date.now();
const resp = await handle();
const end = Date.now();
console.log(`${req.method} ${req.url} - ${end - start}ms`);
return resp;
}
CSPサポート
CSPサポートを有効化したいときは、対象ページでcspオプションにtrueを設定したconfigオブジェクトをexportします。
import type { PageConfig } from "../deps.ts";
export const config: PageConfig = { csp: true };
上記を実施しておくことで、特に設定をしなくとも自動でContent-Security-Policyヘッダを出力してくれます。
Content-Security-Policyヘッダの出力内容をカスタマイズしたいときは、useCSPを使用します。
useCSP((policy) => {
changeDirectives(policy.directives);
});
esm.sh
esm.shのv56とv57がリリースされました。
v57ではビルドバージョンを固定するために?pinオプションのサポートが追加されています。
https://esm.sh/react-dom@17.0.2?pin=v57
v56では?workerがDenoで動作しない問題などが修正されています。
- https://github.com/alephjs/esm.sh/releases/tag/v57
- https://github.com/alephjs/esm.sh/releases/tag/v56
Trex v1.10.0
DenoのパッケージマネージャであるTrexのv1.10.0がリリースされました。
このリリースではtrex checkコマンドが実装され、古くなった依存関係のチェックがサポートされました。 (現時点ではdeno.land/stdとdeno.land/xのみサポート)