Skip to content

chore(tooling): add pre-commit prettier hook and consolidate prettier devDependency#860

Merged
robingenz merged 1 commit into
mainfrom
chore/prettier-precommit-hook
May 25, 2026
Merged

chore(tooling): add pre-commit prettier hook and consolidate prettier devDependency#860
robingenz merged 1 commit into
mainfrom
chore/prettier-precommit-hook

Conversation

@robingenz
Copy link
Copy Markdown
Member

Summary

  • Add `husky` + `lint-staged` so staged `**/*.{css,html,ts,js,java}` files are auto-formatted with the workspace-pinned prettier on every commit. Makes it physically impossible to push prettier-dirty code without `--no-verify`.
  • Move `prettier@3.4.2` from every `packages/*/package.json` into the root `package.json` devDependencies (single source of truth). Per-package `npm run prettier` scripts continue to work via npm workspace hoisting.
  • Add `"prepare": "husky"` so `npm install` wires up the hook automatically.

`prettier-plugin-java` duplication is left alone (already consistent — hoisted at root and listed in each package).

Ports the tooling changes from capawesome-team/capacitor-firebase#995 to this repo. The Node version bump from that PR is omitted because CI here is already on Node 24.

Test plan

  • `npm install` runs cleanly and triggers `prepare` → husky wires up `core.hooksPath=.husky/_`
  • Per-package prettier still resolves via workspace hoisting (verified `npx prettier --version` → 3.4.2 from `packages/age-signals`)
  • Commit with no matching staged files short-circuits cleanly (`lint-staged could not find any staged files matching configured tasks`)

🤖 Generated with Claude Code

… devDependency

- Add husky + lint-staged so staged **/*.{css,html,ts,js,java} files are auto-formatted with the workspace-pinned prettier on every commit.
- Move prettier@3.4.2 from every packages/*/package.json into the root package.json devDependencies (single source of truth). Per-package npm run prettier scripts continue to work via npm workspace hoisting.
- Add "prepare": "husky" so npm install wires up the hook automatically.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 25, 2026 14:23
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repo’s formatting/tooling workflow by introducing a Husky + lint-staged pre-commit hook to auto-run Prettier on staged files, and by consolidating the prettier devDependency to the workspace root.

Changes:

  • Add Husky + lint-staged and configure a pre-commit hook to run Prettier on staged css/html/ts/js/java files.
  • Move prettier@3.4.2 from individual workspace packages to the root package.json.
  • Update package-lock.json accordingly for the new root-level tooling dependencies.

Reviewed changes

