Deno v1.34
Deno v1.34がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
deno_std v0.189.0
deno_std v0.189.0がリリースされました。
std/async/retry.ts
retry()の内部でジッターが適用されるようになりました。
std/collections/group_by.ts
groupBy()
でIterable<T>
型の値がサポートされました。
import { groupBy } from "https://deno.land/std@0.189.0/collections/group_by.ts";
groupBy(
new Set([1, 2, 3, 4, 5]),
(x) => x % 2 === 0 ? "even" : "odd",
);
// Output: { odd: [ 1, 3, 5 ], even: [ 2, 4 ] }
また、selector
関数が引数として現在処理中の要素のindexを受け取るように変更されています。
Deno DeployでNode.js組み込みモジュールがサポート
Deno DeployでNode.js組み込みモジュールがサポートされたようです。
Denoと同様にnode:<パッケージ名>
の形式でimport
することで利用できます。
これにより、esm.shを利用して、Deno DeployでExpressなどのパッケージが動かせるようになったようです。(現状ではtarget=denonextを指定する必要があるようです)
import express from "https://esm.sh/express@4.18.2?target=denonext";
const app = express();
app.get("/", (req, res) => {
res.send("Hello Express");
});
app.listen(3000);
Deno Deployでの各Node.js組み込みモジュールのサポート状況については、以下のドキュメントで説明されています。
また、将来的にはDeno Deployでnpm:
をサポートすることも検討されているようです。
Deno Deploy’s Changelog
Deno DeployのChangelogページが公開されました。
Deno Deployやdeployctl
などの最新情報が公開されているようです。
fresh v1.1.6
fresh v1.1.6がリリースされました。
MiddlewareHandlerContext
にdestination
プロパティが追加
このプロパティには、要求されたリソースに応じて以下のいずれかの値が設定されます。
destination | 説明 |
---|---|
"static" | static ディレクトリの静的ファイルへのアクセス時に設定されます |
"route" | route ディレクトリで定義されたエントリポイントへのアクセス時に設定されます |
"notFound" | 404エラー発生時に設定されます |
"internal" | freshの内部スクリプトなどが要求された際に設定されます |
Middlewareで、要求されたリソースに応じた固有の処理を行いたい場合などに活用できそうです。
import type { MiddlewareHandlerContext } from "$fresh/server/types.ts";
export async function handler(
req: Request,
ctx: MiddlewareHandlerContext,
) {
const res = ctx.destination === "static"
? await handleStaticResource(req, ctx)
: await ctx.next();
return res;
}
.env
のサポートが追加
今後、init.tsで新しくプロジェクトを作成すると、サーバ起動時に.env
が自動で読み込まれます。
esm.sh v123
esm.sh v123がリリースされました。
esm-workerパッケージを使って、esm.sh
をローカルで動かすための仕組みが導入されています。
$ deno run -A https://esm.sh/server
Welcome to use esm.sh!
This is local version of esm.sh running on Deno
🦕.
Homepage: http://localhost:8787
Module: http://localhost:8787/react