oxlint-plugin-effect
raw JSON → 0.2.2 verified Fri May 01 auth: no javascript
oxlint-plugin-effect (v0.2.2) is an oxlint plugin that provides lint rules specific to the Effect-TS ecosystem. It includes both JavaScript-based rules and Go-based type-aware rules for deeper analysis. The plugin supports Effect v3 and v4 dual-version codebases, and ships precompiled binaries for multiple platforms. Key differentiators: type-aware linting via tsgolint Go binary, 59+ rules covering Effect patterns, and integration with oxlint's plugin system. The plugin is actively maintained with releases on a changeset-based cadence. Peer dependency: effect >=4.0.0-beta.49.
Common errors
error ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING ↓
cause Plugin shipped raw TypeScript; Node cannot strip types under node_modules.
fix
Upgrade to oxlint-plugin-effect@0.2.1 or later.
error Error: Failed to parse oxlint config: unknown rule 'effect/noReturnNull' ↓
cause The rule 'noReturnNull' was removed from the plugin in v0.2.2.
fix
Replace 'effect/noReturnNull' with 'effect/noReturnNullish' in your config.
error Cannot find module 'oxlint-plugin-effect' ↓
cause Plugin not installed or version mismatch.
fix
Run 'npm install oxlint-plugin-effect' and check peer dependency effect.
error TypeError: pluginEffect is not a function ↓
cause Plugin default export is not a function; it is an object.
fix
Use 'pluginEffect' directly in the plugins object, not as pluginEffect().
Warnings
breaking Plugin fails to load because it shipped raw TypeScript files instead of compiled JavaScript. ↓
fix Upgrade to oxlint-plugin-effect@0.2.1 or later, which ships compiled JS.
breaking Removed rule 'noReturnNull' from strict preset; using that preset may cause oxlint config parse failure. ↓
fix Remove any reference to 'noReturnNull' from your config; use 'noReturnNullish' instead.
breaking Rule names changed between v0.1.0 and v0.2.0, e.g., 'noEffectMap' replaced by 'no-effect-map'. ↓
fix Update rule names to kebab-case format as used in oxlint config.
deprecated The 'full' preset is deprecated in favor of 'recommended' or 'strict'. ↓
fix Use 'configs.recommended' or 'configs.strict' instead of 'configs.full'.
gotcha Peer dependency 'effect' must be >=4.0.0-beta.49; older versions will cause rule errors. ↓
fix Ensure your project depends on effect >=4.0.0-beta.49.
Install
npm install oxlint-plugin-effect yarn add oxlint-plugin-effect pnpm add oxlint-plugin-effect Imports
- oxlint-plugin-effect wrong
require('oxlint-plugin-effect')correct{} from 'oxlint-plugin-effect' - rules wrong
const { rules } = require('oxlint-plugin-effect')correctimport { rules } from 'oxlint-plugin-effect' - configs
import { configs } from 'oxlint-plugin-effect'
Quickstart
// oxlint.config.ts
import { defineLinter } from 'oxlint';
import pluginEffect from 'oxlint-plugin-effect';
export default defineLinter({
plugins: {
effect: pluginEffect,
},
rules: {
'effect/no-unnecessary-pipe-chain': 'error',
'effect/no-catch-all-to-map-error': 'warn',
},
});