ci: lint, format, package checks, dist-drift guard, and husky hooks - #21
Open
gmegidish wants to merge 2 commits into
Open
ci: lint, format, package checks, dist-drift guard, and husky hooks#21gmegidish wants to merge 2 commits into
gmegidish wants to merge 2 commits into
Conversation
…d buttons - NinePatchSkin.platform is optional again (defaults to 'ios' for the boot screen) so consumer-defined skin objects stay type-compatible. - DeviceControls threads disabled into each button as the native disabled attribute, so greyed-out boot controls can't be focused or activated from the keyboard (pointer-events alone didn't block that). Claude-Session: https://claude.ai/code/session_01VtCcrdjXTnBUCLYv4HVo99
- GitHub Actions workflow: typecheck, lint, format check, tests, build, dist-drift check (dist/ is committed and installed straight from git), and package-shape validation on every PR and push to main. - ESLint (typescript-eslint + react-hooks flat config); fixed the dead code it found (unused imports/vars). The new react-hooks compiler rules flag pre-existing deliberate patterns (refs in render, setState in stream effects) — kept as warnings for now. - Prettier + .editorconfig switched to 2-space indent (the repo was mixed: components 2-space, stream classes tabs — this one-time pass converts the tab-indented files). Generated files (skins, boot assets, dist) are ignored. - publint + @arethetypeswrong/cli: fixed a real FalseCJS issue they caught — the exports map served ESM importers the CJS type declarations; now import/require each get matching types. - husky pre-commit: lint-staged (eslint --fix + prettier on staged files), typecheck, tests, then rebuild dist and re-stage it so a commit can never ship src changes with a stale build. The prepare script is guarded (husky || true) so git-dependency installs of this package don't fail. Claude-Session: https://claude.ai/code/session_01VtCcrdjXTnBUCLYv4HVo99
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the CI/tooling layer discussed for this repo (stacked on #20; will auto-retarget to main when it merges):
tsc --noEmit, ESLint, Prettier check, vitest, build, dist-drift check (git diff --exit-code dist/— dist is committed and installed straight from git, so CI fails if a PR ships src changes with a stale build), and package-shape validation.refs,set-state-in-effect) flag pre-existing deliberate patterns in the stream plumbing — kept as warnings..editorconfig(tabs, width 150); this PR carries the one-time reformat. Generated files (skins, boot assets, dist) ignored.index.d.mts/index.d.ts).prepareis guarded with|| truesogithub:installs of this package don't fail outside a git work tree.