Frontend Weekly 2025-02-14
Node.js v22.14.0、ESLint v9.20.0、Prettier v3.5.0、Promise.try()のBaseline入りなど
Node.js v22.14.0 (LTS)
Node.js v22.14.0 (LTS) がリリース。
https://nodejs.org/ja/blog/release/v22.14.0
globsへのexcludeオプションの追加
Node.js v22からサポートされたglob
、globSync
などのAPIにexclude
オプションが追加。
import { globSync } from 'node:fs';
const files = globSync('**/*.js', {
exclude: ['**/node_modules/**', '**/dist/**']
});
findPackageJSONの追加
近くにあるpackage.jsonを探すfindPackageJSON
メソッドが追加。
import { findPackageJSON } from 'node:module';
findPackageJSON(import.meta.url);
// => /project/package.json
findPackageJSON("some-package", import.meta.url);
// => /project/node_modules/some-package/package.json
test関連のAPI追加
t.waitFor()
、t.assert.fileSnapshot()
、assert.register()
などのAPIが追加。
import { assert } from 'node:test';
import { test, assert: testAssert } from 'node:test';
// 独自のassertを登録する
testAssertions.register('isOdd', (n) => {
assert.strictEqual(n % 2, 1);
});
test('test name', async (t) => {
// 処理を待機させる
const result = await t.waitFor(() => {
return "result";
}, { timeout: 1000, interval: 1 });
// ファイルスナップショットを取得
t.assert.fileSnapshot({ p1: 1, p2: 2 }, './snapshots/snapshot.json');
t.assert.isOdd(5);
});
ESLint v9.20.0
ESLint v9.20.0がリリース。
https://eslint.org/blog/2025/02/eslint-v9.20.0-released/
無効なフラグを付けて実行した際に、エラーではなく警告を出すように動作が変更。またLanguageプラグイン向けに、型定義の強化など。
Prettier v3.5.0
Prettier v3.5.0がリリース。
https://prettier.io/blog/2025/02/09/3.5.0.html
Node.jsのType Stripingを利用したTypeScript設定ファイルのサポートなど。
objectWrapオプションの追加
オブジェクトリテラルのフォーマットは、1行の長さに関わらず、内部に改行があれば複数行にフォーマットする半自動的な挙動をしていた。
objectWrap
オプションを利用することで、これを制御することが可能。
--object-wrapping=collapse
を指定すると、内部の改行の有無に関わらずオブジェクトリテラルがフォーマットされる。
January 2025 Baseline monthly digest
Promise.try()
がBaselineに追加。