Files
docx-js/demo/index.ts
Dolan Miu 09ab91eeef Fix tests and build
Remove unused code and dependencies
2023-06-08 13:30:31 +01:00

54 lines
1.5 KiB
TypeScript

/* eslint-disable no-console */
import fs from "fs";
import path from "path";
import inquirer from "inquirer";
import { $ } from "execa";
export type Answers = {
type: "list" | "number";
demoNumber?: number;
demoFile?: number;
};
const dir = "./demo";
const fileNames = fs.readdirSync(dir);
const keys = fileNames.map((f) => path.parse(f).name);
const answers = await inquirer.prompt<Answers>([
{
type: "list",
name: "type",
message: "Select demo from a list or via number",
choices: ["list", "number"],
},
{
type: "list",
name: "demoFile",
message: "What demo do you wish to run?",
choices: keys,
filter: (input) => parseInt(input.split("-")[0]),
when: (answers) => answers.type === "list",
},
{
type: "number",
name: "demoNumber",
message: "What demo do you wish to run? (Enter a number)",
default: 1,
when: (answers) => answers.type === "number",
},
]);
const demoNumber = answers.demoNumber ?? answers.demoFile ?? 1;
const files = fs.readdirSync(dir).filter((fn) => fn.startsWith(demoNumber.toString()));
if (files.length === 0) {
console.error(`demo number ${demoNumber} does not exist`);
} else {
const filePath = path.join(dir, files[0]);
console.log(`Running demo ${demoNumber}: ${files[0]}`);
await $`ts-node --project demo/tsconfig.json ${filePath}`;
console.log("Successfully created document!");
}