build: add husky to automatically format code

- husky installs a git hook to run make format every time you commit new code
- if `make format` fails (if a dependency is missing or prettier throws an error), the hook will still succeed as to not block people for dumb reasons
- pin prettier and husky to 3.2.5 and 9.0.11 respectively
- add prettier as a dependency for the `make format` rule
This commit is contained in:
Tasia Iso 2024-06-04 15:08:10 +02:00
parent 71329c5532
commit 5e72c9caf4
Signed by: tasiaiso
SSH Key Fingerprint: SHA256:KiRjUay5C9i6objsEOIycygBHn54pDBB3Lj7fyJ0Elw
5 changed files with 27 additions and 6 deletions

1
.husky/pre-commit Normal file
View File

@ -0,0 +1 @@
make format || exit 0

View File

@ -2,6 +2,7 @@ node_modules
src
deps
.clang-format
flake.lock
# Minified files
**/*.min.css

View File

@ -902,7 +902,7 @@ dist-test: dist
@rm -rf tildefriends-$(VERSION_NUMBER)
.PHONY: dist-test
format:
format: prettier
@clang-format -i $(wildcard src/*.c src/*.h src/*.m)
.PHONY: format

21
package-lock.json generated
View File

@ -6,12 +6,29 @@
"": {
"name": "tildefriends",
"license": "MIT",
"dependencies": {
"prettier": "^3.2.5"
"devDependencies": {
"husky": "9.0.11",
"prettier": "3.2.5"
}
},
"node_modules/husky": {
"version": "9.0.11",
"resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz",
"integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==",
"dev": true,
"bin": {
"husky": "bin.mjs"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/typicode"
}
},
"node_modules/prettier": {
"version": "3.2.5",
"dev": true,
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"

View File

@ -1,11 +1,13 @@
{
"name": "tildefriends",
"scripts": {
"prettier": "prettier . --check --cache --write"
"prettier": "prettier . --check --cache --write",
"prepare": "husky"
},
"author": "Cory McWilliams",
"license": "MIT",
"dependencies": {
"prettier": "^3.2.5"
"devDependencies": {
"prettier": "3.2.5",
"husky": "9.0.11"
}
}