Skip to content

Commit 3fcdecd

Browse files
authored
Merge pull request #85 from bertdeblock/minor-internal-improvements
Minor internal improvements
2 parents e0cb2fc + 114a633 commit 3fcdecd

File tree

4 files changed

+44
-37
lines changed

4 files changed

+44
-37
lines changed

eslint.config.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import eslint from "@eslint/js";
2-
import { defineConfig } from "eslint/config";
2+
import { defineConfig, globalIgnores } from "eslint/config";
33
import eslintPluginNode from "eslint-plugin-n";
44
import typescriptEslint from "typescript-eslint";
55

66
export default defineConfig(
7+
globalIgnores([
8+
"bin",
9+
"coverage",
10+
"dist",
11+
"templates",
12+
"test/output",
13+
"test/packages/**/*.cjs",
14+
]),
15+
716
eslint.configs.recommended,
817
typescriptEslint.configs.recommended,
918
eslintPluginNode.configs["flat/recommended-module"],
10-
{
11-
ignores: [
12-
"bin",
13-
"coverage",
14-
"dist",
15-
"templates",
16-
"test/output",
17-
"test/packages/**/*.cjs",
18-
],
19-
},
19+
2020
{
2121
files: ["**/*.ts"],
2222
rules: {

src/cli.ts

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ import {
55
// type CommandDef,
66
type SubCommandsDef,
77
} from "citty";
8-
import { GemberBugError, GemberError, logGemberErrors } from "./errors.js";
9-
import { generators } from "./generators/generators.js";
8+
import { GemberError, logGemberErrors } from "./errors.js";
9+
import {
10+
generators,
11+
getGenerator,
12+
getTestGenerator,
13+
} from "./generators/generators.js";
1014
import { readOwnPackageJsonSync } from "./internal.js";
1115
import { logger } from "./logger.js";
1216

@@ -56,15 +60,7 @@ export const main = defineCommand({
5660
let entityName: string | undefined;
5761

5862
for (const selectedGeneratorName of selectedGeneratorNames.sort()) {
59-
const selectedGenerator = generators.find(
60-
(generator) => generator.name === selectedGeneratorName,
61-
);
62-
63-
if (selectedGenerator === undefined) {
64-
throw new GemberBugError(
65-
`Could not find generator \`${selectedGeneratorName}\`.`,
66-
);
67-
}
63+
const selectedGenerator = getGenerator(selectedGeneratorName);
6864

6965
entityName = await logger.prompt(
7066
`Please provide a name for generator \`${selectedGenerator.name}\`:`,
@@ -132,18 +128,7 @@ function generatorCommands(deprecated?: boolean): SubCommandsDef {
132128
`You passed the \`--test\` option, but the \`${generator.name}\` generator is already a test generator.`,
133129
);
134130
} else if (generator.args.find((arg) => arg.name === "test")) {
135-
const testGeneratorName = `${generator.name}-test`;
136-
const testGenerator = generators.find(
137-
(g) => g.name === testGeneratorName,
138-
);
139-
140-
if (testGenerator) {
141-
await testGenerator.run(context.args);
142-
} else {
143-
throw new GemberBugError(
144-
`Could not find generator \`${testGeneratorName}\`.`,
145-
);
146-
}
131+
await getTestGenerator(generator.name).run(context.args);
147132
} else {
148133
logger.warn(
149134
`You passed the \`--test\` option, but the \`${generator.name}\` generator does not have a corresponding test generator.`,

src/generators/generator.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,16 @@ export function defineTestGenerator(
259259
);
260260
}
261261

262-
targetFile.name += "-test";
262+
targetFile.name = testGeneratorName(targetFile.name);
263263
},
264-
name: `${options.name}-test`,
264+
name: testGeneratorName(options.name),
265265
});
266266
}
267267

268+
export function testGeneratorName(generatorName: string): string {
269+
return generatorName + "-test";
270+
}
271+
268272
export function classBased({
269273
functionBasedName = "function-based",
270274
}: { functionBasedName?: string } = {}): GeneratorArgFactory {
@@ -351,7 +355,7 @@ export function path(): GeneratorArgFactory {
351355

352356
export function test(): GeneratorArgFactory {
353357
return (generatorName) => ({
354-
description: `Generate a corresponding ${generatorName}-test`,
358+
description: `Generate a corresponding ${testGeneratorName(generatorName)}`,
355359
name: "test",
356360
type: "boolean",
357361
});

src/generators/generators.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
import { GemberBugError } from "../errors.js";
12
import {
23
classBased,
34
defineGenerator,
45
defineTestGenerator,
56
nested,
67
test,
8+
testGeneratorName,
79
typescript,
810
type Generator,
911
} from "./generator.js";
@@ -68,3 +70,19 @@ export const generators: Generator[] = [
6870
testsSubDir: "",
6971
}),
7072
];
73+
74+
export function getGenerator(generatorName: string): Generator {
75+
const generator = generators.find(
76+
(generator) => generator.name === generatorName,
77+
);
78+
79+
if (generator === undefined) {
80+
throw new GemberBugError(`Could not find generator \`${generatorName}\`.`);
81+
}
82+
83+
return generator;
84+
}
85+
86+
export function getTestGenerator(generatorName: string): Generator {
87+
return getGenerator(testGeneratorName(generatorName));
88+
}

0 commit comments

Comments
 (0)