{"id":19867,"library":"eslint-plugin-oro","title":"ESLint Plugin Oro","description":"ESLint plugin providing custom linting rules for OroPlatform, OroCRM, and OroCommerce projects. Current stable version is 0.0.3 (released 2021). It adds a single rule, 'named-constructor', that enforces naming conventions for Backbone.js constructor functions (View, Model, Collection). Requires ESLint >=7.23.0 and has no active development since 0.0.2. Differentiators: specifically targets Oro ecosystem conventions, but otherwise limited in scope and community adoption compared to general Backbone linting tools.","status":"active","version":"0.0.3","language":"javascript","source_language":"en","source_url":"git://github.com/laboro/eslint-plugin-oro","tags":["javascript","eslint","eslintplugin","eslint-plugin","oro","oroplatform","orocrm","orocommerce"],"install":[{"cmd":"npm install eslint-plugin-oro","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-oro","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-oro","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for the plugin to function. Must be >=7.23.0.","package":"eslint","optional":false}],"imports":[{"note":"ESLint automatically strips the 'eslint-plugin-' prefix. Use 'oro' in the plugins array.","wrong":"plugins: ['eslint-plugin-oro']","symbol":"plugin","correct":"plugins: ['oro']"},{"note":"Must include the 'plugin:' prefix when referencing a plugin's config.","wrong":"extends: ['oro/recommended']","symbol":"recommended config","correct":"extends: ['plugin:oro/recommended']"},{"note":"Rule names must be prefixed with the plugin name (oro/) to avoid conflicts.","wrong":"rules: { 'named-constructor': 'warn' }","symbol":"named-constructor rule","correct":"rules: { 'oro/named-constructor': 'warn' }"}],"quickstart":{"code":"// .eslintrc.json\n{\n  \"plugins\": [\"oro\"],\n  \"extends\": [\"plugin:oro/recommended\"],\n  \"settings\": {\n    \"oro\": {\n      \"backboneExtendablesTypes\": [\"View\", \"Model\", \"Collection\"]\n    }\n  },\n  \"rules\": {\n    \"oro/named-constructor\": \"error\"\n  }\n}\n\n// Example file that may trigger rule:\n// Non-compliant: const view = BaseView.extend({});\n// Compliant: const MyView = BaseView.extend({});","lang":"javascript","description":"Configures eslint-plugin-oro with recommended settings and the named-constructor rule. Sets Backbone extendable types."},"warnings":[{"fix":"upgrade eslint to >=7.23.0","message":"requires eslint >=7.23.0, incompatible with older versions","severity":"breaking","affected_versions":"<7.23.0"},{"fix":"check documentation for other plugins if more rules are needed","message":"plugin contains only one rule: named-constructor","severity":"gotcha","affected_versions":"all"},{"fix":"provide array with Backbone class name suffixes (e.g., ['View','Model','Collection'])","message":"settings.oro.backboneExtendablesTypes must be an array of strings, otherwise plugin may fail silently","severity":"gotcha","affected_versions":"all"},{"fix":"consider forking or using alternative eslint plugins for Backbone","message":"plugin is not actively maintained (last release 0.0.2, no updates since 2021)","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"run 'npm install eslint-plugin-oro --save-dev'","cause":"plugin not installed or missing from node_modules","error":"Error: Failed to load plugin 'oro': Cannot find module 'eslint-plugin-oro'"},{"fix":"use string severity: 'off', 'warn', or 'error'","cause":"using numeric severity 1 instead of string 'warn' or 'error'","error":"Configuration for rule \"oro/named-constructor\" is invalid: Value \"1\" is not a valid severity."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}