/
t.js
63 lines (58 loc) · 1.7 KB
/
t.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env node
// replace this with import of the package
// const { setup } = require("setup-eslint-config");
require("ts-node/register");
const { setup } = require("./src");
const packageInfo = require("./package.json");
async function test(filename) {
console.log("\n", filename);
process.env.ESLINT_TEST_FILENAME = filename;
await setup({
name: "setup-eslint-config",
prompts: [
{ type: "confirm", name: "prettier", message: "Use prettier?" },
{ type: "confirm", name: "day", message: "Having a nice day?" },
],
fileChecks: [
{ name: "license", path: "license" },
{ name: "test", path: "test" },
],
skipDetectedPrompts: true,
packageInfo,
useEslintRelativePathPatch: filename.includes(".js"),
createEslintConfig: (config) => {
const extending = ["relekang"];
if (config.prettier) {
extending.push("relekang/prettier");
}
return { extends: extending };
},
createDependencyList: filename.includes(".js")
? (config) => {
const dependencies = ["eslint"];
if (config.prettier) {
dependencies.push("eslint-config-prettier");
dependencies.push("eslint-plugin-prettier");
dependencies.push("prettier");
}
return dependencies;
}
: undefined,
createNpmCommands: () => {
return {
lint: "eslint --cache .",
"lint:errors": "eslint --cache --quiet .",
format: "eslint --cache --quiet --fix .",
};
},
});
console.log("\n");
}
async function main() {
await test(".eslintrc.test");
await test(".eslintrc.test.js");
}
main().catch((error) => {
console.error(error);
process.exit(1);
});