Deno v1.33.3
Deno v1.33.3がリリースされました。
deno compile
でnpmパッケージがサポート
deno compile
でnpm:
やnode:
URLに依存したアプリケーションの実行可能ファイルの生成がサポートされました。
利用する際は、現時点では--unstable
の指定が必要です。
import chalk from "npm:chalk@5.2.0";
console.log(chalk.green.bold("Hello"));
$ deno compile --unstable --output=example main.js
$ ./example
また、deno compile
によるコンパイル対象として、直接npmパッケージを指定することもできるようです。
$ deno compile --unstable --output=cowsay npm:cowsay@1.5.0
$ ./cowsay hello
Deno.serve()
レスポンスの自動的な圧縮が実装されました。
現時点ではgzip
のみがサポートされています。(Content-Encoding: gzip
)
それ以外には、--watch
オプションと併用した際の安定性の改善が実施されています。
Deno.Command
Deno.ChildProcess#killが、システムの全実行可能ファイルに対する--allow-run
権限を要求する問題が修正されました。
v1.33.2までは、例えば--allow-run=redis-cli
のように特定のバイナリのみを許可している場合、Deno.ChildProcess#kill
で権限エラーが発生する問題があったため、このリリースで修正されています。
deno lsp
documentPreloadLimit
オプションが追加されました。
これにより、deno lspがプリロードするドキュメント数をカスタマイズできます。
vscode_denoでは、v3.18.0でdocumentPreloadLimit
オプションのサポートが入っているようです。
その他
Deno.seekSync
とDeno.seek
の型定義が統一されていなかった問題が修正されました。(#19060)node:module
:Module.runMain()
が実装されました。(ts-nodeで使用されているようです)- リダイレクトするリモートモジュールへの依存があった場合、
deno vendor
の実行時にパニックする問題が修正されました。 - Deno.UnsafeCallbackが使用されていると、
deno test
がハングすることのある問題が修正されました。
deno_std v0.187.0
deno_std v0.187.0がリリースされました。
std/regexp
が追加
新しいモジュールとしてstd/regexp
が追加されました。
現状では、正規表現のメタ文字をエスケープするための機能が提供されています。
import { escape } from "https://deno.land/std@0.187.0/regexp/escape.ts";
const regexp = new RegExp(`^${escape("ba.")}$`);
assert(regexp.test("ba."))
assert(!regexp.test("bar"));
assert(!regexp.test("baz"));
std/collections/partition_entries.ts
が追加
指定されたオブジェクトに含まれるエントリを述語関数を元に分割することができます。
import { partitionEntries } from "https://deno.land/std@0.187.0/collections/partition_entries.ts";
partitionEntries(
{
"foo": 1,
"bar": 2,
"baz": 3,
},
([key, _value]) => key.startsWith("f"),
);
// Output: [ { foo: 1 }, { bar: 2, baz: 3 } ]
std/datetime/difference.ts
to
< from
の際にdifferenceがmonths
/quarters
/years
として負数を返さないように修正されました。
std/http/file_server.ts
serveDirでパスが正規化されるようになりました。
例えば、/path//////to////file.txt
のようなパスにアクセスされた場合、/path/to/file.txt
へリダイレクトされます(正規化前と後のパスが違えばリダイレクトされます)
Deno Fresh OpenAI Doc Search Starter
FreshやSupabase, OpenAI APIを活用して、ChatGPTライクなドキュメント検索システムを作成するためのテンプレートが公開されています。
Denoの公式ブログでも解説記事が公開されています。
Garph
TypeScript向けのGraphQLフレームワーク
Denoでも動作するようです。
https://discord.com/channels/684898665143206084/712010403302866974/1105417313202741258