@vanyauhalin/eslint-plugin-result
v0.1.0
Published
Rules for consistent @vanyauhalin/result usage
Maintainers
Readme
eslint-plugin-result
Rules for consistent @vanyauhalin/result usage.
Contents
Installation
npm
npm install --save-dev @vanyauhalin/eslint-plugin-resultGitHub Packages
npm install --save-dev --registry https://npm.pkg.github.com @vanyauhalin/eslint-plugin-resultJSR (JavaScript Registry)
npx jsr add --dev @vanyauhalin/eslint-plugin-resultGitHub Releases
npm install --save-dev vanyauhalin-eslint-plugin-result-x.x.x.tgzUsage
import parser from "@typescript-eslint/parser"
import result from "@vanyauhalin/eslint-plugin-result"
export default [
{
files: ["**/*.js", "**/*.ts"],
languageOptions: {
parser,
parserOptions: {
projectService: true,
},
},
},
result.configs.recommended,
]Settings
Plugin settings go in the settings.result object.
Fields
disableTargetGuard(boolean, default:false) — Controls whether the plugin should enforce rules when@vanyauhalin/resultnot detected in the project. By default, all rules become no-op when the target package is not installed. Set this totrueto enforce rules regardless of package presence.
Example
import result from "@vanyauhalin/result"
export default [
{
files: ["**/*.js", "**/*.ts"],
settings: {
result: {
disableTargetGuard: true,
},
},
},
result.configs.recommended,
]Rules
💼 Configurations enabled in.
✅ Set in the recommended configuration.
🔧 Automatically fixable by the --fix CLI option.
💭 Requires type information.
| Name | Description | 💼 | 🔧 | 💭 |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | :--- | :--- |
| no-arrow-function-argument | Disallow arrow functions as the first argument to safeSync and safeAsync calls. Prefer to move function definitions outside of the call arguments. | ✅ | | |
| no-async-function-in-sync | Disallow async functions as the first argument to safeSync calls. Prefer to use safeAsync for async functions. | ✅ | | 💭 |
| no-bare-error-return | Disallow returning unwrapped errors from Result objects. Prefer to wrap errors with additional context. | ✅ | | |
| no-function-argument | Disallow function expressions (both named and anonymous) as the first argument to safeSync and safeAsync functions. Prefer to move function definitions outside of the call arguments. | ✅ | | |
| no-iife-argument | Disallow immediately invoked function expressions (IIFE) as the first argument to safeNew, safeSync, and safeAsync calls. Prefer to define the function outside the call arguments. | ✅ | | |
| no-newline-before-error-check | Disallow empty lines between safeNew, safeSync, and safeAsync calls and their immediate error checks. Prefer to maintain locality of error handling. | ✅ | 🔧 | |
| no-result-destructuring | Disallow destructuring Result objects from safeNew, safeSync, and safeAsync calls. Prefer to access v and err properties explicitly. | ✅ | | |
| prefer-safe-over-try-catch | Prefer safeNew, safeSync, and safeAsync calls over try-catch blocks. | ✅ | | |
Compatibility
This package is ESM only. The minimum supported ESLint version is 9, Node.js
version is 18.18, TypeScript version is 4.8.4, and @typescript-eslint/parser
version is 8.
