feat(generator): add challenge number automatically

This commit is contained in:
thomas
2023-09-22 21:52:18 +02:00
parent 40d7a8d960
commit e6c6e4d351
4 changed files with 21 additions and 13 deletions

3
challenge-number.json Normal file
View File

@@ -0,0 +1,3 @@
{
"total": 35
}

View File

@@ -3,7 +3,14 @@ import {
E2eTestRunner,
UnitTestRunner,
} from '@nx/angular/generators';
import { formatFiles, generateFiles, names, Tree } from '@nx/devkit';
import {
formatFiles,
generateFiles,
names,
readJsonFile,
Tree,
updateJson,
} from '@nx/devkit';
import { Linter } from '@nx/linter';
import { join } from 'path';
import { getProjectDir } from '../../utils/normalize';
@@ -12,6 +19,9 @@ import { Schema } from './schema';
export async function appGenerator(tree: Tree, options: Schema) {
const { appDirectory } = getProjectDir(options.name, options.directory);
const challengeNumberPath = 'challenge-number.json';
const challengeNumber = readJsonFile(challengeNumberPath).total;
await applicationGenerator(tree, {
...options,
style: 'scss',
@@ -36,7 +46,7 @@ export async function appGenerator(tree: Tree, options: Schema) {
tmpl: '',
projectName: names(options.name).name,
title: options.title,
challengeNumber: options.challengeNumber,
challengeNumber,
docRepository: options.docRepository,
});
@@ -48,7 +58,7 @@ export async function appGenerator(tree: Tree, options: Schema) {
tmpl: '',
projectName: names(options.name).name,
title: options.title,
challengeNumber: options.challengeNumber,
challengeNumber,
difficulty: options.challengeDifficulty,
}
);
@@ -59,6 +69,11 @@ export async function appGenerator(tree: Tree, options: Schema) {
});
}
updateJson(tree, challengeNumberPath, (json) => {
json.total = json.total + 1;
return json;
});
await formatFiles(tree);
}

View File

@@ -1,6 +1,5 @@
export interface Schema {
title: string;
challengeNumber: number;
challengeDifficulty: string;
docRepository: string;
name: string;

View File

@@ -25,15 +25,6 @@
},
"x-priority": "important"
},
"challengeNumber": {
"description": "The number of your challenge.",
"type": "number",
"$default": {
"$source": "argv",
"index": 2
},
"x-priority": "important"
},
"challengeDifficulty": {
"description": "The difficulty of the challenge.",
"type": "string",