Help us understand the problem. What is going on with this article?

deno v0.40.0の変更点まとめ

https://github.com/denoland/deno/releases/tag/v0.40.0

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

破壊的変更

deno fetchdeno cacheにリネームされた

https://github.com/denoland/deno/pull/4656

std/testing/runner.tsが削除された

deno testコマンドが存在するため、削除されました。

https://github.com/denoland/deno/pull/4649

新規機能

(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

https://github.com/denoland/deno/pull/4637

(std/http) 不正なフォーマットのリクエストを受信した際は400レスポンスを返却する

https://github.com/denoland/deno/pull/4614

(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);
});

https://nodejs.org/api/fs.html#fs_fs_exists_path_callback

https://github.com/denoland/deno/pull/4655

Blob#text/stream/arrayBufferが実装された

@keroxp さんによって対応されました。

また、この対応に伴い、ReadableStreamが公開されました。

const b = new Blob(["hello"]);
console.log(await b.text()); // hello

https://github.com/denoland/deno/pull/4581

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

https://github.com/denoland/deno/pull/4651

その他変更点

Deno.utimeDateオブジェクトを渡す

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

await Deno.utime("./test.txt", new Date(), new Date());

https://github.com/denoland/deno/pull/4575

(std/http/file_server) .ts/.tsx/.jsxファイルを返却する際のMIMEタイプが変更された

ブラウザで.tsファイル等を表示しようとすると、ダウンロードされてしまう問題がありました。

v0.40.0ではMIMEタイプが変更され、ブラウザ上でファイルの内容を閲覧できるようになりました。

https://github.com/denoland/deno/pull/4620

(std/testing) アサーションに失敗した際に、bigint型の値を適切にフォーマットする

import { assertEquals } from "https://deno.land/std@v0.40.0/testing/asserts.ts";

assertEquals(123n, 456n);
//     [Diff] Left / Right
//
//
// -   123n
// +   456n

https://github.com/denoland/deno/pull/4626

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

https://github.com/denoland/deno/pull/4652

deno docの改善

  • JSON形式(deno doc --json)でドキュメントを出力した際に、型パラメータに関する情報も出力されるようになった
  • モジュールの再エクスポート(export * from "./hoge.ts"等)に対応した

https://github.com/denoland/deno/pull/4672
https://github.com/denoland/deno/pull/4625

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした