LoginSignup
1
0

More than 3 years have passed since last update.

deno v0.40.0の変更点まとめ

Posted at

denoのv0.40.0がリリースされたため、変更点をまとめます。

破壊的変更

deno fetchdeno 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.utimeDateオブジェクトを渡す

下記のように、Deno.utimeDateオブジェクトを渡すと、例外が発生する問題があったため、修正されました。

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 rundeno 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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0