#consistent-namespace
@praha/byethrow から一貫したネームスペース(Result または R)でインポートを使用することを強制します。
#ルールの詳細
@praha/byethrow ではネームスペースを Result または R としてインポートできますが、プロジェクト内で両方が混在していると一貫性が失われ、コード検索が難しくなります。このルールは単一の優先エイリアスを強制し、違反を自動修正します。
デフォルトで優先するネームスペースは Result です。
#誤り
// ❌ 同じコードベースでResultとRが混在している
import { import Result Result , import R R } from '@praha/byethrow';
const const success: Result.Result<42, never> success = import Result Result .const succeed: <42>(value: 42) => Result.Result<42, never> (+1 overload) succeed (42);
const const failure: Result.Result<never, Error> failure = import R R .const fail: <Error>(error: Error) => Result.Result<never, Error> (+1 overload) fail (new var Error: ErrorConstructor
new (message?: string, options?: ErrorOptions) => Error (+1 overload)
Error ('Something went wrong'));#正しい
// ✅ Resultを一貫して使用
import { import Result Result } from '@praha/byethrow';
const const success: Result.Result<42, never> success = import Result Result .const succeed: <42>(value: 42) => Result.Result<42, never> (+1 overload) succeed (42);
const const failure: Result.Result<never, Error> failure = import Result Result .const fail: <Error>(error: Error) => Result.Result<never, Error> (+1 overload) fail (new var Error: ErrorConstructor
new (message?: string, options?: ErrorOptions) => Error (+1 overload)
Error ('Something went wrong'));// ✅ Rを一貫して使用(Rを優先するよう設定した場合)
import { import R R } from '@praha/byethrow';
const const success: R.Result<42, never> success = import R R .const succeed: <42>(value: 42) => R.Result<42, never> (+1 overload) succeed (42);
const const failure: R.Result<never, Error> failure = import R R .const fail: <Error>(error: Error) => R.Result<never, Error> (+1 overload) fail (new var Error: ErrorConstructor
new (message?: string, options?: ErrorOptions) => Error (+1 overload)
Error ('Something went wrong'));#オプション
ルールは優先する名前空間を単一の文字列で受け取ります(デフォルト: "Result")。
ResultではなくRを優先する場合:
import { function defineConfig<T extends OxlintConfig>(config: T): TDefine an Oxlint configuration with type inference.
@paramconfig - Oxlint configuration@returnsConfig unchanged defineConfig } from 'oxlint';
export default defineConfig<{
rules: {
'byethrow/consistent-namespace': ["error", string];
};
}>(config: {
rules: {
'byethrow/consistent-namespace': ["error", string];
};
}): {
rules: {
'byethrow/consistent-namespace': ["error", string];
};
}
Define an Oxlint configuration with type inference.
@paramconfig - Oxlint configuration@returnsConfig unchanged defineConfig ({
rules: {
'byethrow/consistent-namespace': ["error", string];
}
rules : {
'byethrow/consistent-namespace': ['error', 'R'],
},
});