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で動作しない問題などが修正されています。


Trex v1.10.0

DenoのパッケージマネージャであるTrexのv1.10.0がリリースされました。

このリリースではtrex checkコマンドが実装され、古くなった依存関係のチェックがサポートされました。 (現時点ではdeno.land/stddeno.land/xのみサポート)


https://github.com/crewdevio/Trex/releases/tag/v1.10.0