O hirunewani blog

Frontend Weekly 2025-02-14

Created at

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からサポートされたglobglobSyncなどの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に追加。

https://web.dev/blog/baseline-digest-jan-2025?hl=en