// @deno-types="npm:@types/express@4.17.14"
import { default as express } from "npm:express@4.18.2";
console.info(express("foo")); // => 型エラー
型定義ファイルが同梱されていないパッケージについては、@deno-typesで型定義を指定できます。
import { compress, uncompress } from "npm:lz4-napi@2.2.0";
const data = await Deno.readFile("./deno.json");
const compressed = await compress(data);
const uncompressed = await uncompress(compressed);
現時点では、Node-APIをベースに実装されたパッケージを利用するには、--allow-ffiの指定が必要です。
--lock-writeによって出力されるロックファイルのフォーマットが変更されました。
$ deno run --unstable --lock=lock.json --lock-write main.ts
次のDeno v1.28では、deno.jsonが存在する場合、ロックファイルをデフォルトで出力することが検討されているようです。
deno lspでInlay Hintsがサポート
vscode_denoを最新バージョンにアップデートし、"editor.inlayHints.enabled"に"on"などを設定すると有効化されます。
$ deno run main.ts
A new release of Deno is available: 1.27.0 → 1.27.1
Run `deno upgrade` to install it.
もし不要であれば、DENO_NO_UPDATE_CHECKに1を設定すると無効化できます。
deno taskの改善安定性に関する警告メッセージが表示されなくなりました。
# v1.26までだと、以下のような警告メッセージが表示されます
$ deno task benchmark
Warning deno task is unstable and may drastically change in the future
...
deno taskの改善複数のコマンドを並列で実行する際の挙動が変更されています。
{
"tasks": {
"test-async": "exit 1 & exit 0"
}
}
$ deno task test-async
# v1.27.0だと`1`, v1.26.0だと`0`
$ echo $?
1
下記APIが安定化されました。(--unstableなしで利用できます)
Deno.consoleSizeDeno.osReleaseDeno.stdin.setRawDeno.futime/Deno.futimeSyncDeno.loadavgDeno.utime/Deno.utimeSync[1, 2, 3].toReversed() // => [3, 2, 1]
[4, 2, 10, 5].toSorted() // => [10, 2, 4, 5]
[1, 2, 3, 4].toSpliced(1, 2) // => [1, 4]
[1, 2, 3].with(1, 20) // => [1, 20, 3]
Change Array by copyのサポートが入っています。
Deno.listenとDeno.listenTlsでreusePortオプションがサポート (Linuxのみ)Deno.listenDatagramでreuseAddressオプションがサポートnavigator.languageとnavigator.languagesが実装Deno.killとDeno.Process.killのsignal引数がオプショナルに変更 (デフォルトでSIGTERMが送信されます)Deno.listenによってUnixドメインソケットを開く前にDenoの内部で行われていたソケットファイルの削除処理が廃止非推奨のモジュールやAPIが削除されています。
std/hashが削除 (今後はstd/cryptoで代用できます)std/textprotoが削除 (今後はTextLineStreamで代用できます)CSVStreamやJSONParseStreamなどが削除 (今後はCsvStreamやJsonParseStreamなどの形式のAPIで代用できます)Denoの初期サポートが入りました。(公式ガイド)
$ deno run -A --unstable npm:prisma@4.5.0 init
現時点では、Prisma Data Proxy経由でのデータベース接続のみがサポートされています。
Nuxt 3のサーバエンジンであるNitroでDeno presetの実装が進んでいるようです。
これが実装されれば、Nuxt 3で開発されたアプリケーションをDeno Deploy上などで動かせるようになりそうです。