2.3. テクノロジープレビューの機能
以下の機能は、Node.js 16 LTS リリースのテクノロジープレビュー機能として利用できます。
2.3.1. Web 暗号化 API リンクのコピーリンクがクリップボードにコピーされました!
Web Crypto API は、標準の W3C Web Cryptography API の実装です。Web Crypto API には、require('crypto').webcrypto ステートメントを使用してアクセスできます。以下に例を示します。
const { subtle } = require('crypto').webcrypto;
(async function() {
const key = await subtle.generateKey({
name: 'HMAC',
hash: 'SHA-256',
length: 256
}, true, ['sign', 'verify']);
const digest = await subtle.sign({
name: 'HMAC'
}, key, 'I love cupcakes');
})();
2.3.2. Web Streams API リンクのコピーリンクがクリップボードにコピーされました!
Web Streams API は、ストリーミングデータを処理するための WHATWG Streams Standard の実装です。これは実験的なものであるため、このリリースでは Web Streams API はグローバルオブジェクトに公開されていません。Web Streams API にアクセスするには、新しい stream/web コアモジュールを使用する必要があります。以下に例を示します。
import { ReadableStream, WritableStream } from 'stream/web';
// Or from 'node:stream/web'
2.3.3. ESM Loader Hooks API リンクのコピーリンクがクリップボードにコピーされました!
ESM Loader Hooks API は、ECMAScript モジュール (ESM) ローダーフックを統合して、将来のローダーチェーンを容易にするのに必要な手順を表します。
-
resolve: resolve [+ getFormat] -
load: getFormat + getSource + transformSource
一貫性を保つために、getGlobalPreloadCode ローダーフックの名前は globalPreload に変更されました。
一つ以上の廃止されたフックをエクスポートするローダーは、誤ったフックをリストする単一の非推奨警告をトリガーします。
2.3.4. ワーカースレッド間で生データを共有するための新しいクラス リンクのコピーリンクがクリップボードにコピーされました!
Blob クラスは、複数のワーカースレッド間で安全に共有できる不変の生データをカプセル化します。
Blob は、Buffer クラスのサブクラスです。
2.3.5. テストランナーモジュール リンクのコピーリンクがクリップボードにコピーされました!
node:test モジュールにより、Test Anything Protocol (TAP) 形式で結果を報告する JavaScript テストの作成が容易になります。
テストランナーモジュールをインポートするには、以下の構文を使用します。
import test from 'node:test';
テストランナーモジュールをインポートする場合は、前述の例のように node: 接頭辞を指定する必要があります。node: 接頭辞は、コアモジュールの読み込みを示します。node: 接頭辞を省略すると、Node.js は Node.js コアから テスト ランナーモジュールをインポートするのではなく、Node.js モジュールのユーザーランドエコシステムからテストモジュールのインポートを試みます。
以下のコードは、2 つのサブテストを持つ親テストの実装例を示しています。
test('top level test', async (t) => {
await t.test('subtest 1', (t) => {
assert.strictEqual(1, 1);
});
await t.test('subtest 2', (t) => {
assert.strictEqual(2, 2);
});
});
詳細は、Node.js Test Runner のドキュメント を参照してください。