@xeonr/config
v0.2.0
Published
The TypeScript and ESLint config every Xeonr console UI extends (BUILDING-SERVICES §11.8).
Readme
@xeonr/config
The TypeScript and ESLint config every Xeonr console UI extends
(ui.toolchain). A UI's own config adds to it; it never turns a
setting here off.
pnpm add -D @xeonr/config eslint @eslint/js typescript-eslint eslint-plugin-react-hooks typescriptTypeScript
// tsconfig.json
{
"extends": "@xeonr/config/tsconfig",
"compilerOptions": { "types": ["vite/client", "node"] },
"include": ["src"]
}ES2022 + DOM, bundler resolution, react-jsx, and strict,
noUnusedLocals, noUnusedParameters, noFallthroughCasesInSwitch,
noUncheckedIndexedAccess, exactOptionalPropertyTypes, isolatedModules,
verbatimModuleSyntax, allowImportingTsExtensions, skipLibCheck and
noEmit (Vite emits; tsc only checks). types and include are the UI's.
ESLint
// eslint.config.js
import xeonr from "@xeonr/config/eslint";
export default xeonr();
// or, with a UI's own additions:
// export default [...xeonr({ ignores: ["storybook-static/"] }), { rules: { … } }];@eslint/js recommended, typescript-eslint recommended and
eslint-plugin-react-hooks recommended (the React Compiler rules included),
no-unused-vars with _-prefixed names exempt, browser and node globals,
and dist/ and src/gen/ ignored. The plugins are peer dependencies, so the
UI's lockfile pins them; ESLint 9.22+ and 10 both work.
Two warnings steer UIs off the native select: a JSX <select>
(no-restricted-syntax) and importing the deprecated Select from
@xeonr/platform-ui (no-restricted-imports) both point at Picker. They
are warnings, not errors, so a console moves when it next touches the screen
rather than in one sweep.
Formatter
None. §11.8 names one, but no console runs a formatter today (no Prettier, Biome or dprint config anywhere in the estate), so there is nothing to share yet. PLAT-163 picks one; when it lands, its config ships here.
Releasing
Bump version and merge to main; CI publishes it (config-v<version> tag).
pnpm test checks the tsconfig still sets every option above and that the
ESLint config still reports what it should.
