5const spinners = require("./spinners.json");
6const fs = require("fs");
7const path = require("path");
9const specsFile = path.resolve(__filename, "../../src/Spin/Specs.hs");
11const entries = Object.entries(spinners);
14 "-- | This module contains specs for a number of default spinning indicators.",
15 "-- This file has been auto-generated using scripts/codegen. The specs",
16 "-- themselves have been copied from github.com/sindresorhus/cli-spinners.",
18 ...(entries.length > 0
20 ` ( ${entries[0][0]}Spec`,
21 ...entries.slice(1).map(([name]) => ` , ${name}Spec`)
28 ...entries.flatMap(([name, { interval, frames }]) => [
29 `-- | Spec for ${name} spinning indicator:`,
30 ...frames.map(frame => `-- ${frame}`),
31 `${name}Spec :: Spec`,
33 ` { specName = ${JSON.stringify(name)}`,
34 ` , specInterval = ${String(interval)}`,
38 ` [ ${JSON.stringify(frames[0])}`,
41 .map((frame, i) => ` , ${JSON.stringify(frame)}`),
44 : [" , specFrames = []"]),
50fs.writeFileSync(specsFile, lines.join("\n"));
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list