Skip to content

Commit 56f3b8f

Browse files
authored
build: format/lint with prettier/biome and use husky hooks via lintstaged (#5)
1 parent e7f0e8a commit 56f3b8f

File tree

11 files changed

+4301
-1863
lines changed

11 files changed

+4301
-1863
lines changed

.husky/pre-commit

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
pnpm build check test
1+
#!/bin/sh
2+
3+
pnpx lint-staged --config .lintstagedrc.commit.js

.husky/pre-push

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
pnpx lint-staged --config .lintstagedrc.push.js

.lintstagedrc.commit.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export default {
2+
"**/*.{js,ts,json}": (filenames) =>
3+
filenames.length ? [`biome check --write ${filenames.join(" ")}`] : [],
4+
"!(**/*.{js,ts,json})": (filenames) =>
5+
filenames.length ? [`prettier --write ${filenames.join(" ")}`] : [],
6+
};

.lintstagedrc.push.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default {
2+
"*": (filenames) => (filenames.length >= 5 ? ["pnpm build check test"] : []),
3+
};

.pretter.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ignoreUnknown": true
3+
}

.prettierignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
**/generated**
2+
**/*.{js,ts,json}
3+
.husky/**
4+
.prettierignore

.vscode/extensions.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"recommendations": [
3+
"esbenp.prettier-vscode",
4+
"biomejs.biome",
5+
"google.geminicodeassist"
6+
]
7+
}

.vscode/settings.json

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
{
2-
"editor.defaultFormatter": "esbenp.prettier-vscode",
3-
"[javascript]": {
4-
"editor.defaultFormatter": "esbenp.prettier-vscode"
5-
},
6-
"windsurf.cascadeCommandsAllowList": [
7-
"pnpm test",
8-
"pnpm build",
9-
"pnpm build check test",
10-
"pnpm format",
11-
"cd"
12-
]
2+
"editor.defaultFormatter": "esbenp.prettier-vscode",
3+
"[javascript]": {
4+
"editor.defaultFormatter": "biomejs.biome"
5+
},
6+
"[typescript]": {
7+
"editor.defaultFormatter": "biomejs.biome"
8+
},
9+
"[json]": {
10+
"editor.defaultFormatter": "biomejs.biome"
11+
},
12+
"windsurf.cascadeCommandsAllowList": [
13+
"pnpm test",
14+
"pnpm build",
15+
"pnpm build check test",
16+
"pnpm format",
17+
"cd"
18+
],
19+
"[shellscript]": {
20+
"editor.defaultFormatter": "foxundermoon.shell-format"
21+
}
1322
}

biome.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
3+
"organizeImports": {
4+
"enabled": true
5+
},
6+
"linter": {
7+
"enabled": true,
8+
"rules": {
9+
"recommended": true
10+
}
11+
},
12+
"files": {
13+
"include": ["**/*.js", "**/*.ts", "**/*.json"],
14+
"ignore": ["**/package.json"]
15+
},
16+
"javascript": {
17+
"formatter": {
18+
"semicolons": "always"
19+
}
20+
}
21+
}

package.json

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,20 @@
99
"test": "turbo run test",
1010
"check": "turbo run check",
1111
"release": "turbo run build && pnpm publish -r",
12-
"prepare": "husky install"
12+
"prepare": "husky install",
13+
"format:biome": "biome check --write .",
14+
"format:prettier": "prettier --write .",
15+
"format": "pnpm format:prettier && pnpm format:biome",
16+
"lint:biome": "biome check .",
17+
"lint:prettier": "prettier --check .",
18+
"lint": "pnpm lint:prettier && pnpm lint:biome"
1319
},
1420
"devDependencies": {
21+
"@biomejs/biome": "^1.9.4",
1522
"@changesets/cli": "^2.28.1",
1623
"husky": "^9.1.7",
17-
"prettier": "^3.5.3",
24+
"lint-staged": "^15.5.0",
25+
"prettier": "^3.4.2",
1826
"turbo": "^2.4.4",
1927
"typescript": "5.8.2"
2028
},
@@ -26,5 +34,6 @@
2634
"onlyBuiltDependencies": [
2735
"esbuild"
2836
]
29-
}
37+
},
38+
"type": "module"
3039
}

0 commit comments

Comments
 (0)