Copilot reviewed 32 out of 33 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
package.json Adds husky, lint-staged, root prettier, prepare script, and lint-staged config.
package-lock.json Locks new tooling deps (husky/lint-staged) and pins Prettier to 3.4.2 at the root.
.husky/pre-commit Adds pre-commit hook to run lint-staged.
packages/age-signals/package.json Removes per-package prettier devDependency (now provided by root).
packages/android-battery-optimization/package.json Removes per-package prettier devDependency (now provided by root).
packages/android-dark-mode-support/package.json Removes per-package prettier devDependency (now provided by root).
packages/android-edge-to-edge-support/package.json Removes per-package prettier devDependency (now provided by root).
packages/android-foreground-service/package.json Removes per-package prettier devDependency (now provided by root).
packages/app-review/package.json Removes per-package prettier devDependency (now provided by root).
packages/app-shortcuts/package.json Removes per-package prettier devDependency (now provided by root).
packages/app-update/package.json Removes per-package prettier devDependency (now provided by root).
packages/apple-sign-in/package.json Removes per-package prettier devDependency (now provided by root).
packages/asset-manager/package.json Removes per-package prettier devDependency (now provided by root).
packages/background-task/package.json Removes per-package prettier devDependency (now provided by root).
packages/badge/package.json Removes per-package prettier devDependency (now provided by root).
packages/cloudinary/package.json Removes per-package prettier devDependency (now provided by root).
packages/datetime-picker/package.json Removes per-package prettier devDependency (now provided by root).
packages/file-opener/package.json Removes per-package prettier devDependency (now provided by root).
packages/file-picker/package.json Removes per-package prettier devDependency (now provided by root).
packages/formbricks/package.json Removes per-package prettier devDependency (now provided by root).
packages/google-sign-in/package.json Removes per-package prettier devDependency (now provided by root).
packages/libsql/package.json Removes per-package prettier devDependency (now provided by root).
packages/live-update/package.json Removes per-package prettier devDependency (now provided by root).
packages/managed-configurations/package.json Removes per-package prettier devDependency (now provided by root).
packages/photo-editor/package.json Removes per-package prettier devDependency (now provided by root).
packages/pixlive/package.json Removes per-package prettier devDependency (now provided by root).
packages/posthog/package.json Removes per-package prettier devDependency (now provided by root).
packages/realtimekit/package.json Removes per-package prettier devDependency (now provided by root).
packages/screen-orientation/package.json Removes per-package prettier devDependency (now provided by root).
packages/screenshot/package.json Removes per-package prettier devDependency (now provided by root).
packages/square-mobile-payments/package.json Removes per-package prettier devDependency (now provided by root).
packages/superwall/package.json Removes per-package prettier devDependency (now provided by root).
packages/torch/package.json Removes per-package prettier devDependency (now provided by root).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .husky/pre-commit
Comment thread package.json
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 25, 2026

Open in StackBlitz

@capawesome/capacitor-age-signals

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-age-signals@860

@capawesome-team/capacitor-android-battery-optimization

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome-team/capacitor-android-battery-optimization@860

@capawesome/capacitor-android-dark-mode-support

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-android-dark-mode-support@860

@capawesome/capacitor-android-edge-to-edge-support

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-android-edge-to-edge-support@860

@capawesome-team/capacitor-android-foreground-service

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome-team/capacitor-android-foreground-service@860

@capawesome/capacitor-app-review

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-app-review@860

@capawesome/capacitor-app-shortcuts

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-app-shortcuts@860

@capawesome/capacitor-app-update

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-app-update@860

@capawesome/capacitor-apple-sign-in

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-apple-sign-in@860

@capawesome/capacitor-asset-manager

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-asset-manager@860

@capawesome/capacitor-background-task

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-background-task@860

@capawesome/capacitor-badge

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-badge@860

@capawesome/capacitor-cloudinary

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-cloudinary@860

@capawesome-team/capacitor-datetime-picker

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome-team/capacitor-datetime-picker@860

@capawesome-team/capacitor-file-opener

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome-team/capacitor-file-opener@860

@capawesome/capacitor-file-picker

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-file-picker@860

@capawesome/capacitor-formbricks

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-formbricks@860

@capawesome/capacitor-google-sign-in

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-google-sign-in@860

@capawesome/capacitor-libsql

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-libsql@860

@capawesome/capacitor-live-update

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-live-update@860

@capawesome/capacitor-managed-configurations

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-managed-configurations@860

@capawesome/capacitor-photo-editor

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-photo-editor@860

@capawesome/capacitor-pixlive

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-pixlive@860

@capawesome/capacitor-posthog

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-posthog@860

@capawesome/capacitor-realtimekit

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-realtimekit@860

@capawesome/capacitor-screen-orientation

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-screen-orientation@860

@capawesome/capacitor-screenshot

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-screenshot@860

@capawesome/capacitor-square-mobile-payments

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-square-mobile-payments@860

@capawesome/capacitor-superwall

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-superwall@860

@capawesome/capacitor-torch

npm i https://pkg.pr.new/capawesome-team/capacitor-plugins/@capawesome/capacitor-torch@860

commit: 06054c0

@robingenz robingenz merged commit 9a225df into main May 25, 2026
8 of 9 checks passed
@robingenz robingenz deleted the chore/prettier-precommit-hook branch May 25, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants