deno.land / x / docx@8.5.0 / demo / index.ts

نووسراو ببینە
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
/* eslint-disable no-console */import fs from "fs";import path from "path";import inquirer from "inquirer";import { $ } from "execa";
export type Answers = { readonly type: "list" | "number"; readonly demoNumber?: number; readonly demoFile?: number;};
const dir = "./demo";const fileNames = fs.readdirSync(dir);
const keys = fileNames.map((f) => path.parse(f).name);const getFileNumber = (file: string): number => { const [firstPart] = file.split("-");
return Number(firstPart);};
const demoFiles = keys.filter((file) => !isNaN(getFileNumber(file))).sort((a, b) => getFileNumber(a) - getFileNumber(b));
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: demoFiles, filter: (input) => parseInt(input.split("-")[0], 10), when: (a) => a.type === "list", }, { type: "number", name: "demoNumber", message: "What demo do you wish to run? (Enter a number)", default: 1, when: (a) => a.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]}`); const { stdout } = await $`tsx ${filePath}`; console.log(stdout); console.log("Successfully created document!");}
docx

Version Info

Tagged at
4 months ago