{"id":26056,"library":"oxlint-plugin-effect","title":"oxlint-plugin-effect","description":"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.","status":"active","version":"0.2.2","language":"javascript","source_language":"en","source_url":"https://github.com/cevr/effect-oxlint","tags":["javascript"],"install":[{"cmd":"npm install oxlint-plugin-effect","lang":"bash","label":"npm"},{"cmd":"yarn add oxlint-plugin-effect","lang":"bash","label":"yarn"},{"cmd":"pnpm add oxlint-plugin-effect","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"runtime peer dependency; lint rules check Effect symbols and APIs","package":"effect","optional":false}],"imports":[{"note":"Plugin is loaded by oxlint via its plugin mechanism; direct import is not typical.","wrong":"require('oxlint-plugin-effect')","symbol":"oxlint-plugin-effect","correct":"{} from 'oxlint-plugin-effect'"},{"note":"The plugin exposes an object with a 'rules' property.","wrong":"const { rules } = require('oxlint-plugin-effect')","symbol":"rules","correct":"import { rules } from 'oxlint-plugin-effect'"},{"note":"configs contains presets like 'recommended' and 'strict'.","symbol":"configs","correct":"import { configs } from 'oxlint-plugin-effect'"}],"quickstart":{"code":"// oxlint.config.ts\nimport { defineLinter } from 'oxlint';\nimport pluginEffect from 'oxlint-plugin-effect';\n\nexport default defineLinter({\n  plugins: {\n    effect: pluginEffect,\n  },\n  rules: {\n    'effect/no-unnecessary-pipe-chain': 'error',\n    'effect/no-catch-all-to-map-error': 'warn',\n  },\n});","lang":"typescript","description":"Configures oxlint with the Effect plugin and enables two rules as an example."},"warnings":[{"fix":"Upgrade to oxlint-plugin-effect@0.2.1 or later, which ships compiled JS.","message":"Plugin fails to load because it shipped raw TypeScript files instead of compiled JavaScript.","severity":"breaking","affected_versions":"<=0.2.0"},{"fix":"Remove any reference to 'noReturnNull' from your config; use 'noReturnNullish' instead.","message":"Removed rule 'noReturnNull' from strict preset; using that preset may cause oxlint config parse failure.","severity":"breaking","affected_versions":">=0.2.2"},{"fix":"Update rule names to kebab-case format as used in oxlint config.","message":"Rule names changed between v0.1.0 and v0.2.0, e.g., 'noEffectMap' replaced by 'no-effect-map'.","severity":"breaking","affected_versions":"0.2.0"},{"fix":"Use 'configs.recommended' or 'configs.strict' instead of 'configs.full'.","message":"The 'full' preset is deprecated in favor of 'recommended' or 'strict'.","severity":"deprecated","affected_versions":">=0.2.0"},{"fix":"Ensure your project depends on effect >=4.0.0-beta.49.","message":"Peer dependency 'effect' must be >=4.0.0-beta.49; older versions will cause rule errors.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Upgrade to oxlint-plugin-effect@0.2.1 or later.","cause":"Plugin shipped raw TypeScript; Node cannot strip types under node_modules.","error":"ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING"},{"fix":"Replace 'effect/noReturnNull' with 'effect/noReturnNullish' in your config.","cause":"The rule 'noReturnNull' was removed from the plugin in v0.2.2.","error":"Error: Failed to parse oxlint config: unknown rule 'effect/noReturnNull'"},{"fix":"Run 'npm install oxlint-plugin-effect' and check peer dependency effect.","cause":"Plugin not installed or version mismatch.","error":"Cannot find module 'oxlint-plugin-effect'"},{"fix":"Use 'pluginEffect' directly in the plugins object, not as pluginEffect().","cause":"Plugin default export is not a function; it is an object.","error":"TypeError: pluginEffect is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}