Skip to content
← Back to rules

unicorn/text-encoding-identifier-case スタイル

🛠️ An auto-fix is available for this rule.

機能

このルールは、テキストエンコーディング識別子のキャピタライゼーションを一貫性のあるものに強制します。具体的には:

  • 'utf8'withDash が有効な場合にのみ 'utf-8' を許可)
  • 'ascii'

なぜ問題なのか?

エンコーディング識別子のキャピタライゼーションが一貫していないと、コードの可読性が低下し、コードベース全体で微妙な混乱を引き起こす可能性があります。
エクマスクリプトや Node.js では厳密なキャピタライゼーションの規則は定められていませんが、小文字を使用するスタイルが一般的であり、広く認識されています。

このルールに違反するコードの例:

javascript
import fs from "node:fs/promises";
async function bad() {
  await fs.readFile(file, "UTF-8");
  await fs.readFile(file, "ASCII");
  const string = buffer.toString("utf-8");
}

このルールに準拠するコードの例:

javascript
import fs from "node:fs/promises";
async function good() {
  await fs.readFile(file, "utf8");
  await fs.readFile(file, "ascii");
  const string = buffer.toString("utf8");
}

{ "withDash": true } を使用した場合に準拠するコードの例:

javascript
import fs from "node:fs/promises";
async function good() {
  await fs.readFile(file, "utf-8");
  await fs.readFile(file, "ascii");
  const string = buffer.toString("utf-8");
}

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。

withDash

type: boolean

デフォルト: false

true にすると、utf8 ではなく utf-8 を優先します。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、以下のようにします:

json
{
  "rules": {
    "unicorn/text-encoding-identifier-case": "error"
  }
}
bash
oxlint --deny unicorn/text-encoding-identifier-case

参照