Add filtering and ordering to list of demos

This commit is contained in:
Dolan Miu
2023-06-14 03:44:46 +01:00
parent 6288bb0701
commit 9aba21e64c

View File

@ -14,6 +14,14 @@ const dir = "./demo";
const fileNames = fs.readdirSync(dir); const fileNames = fs.readdirSync(dir);
const keys = fileNames.map((f) => path.parse(f).name); const keys = fileNames.map((f) => path.parse(f).name);
const getFileNumber = (file: string): number => {
const nameParts = file.split("-");
const firstPart = nameParts[0];
return Number(firstPart);
};
const demoFiles = keys.filter((file) => !isNaN(getFileNumber(file))).sort((a, b) => getFileNumber(a) - getFileNumber(b));
const answers = await inquirer.prompt<Answers>([ const answers = await inquirer.prompt<Answers>([
{ {
@ -26,7 +34,7 @@ const answers = await inquirer.prompt<Answers>([
type: "list", type: "list",
name: "demoFile", name: "demoFile",
message: "What demo do you wish to run?", message: "What demo do you wish to run?",
choices: keys, choices: demoFiles,
filter: (input) => parseInt(input.split("-")[0]), filter: (input) => parseInt(input.split("-")[0]),
when: (answers) => answers.type === "list", when: (answers) => answers.type === "list",
}, },