unicorn/text-encoding-identifier-case スタイル
機能
このルールは、テキストエンコーディング識別子のキャピタライゼーションを一貫性のあるものに強制します。具体的には:
'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