Deno v1.39.3
Deno v1.39.3がリリースされています。
Node.js互換性の改善
node:fs
:cp
/cpSync
/promises.cp
が実装されました。deno.json
などでnodeModulesDir: false
が設定されている場合、package.json
がある場合でもnpmパッケージを必要に応じてダウンロードするように挙動が変更されました。
deno compile
deno compile
コマンドが--unstable-kv
などの--unstable-*
オプションに対応しました。
deno lsp
Deno.test
のテスト名にテンプレートリテラルが与えられているテストケースがTest code lensで検出されない問題が修正されています。
Web API
SubtleCrypto#importKey
とSubtleCrypto#generateKey
でP-521がサポートされています。
また、EventSource
の型定義が追加されています。
Androidサポート
Androidでのビルドがサポートされています。
https://github.com/denoland/deno/pull/19437
jsr:
⚠️jsr:
は開発中の機能のため、基本的にまだ利用はできません。
deno_graph
に導入された“fast check”という仕組みを利用して、jsr:からダウンロードされたモジュールの型チェックを高速化する仕組みが導入されているようです。対象パッケージのpublic APIとその型情報のみを含むグラフを構築することで、型チェックの高速化が図られているようです。
feat(unstable): fast subset type checking of JSR dependencies (denoland/deno#21873)
deno_std v0.212.0
deno_std v0.212.0がリリースされました。
非推奨モジュール・APIの削除
std/signal
非推奨化されていたstd/signalモジュールが削除されました。
std/log
std/log/levels.ts
:LogLevels
の数値キーが削除されました。(getLevelByName
への移行が推奨されています)- ログレベルを
number
型で取り扱っていた箇所がLogLevel
型で取り扱われるように修正されています。
std/semver
以下のAPIやファイルが削除されています。
削除対象 | 移行先 |
---|---|
SemVerComparator | Comparator |
canParse(version: SemVer): boolean | canParse(version: string): boolean |
std/semver/cmp.ts | std/semver/compare.ts |
std/semver/is_semver_comparator.ts | std/semver/is_semver_range.ts |
parse(version: SemVer): SemVer | parse(version: string): SemVer |
std/semver/rcompare.ts | std/semver/compare.ts |
std/encoding/base32.ts
非推奨化されていたbyteLength()
が削除されています。
既存APIの非推奨化・リネーム
std/io
std/io/types.d.ts
がstd/io/types.ts
にリネームされています。
また、std/streams
で提供されていた以下のモジュールについて、std/io
へ移動した上で非推奨化が解除されています。
移行元 | 移行先 |
---|---|
std/streams/read_all.ts | std/io/read_all.ts |
std/streams/copy.ts | std/io/copy.ts |
std/streams/readable_stream_from_reader.ts | std/io/to_readable_stream.ts |
std/streams/write_all.ts | std/io/write_all.ts |
Streams APIではカバーすることが難しい機能などもありそうなため、IO関連の機能をstd/io
で改めて管理することが検討されたようです。
suggestion: re-consider the deprecation of some IO-related APIs (denoland/deno_std#4120)
std/log
std/log/levels.ts
:LogLevels.WARNING
が非推奨化されています。std/log/handlers.ts
が各種ハンドラーごとにファイルが分割されています。(std/log/file_handler.ts
,std/log/console_handler.ts
など)Logger
のwarning
メソッドがwarn
にリネームされています。
std/semver
以下のファイルが非推奨化されています。
対象ファイル | 移行先 |
---|---|
std/semver/comparator_format.ts | Comparator とformatRange |
std/semver/comparator_intersects.ts | rangeIntersects |
std/semver/comparator_max.ts | rangeMax |
std/semver/comparator_min.ts | rangeMin |
std/semver/is_comparator.ts | isSemVerRange |
std/semver/parse_comparator.ts | parseRange |
std/semver/test_comparator.ts | testRange |
std/semver/try_parse_comparator.ts | tryParseRange |
std/semver/sort.ts | compare |
std/semver/range_format.ts | formatRange |
std/fs/ensure_dir.ts
: パーミッションの取り扱いの改善
対象のパスがすでに存在する場合は、--allow-read
権限のみが要求されるように挙動が改善されました。
std/text/case.ts
が追加
文字列のキャメルケースやPascalケース形式などへの変換機能が提供されています。
import { toCamelCase, toKebabCase } from "https://deno.land/std@0.212.0/text/case.ts";
toCamelCase("JavaScript"); // => "javaScript"
toKebabCase("TypeScript"); // => "type-script"
std/net/get_available_port.ts
: preferredPort
オプションが追加
このオプションが指定された場合、まずそのポートの取得を試みます。取得に失敗した場合は、従来通り、システムの空きポートを返却します。
import { getAvailablePort } from "https://deno.land/std@0.212.0/net/get_available_port.ts";
const port = await getAvailablePort({ preferredPort: 3000 });
Deno.serveHttp
の非推奨化
Deno.serveが安定化されたため、Deno.serveHttp
を非推奨化するPRが作成されています。
今のところ、Deno v1.40でのリリースが検討されているようです。