denoのv0.40.0がリリースされたため、変更点をまとめます。
破壊的変更
deno fetch
がdeno cache
にリネームされた
std/testing/runner.ts
が削除された
deno test
コマンドが存在するため、削除されました。
新規機能
(std/flags
) unknown関数がkeyとvalueパラメータを受け取るように変更された
import { parse } from "https://deno.land/std@v0.40.0/flags/mod.ts";
parse(["--hoge", "true", "--piyo", "false"], {
unknown: (unknown, key, value) => {
console.log(unknown, key, value);
}
});
// --hoge hoge true
// --piyo piyo false
(std/http
) 不正なフォーマットのリクエストを受信した際は400レスポンスを返却する
(std/node/fs
) exists
/existsSync
が実装された
import * as fs from "https://deno.land/std@v0.40.0/node/fs.ts";
fs.exists("test.txt", exists => {
console.log(exists);
});
Blob#text/stream/arrayBuffer
が実装された
@keroxp さんによって対応されました。
また、この対応に伴い、ReadableStreamが公開されました。
const b = new Blob(["hello"]);
console.log(await b.text()); // hello
deno bundle
コマンドが--importmap
オプションに対応した
import-map.json
{
"imports": {
"add": "./add.ts"
}
}
add.ts
export function add(a: number, b: number): number {
return a + b;
}
mod.ts
import { add } from "add";
console.log(add(1, 3));
$ deno bundle --importmap ./import-map.json mod.ts bundle.ts
$ deno bundle.ts
4
その他変更点
Deno.utime
にDate
オブジェクトを渡す
下記のように、Deno.utime
にDate
オブジェクトを渡すと、例外が発生する問題があったため、修正されました。
await Deno.utime("./test.txt", new Date(), new Date());
(std/http/file_server
) .ts/.tsx/.jsxファイルを返却する際のMIMEタイプが変更された
ブラウザで.ts
ファイル等を表示しようとすると、ダウンロードされてしまう問題がありました。
v0.40.0ではMIMEタイプが変更され、ブラウザ上でファイルの内容を閲覧できるようになりました。
(std/testing
) アサーションに失敗した際に、bigint型の値を適切にフォーマットする
import { assertEquals } from "https://deno.land/std@v0.40.0/testing/asserts.ts";
assertEquals(123n, 456n);
// [Diff] Left / Right
//
//
// - 123n
// + 456n
.js
ファイルを実行する際も型定義ファイルを読み込む
deno run
やdeno fetch
等で.jsファイルを指定すると、X-TypeScript-Types
ヘッダ等で指定された型定義ファイルが読み込まれない問題がありました。
v0.40.0でこの問題が修正され、.jsファイルを実行する際も、型定義ファイルが読み込まれます。
mod.js
import sinon from 'https://cdn.pika.dev/sinon@^8.1.1';
console.log(sinon);
$ deno run -r ./mod.js
Download https://cdn.pika.dev/sinon@^8.1.1
Download https://cdn.pika.dev/-/sinon@v8.1.1-tBhxC2jmZsnRfA7AaVBW/dist=es2019/types/index.d.ts
Download https://cdn.pika.dev/-/sinon@v8.1.1-tBhxC2jmZsnRfA7AaVBW/dist=es2019/sinon.js
...
deno doc
の改善
- JSON形式(
deno doc --json
)でドキュメントを出力した際に、型パラメータに関する情報も出力されるようになった - モジュールの再エクスポート(
export * from "./hoge.ts"
等)に対応した
https://github.com/denoland/deno/pull/4672
https://github.com/denoland/deno/pull/4625