Skip to content

Commit ce14364

Browse files
committed
feat: create groups
Signed-off-by: prisis <[email protected]>
1 parent 345ffc2 commit ce14364

File tree

11 files changed

+115
-1
lines changed

11 files changed

+115
-1
lines changed

packages/lint-staged-config/package.json

+9-1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"postinstall": "node ./skip.js || node ./dist/postinstall.js"
5656
},
5757
"dependencies": {
58+
"cross-env": "^7.0.3",
5859
"@anolilab/package-json-utils": "1.5.0"
5960
},
6061
"devDependencies": {
@@ -74,6 +75,13 @@
7475
},
7576
"sources": [
7677
"src/index.ts",
77-
"src/postinstall.ts"
78+
"src/postinstall.ts",
79+
"src/groups/dockerfile.ts",
80+
"src/groups/eslint.ts",
81+
"src/groups/package-json.ts",
82+
"src/groups/prettier.ts",
83+
"src/groups/stylesheets.ts",
84+
"src/groups/test.ts",
85+
"src/groups/typescript.ts"
7886
]
7987
}

packages/lint-staged-config/src/config.ts

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const group = {
2+
Dockerfile: ["dockerfile"],
3+
};
4+
5+
export default group;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const extensions = ["json", "json5", "jsonc", "cjs", "js", "mjs", "cts", "ts", "mts", "yml", "yaml", "jsx", "tsx", "md", "mdx"] as const;
2+
3+
const group = {
4+
[`*.{${extensions.join(",")}}`]: ["cross-env NO_LOGS=true eslint"],
5+
};
6+
7+
export default group;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const group = {
2+
"**/package.json": () => [
3+
4+
],
5+
};
6+
7+
export default group;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { hasDependency, hasDevDependency } from "@anolilab/package-json-utils";
2+
3+
let hasPrettyQuick = false;
4+
5+
if (hasDependency("pretty-quick") || hasDevDependency("pretty-quick")) {
6+
hasPrettyQuick = true;
7+
}
8+
9+
const group = {
10+
"*": hasPrettyQuick ? ["pretty-quick --check --staged"] : ["prettier --list-different"],
11+
};
12+
13+
export default group;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const group = {
2+
[`*.{${["css", "sass", "scss", "less"].join(",")}}`]: ["stylelint"],
3+
};
4+
5+
export default group;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const group = {
2+
"**/__tests__/**/*.?(c|m)[jt]s?(x)": ["vitest related --run"],
3+
"**/?(*.){test,spec}.?(c|m)[jt]s?(x)": ["vitest related --run"],
4+
};
5+
6+
export default group;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const group = {
2+
3+
};
4+
5+
export default group;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const noop = () => undefined;
2+
3+
const consolePrefix = (prefix: string) =>
4+
// eslint-disable-next-line implicit-arrow-linebreak
5+
(process.env["NO_LOGS"] ? noop : (message: string) => console.log(`${prefix}${message}`));
6+
7+
const consoleLog = consolePrefix("");
8+
9+
export default consoleLog;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { packageIsTypeModule, projectPath } from "@anolilab/package-json-utils";
2+
import { existsSync, writeFile } from "node:fs";
3+
import { join } from "node:path";
4+
import { promisify } from "node:util";
5+
6+
if (process.env["CI"]) {
7+
// eslint-disable-next-line unicorn/no-process-exit
8+
process.exit(0);
9+
}
10+
11+
const writeFileAsync = promisify(writeFile);
12+
13+
console.log("Configuring @anolilab/lint-staged-config", projectPath, "\n");
14+
15+
/**
16+
* Writes .lintstagedrc.js if it doesn't exist. Warns if it exists.
17+
*/
18+
const writeLintstagedRc = () => {
19+
const lintstagedPath = join(projectPath, ".lintstagedrc.js");
20+
21+
if (existsSync(lintstagedPath)) {
22+
console.warn("⚠️ .lintstagedrc.js already exists;");
23+
24+
return Promise.resolve();
25+
}
26+
27+
const content = `${packageIsTypeModule ? "export default" : "module.exports ="} {};
28+
29+
`;
30+
31+
return writeFileAsync(lintstagedPath, content, "utf-8");
32+
};
33+
34+
// eslint-disable-next-line unicorn/prefer-top-level-await
35+
(async () => {
36+
try {
37+
await writeLintstagedRc();
38+
console.log("😎 Everything went well, have fun!");
39+
40+
// eslint-disable-next-line unicorn/no-process-exit
41+
process.exit(0);
42+
} catch (error) {
43+
console.log("😬 something went wrong:");
44+
console.error(error);
45+
46+
// eslint-disable-next-line unicorn/no-process-exit
47+
process.exit(1);
48+
}
49+
})();

0 commit comments

Comments
 (0)