Deno v1.30.0

Deno v1.30がリリースされました。

以下に変更内容をまとめたため、よろしければ参照ください。

deno_std v0.175.0

deno_std v0.175.0がリリースされました。

非推奨APIの整理などが実施されています。

std/io/buffer.ts: (破壊的変更) 非推奨APIの削除

以下のAPIが削除されています。

同名のAPIは引き続き別ファイルで提供されているため、もしこれらを利用されている場合は、以下の移行先ファイルへimportを書き換える必要がありそうです。

対象API移行先
BufferFullErrorstd/io/buf_reader.ts
BufReaderstd/io/buf_reader.ts
PartialReadErrorstd/io/buf_reader.ts
ReadLineResultstd/io/buf_reader.ts
BufWriterstd/io/buf_writer.ts
BufWriterSyncstd/io/buf_writer.ts
readDelimstd/io/read_delim.ts
readStringDelimstd/io/read_string_delim.ts
readLinesstd/io/read_lines.ts

std/io/files.tsモジュールの削除 (破壊的変更)

std/io/files.tsが削除されています。

このファイルで提供されていたAPIはstd/io/read_range.tsから引き続き利用できるため、今後はそちらへ移行する必要がありそうです。

std/io/readers.tsモジュールの削除 (破壊的変更)

std/io/readers.tsが削除されています。

このファイルから提供されていたAPIは引き続き別ファイルで提供されているため、もしこれらを利用されている場合は、以下の移行先ファイルへimportを書き換える必要がありそうです。

対象API移行先
StringReaderstd/io/string_reader.ts
MultiReaderstd/io/multi_reader.ts
LimitedReaderstd/io/limited_reader.ts

std/io/writers.tsモジュールの削除 (破壊的変更)

std/io/writers.tsが削除されています。

このファイルで提供されていたStringWriterは、引き続きstd/io/string_writer.tsから利用できるため、もし利用されている場合は移行する必要がありそうです。

std/io/util.tsモジュールの削除 (破壊的変更)

std/io/util.tsが削除されています。

このファイルから提供されていたAPIは引き続き別ファイルで提供されているため、もしこれらを利用されている場合は、以下の移行先ファイルへimportを書き換える必要がありそうです。

対象API移行先
copyNstd/io/copy_n.ts
readIntstd/io/read_int.ts
readLongstd/io/read_long.ts
readShortstd/io/read_short.ts
sliceLongToBytesstd/io/slice_long_to_bytes.ts

std/dotenv: (破壊的変更) 非推奨APIの削除

非推奨APIであるconfigSync()config()が削除されました。

今後はloadSync()load()の使用が推奨されます。

std/encoding/front_matter: (破壊的変更) 非推奨APIの削除

std/encoding/front_matter.tsが削除されています。

このファイルは削除されたものの、同じ機能が引き続きstd/encoding/front_matter/配下で提供されるため、今後はそれらの使用が推奨されます。

std/fmt/bytes.ts: (破壊的変更) prettyBytes()の削除

非推奨APIであるprettyBytesが削除されています。

今後はformat()の使用が推奨されます。

std/path: (破壊的変更) basenamedirnameがCoreutilsと互換に

元々、Node.jsの挙動を参考に実装されていたbasenamedirnameが、Coreutilsの同名コマンドと同じように動作するように挙動が変更されました。

具体的には、以下のように動作が変更されているようです (※内容については、こちらのコメントから拝借しております)

v0.174.0v0.175.0
basename("abc", "abc")"""abc"
basename("/")"""/"
dirname("aaa///bbb")"aaa//""aaa"

std/node/async_hooks.ts

AsyncLocalStorageが実装されています。

std/semver: ビルドメタデータのサポート

format()styleオプションがサポートされています。

このオプションにfullbuildを指定すると、ビルドメタデータも含めて出力されます。

import { parse } from "https://deno.land/std@0.175.0/semver/mod.ts";

const v = parse("1.2.3+001");
assert(v);
console.info(v.format({ style: "full" })); // => "1.2.3+001"

また、increment()にオプショナルのmetadata引数が追加されています。

import { parse } from "https://deno.land/std@0.175.0/semver/mod.ts";

const v = parse("2.0.1+5");
assert(v);
const metadata = "6";
v.increment("pre", undefined, metadata);
console.log(v.format({ style: "full" })) // 2.0.1-0+6

https://github.com/denoland/deno_std/releases/tag/0.175.0

deno_std v0.174.0

deno_std v0.174.0がリリースされました。

std/fmt/printf.ts: %I及び%iディレクティブのサポート

これらのディレクティブを使用すると、Deno.inspectを用いて出力がフォーマットされます。(%Iを指定した際は、compactオプションにtrueが設定されます)

import { printf } from "https://deno.land/std@0.174.0/fmt/printf.ts";

printf("obj: %I\n", { n: 123, s: "foobar" }); // => `obj: { n: 123, s: "foobar" }`

std/encoding/csv

stringify()で改行を含むフィールドが適切にエスケープされる(ダブルクォーテーションで囲まれる)ように修正されています。


https://github.com/denoland/deno_std/releases/tag/0.174.0

Deno in 2022: npm, Edge Functions, Series A, Fresh, and more

Deno公式ブログで2022年に関するまとめが公開されています。

また、この記事に合わせて、Deno 2.0に向けたアンケートが公開されています。

deployctl v1.5.0

Deno Deployの公式CLIであるdeployctlのv1.5.0がリリースされています。

このリリースではdeployctl logsコマンドが実装されており、特定のプロジェクトのログの閲覧がサポートされています。


https://github.com/denoland/deployctl/releases/tag/1.5.0