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のみサポート)