Release v20.34.0
Added
@cratis/eslint-plugin-arc: ESLint rules for projects that consume Cratis Arc, designed to compose on top of@cratis/eslint-config.skip-generated-proxies(processor) — skips Arc-generated proxy files wholesale. They carry a// @generated by Cratisheader (and a**DO NOT EDIT**banner), cannot be edited, and are regenerated by the build, so any lint finding on them is un-actionable. Keyed on the header because generated proxies sit intermixed with hand-written.tsunder the same folders, with no path distinction. The pass-through preserves filenames (import resolution is unaffected) and keeps--fixworking on hand-written files.no-hooks-in-view-model(rule) — forbids React hook calls inside MVVM view models (classes named*ViewModel). A view model must be a plain, React-free class; inject Cratis abstractions instead of calling hooks. Only bare-identifier hook calls are flagged, so view-model methods that merely start withuseare not false positives. The class suffix and hook pattern are configurable.
Notes
- Named per the ESLint scoped-plugin convention (
@scope/eslint-plugin-*). The plugin namespace is@cratis/arc, so rule IDs read@cratis/arc/no-hooks-in-view-model. - Ships as raw ESM (no build step), declares only
eslintas a peer dependency, and exposesmeta.versionplus per-rule docs URLs. It owns these rules because Arc owns the proxy generator and@cratis/arc.react.mvvm.
🤖 Generated with Claude Code