igir
Version:
🕹 A zero-setup ROM collection manager that sorts, filters, extracts or archives, patches, and reports on collections of any size on any OS.
56 lines (55 loc) • 2.73 kB
JavaScript
import chalk from "chalk";
import isUnicodeSupported from "is-unicode-supported";
import IntlUtil from "../utils/intlUtil.js";
const IS_UNICODE_SUPPORTED = isUnicodeSupported();
const ProgressBarSymbol = {
NONE: { symbol: "", color: chalk.reset },
WAITING: { symbol: IS_UNICODE_SUPPORTED ? "\u22EF" : "\u2026", color: chalk.grey },
DONE: { symbol: IS_UNICODE_SUPPORTED ? "\u2713" : "\u221A", color: chalk.green },
// Files
FILE_SCANNING: { symbol: IS_UNICODE_SUPPORTED ? "\u21BB" : "\u25CB", color: chalk.magenta },
DAT_DOWNLOADING: { symbol: "\u2193", color: chalk.magenta },
DAT_PARSING: { symbol: "\u03A3", color: chalk.magenta },
ROM_HASHING: { symbol: "#", color: chalk.magenta },
ROM_HEADER_DETECTION: { symbol: "^", color: chalk.magenta },
ROM_TRIMMING_DETECTION: { symbol: IS_UNICODE_SUPPORTED ? "\u2335" : "v", color: chalk.magenta },
ROM_INDEXING: { symbol: "\u2666", color: chalk.magenta },
PATCH_PARSING: { symbol: IS_UNICODE_SUPPORTED ? "\u2119" : "P", color: chalk.magenta },
// Processing a single DAT
DAT_GROUPING_SIMILAR: { symbol: "\u2229", color: chalk.cyan },
DAT_MERGE_SPLIT: { symbol: "\u2194", color: chalk.cyan },
DAT_FILTERING: { symbol: "\u2206", color: chalk.cyan },
DAT_PREFERRING: { symbol: IS_UNICODE_SUPPORTED ? "\u21C5" : "\u21A8", color: chalk.cyan },
// Candidates generation
CANDIDATE_GENERATING: { symbol: "\u03A3", color: chalk.cyan },
CANDIDATE_PATCHING: { symbol: IS_UNICODE_SUPPORTED ? "\u2119" : "P", color: chalk.cyan },
CANDIDATE_EXTENSION_CORRECTION: { symbol: ".", color: chalk.cyan },
CANDIDATE_HASHING: { symbol: "#", color: chalk.cyan },
CANDIDATE_VALIDATING: { symbol: IS_UNICODE_SUPPORTED ? "\u225F" : "?", color: chalk.cyan },
CANDIDATE_COMBINING: { symbol: IS_UNICODE_SUPPORTED ? "\u222A" : "U", color: chalk.cyan },
// Candidate writing
TESTING: { symbol: IS_UNICODE_SUPPORTED ? "\u225F" : "?", color: chalk.yellow },
WRITING: { symbol: IS_UNICODE_SUPPORTED ? "\u270E" : "\xBB", color: chalk.yellow },
RECYCLING: { symbol: IS_UNICODE_SUPPORTED ? "\u267B" : "\xBB", color: chalk.blue },
DELETING: { symbol: IS_UNICODE_SUPPORTED ? "\u2715" : "X", color: chalk.red }
};
class ProgressBar {
/**
* Call the `done()` method with a completion message that indicates how many items were
* processed.
*/
finishWithItems(count, noun, verb) {
let pluralSuffix = "s";
if (noun.toLowerCase().endsWith("ch") || noun.toLowerCase().endsWith("s")) {
pluralSuffix = "es";
}
this.finish(
`${IntlUtil.toLocaleString(count)} ${noun.trim()}${count === 1 ? "" : pluralSuffix} ${verb}`
);
}
}
export {
ProgressBarSymbol,
ProgressBar as default
};
//# sourceMappingURL=progressBar.js.map