{"_id":"@byscott-io/eslint-config","_rev":"2-b2e095318508529d1293eb271e1adb44","name":"@byscott-io/eslint-config","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@byscott-io/eslint-config","version":"0.1.0","_id":"@byscott-io/eslint-config@0.1.0","maintainers":[{"name":"sevgibson","email":"sevgibson@gmail.com"}],"dist":{"shasum":"037a04d1e711baf89755f006ad257a6dc3b0c3c5","tarball":"https://registry.npmjs.org/@byscott-io/eslint-config/-/eslint-config-0.1.0.tgz","fileCount":3,"integrity":"sha512-Xyw2rj2Es60K91oNN0jH+kVjLW0bZ5WKiW0VsH6CHin+A/Dlr02prS+VyigmqKeC/06YVOaqUOJnrmrlZzOkjA==","signatures":[{"sig":"MEYCIQDwfB+EPi8iYHRaOXDThhl6btrImWh5rZpvxoktuIVjeAIhAKqpVBJ2u1/McmqaKZ9Yxaw+waLiDkhol8aijcPzifPu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5388},"main":"index.js","type":"module","exports":{".":"./index.js"},"gitHead":"3679964c859bc724ead3303f845ef21727255455","_npmUser":{"name":"sevgibson","email":"sevgibson@gmail.com"},"_npmVersion":"10.9.2","description":"Shared ESLint flat-config preset for the byscott-io fleet (React + hooks).","directories":{},"_nodeVersion":"22.13.1","dependencies":{"globals":"^17.10.0","@eslint/js":"^9.39.2","eslint-plugin-react":"^7.34.0","eslint-plugin-react-hooks":"^7.1.1"},"publishConfig":{"registry":"https://npm.pkg.github.com"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config_0.1.0_1788045963505_0.7843715202962742","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@byscott-io/eslint-config","version":"0.2.0","description":"Shared ESLint flat-config preset for the byscott-io fleet (React + hooks).","type":"module","main":"index.js","exports":{".":"./index.js"},"publishConfig":{"registry":"https://npm.pkg.github.com"},"peerDependencies":{"eslint":">=9"},"dependencies":{"@eslint/js":"^9.39.2","@typescript-eslint/eslint-plugin":"^8.68.0","@typescript-eslint/parser":"^8.68.0","eslint-plugin-react":"^7.34.0","eslint-plugin-react-hooks":"^7.1.1","globals":"^17.10.0"},"_id":"@byscott-io/eslint-config@0.2.0","gitHead":"c55010fc8c9cf91c47080f0af78c880a34eaad09","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-g8H/4oscZWJf8ub4mXRI7LCuUg/S9Wu9fv+whOrsJnz7WENi57Ba3bN8L9YX/6H72EMbpBB05sI+IrR8RTQPFg==","shasum":"9924cb021ee72bb7a0647be79720540370b92c17","tarball":"https://registry.npmjs.org/@byscott-io/eslint-config/-/eslint-config-0.2.0.tgz","fileCount":3,"unpackedSize":9788,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC4Gq9Nqp72/NeRE0miZUGbpy0WGQydxEHM66pAtEzNCQIgBje+krAQD5jwd57nsIE0u/5hO+/OfAxmloXx2yx23zM="}]},"_npmUser":{"name":"sevgibson","email":"sevgibson@gmail.com"},"directories":{},"maintainers":[{"name":"sevgibson","email":"sevgibson@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config_0.2.0_1788126304399_0.2198402130732513"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-29T23:26:03.377Z","modified":"2026-08-30T21:45:04.742Z","0.1.0":"2026-08-29T23:26:03.634Z","0.2.0":"2026-08-30T21:45:04.578Z"},"description":"Shared ESLint flat-config preset for the byscott-io fleet (React + hooks).","maintainers":[{"name":"sevgibson","email":"sevgibson@gmail.com"}],"readme":"# @byscott-io/eslint-config\n\nShared ESLint **flat-config** preset for the byscott-io fleet (React + hooks).\n\nOne source of truth for eslint + plugin versions and house rules, so upgrades are\na single-package bump instead of every repo drifting on its own config. Requires\nESLint v9+ (flat config).\n\n## Install\n\n```bash\nyarn add -D eslint @byscott-io/eslint-config\n```\n\nThe preset brings its own plugins (`eslint-plugin-react`, `eslint-plugin-react-hooks`,\n`@eslint/js`, `globals`) — you only need `eslint` itself.\n\n## Use\n\nCreate `eslint.config.js` at the repo root:\n\n```js\nimport byscott from \"@byscott-io/eslint-config\";\n\nexport default byscott();\n```\n\n- Default globs: `src/**/*.{js,jsx}` and `app/javascript/**/*.{js,jsx}`.\n- Override the source globs:\n\n  ```js\n  export default byscott({ files: [\"app/javascript/**/*.{js,jsx}\"] });\n  ```\n\n- Add repo-specific ignores (appended to the fleet defaults):\n\n  ```js\n  export default byscott({ ignores: [\"app/javascript/legacy/**\"] });\n  ```\n\n- Mark Node/server files so `process` / `require` / `__dirname` aren't reported\n  as undefined (globs must be a subset of the linted files):\n\n  ```js\n  export default byscott({ node: [\"**/server.js\", \"packages/**/src/store.js\"] });\n  ```\n\n- Extend or override — the return value is a plain flat-config array:\n\n  ```js\n  export default [\n    ...byscott(),\n    { rules: { \"no-console\": \"off\" } }\n  ];\n  ```\n\n## What it enforces\n\n`@eslint/js` recommended + house style (`no-var`, `prefer-const`, `no-unused-vars`\nwith `^_` escape, `no-console` as a warning) + React and React-Hooks rules\n(`rules-of-hooks` error, `exhaustive-deps` warn; `prop-types` and\n`react-in-jsx-scope` off for the modern JSX runtime).\n\n## React Native / TypeScript variant\n\nFor the mobile packages (`/mobile`, `/mobile-package`), use the named\n`byscottReactNative` export instead. It parses `.ts`/`.tsx` with\n`@typescript-eslint`, uses React Native globals (`__DEV__`, `fetch`, …), and keeps\nthe same house style plus the `@typescript-eslint` recommended set.\n\n```js\nimport { byscottReactNative } from \"@byscott-io/eslint-config\";\n\nexport default byscottReactNative();\n// default globs: src/**/*.{ts,tsx}\nexport default byscottReactNative({ files: [\"src/**/*.{ts,tsx}\", \"__tests__/**/*.{ts,tsx}\"] });\n```\n\nThe `@typescript-eslint` packages load lazily (only when this export is called),\nso web consumers of `byscottReact` never pull the TypeScript toolchain onto the\nlint path.\n\n> **TypeScript 7 not yet supported.** `typescript-eslint` (through 8.68) supports\n> TypeScript `< 6.1` only; a package on TypeScript 7 will fail at parser load with\n> *\"typescript-eslint does not support TS 7.0\"* until upstream ships TS-7 support\n> ([typescript-eslint#10940](https://github.com/typescript-eslint/typescript-eslint/issues/10940)).\n> Most fleet mobile packages are on TS 7, so this variant is published\n> forward-ready and rolls out once that lands.\n","readmeFilename":"README.md"}