UNPKG

tokyo-3

Version:

Worlds Best Pomodoro. 3rd Impact Imminent. Switching to Auxillary Power.

90 lines (89 loc) 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("."); const colors_1 = require("./colors"); const endings_1 = require("./endings"); const cfonts = require("cfonts"); const countdown = (argv) => { let timer = { minutes: 0, seconds: 0, }; const startingTime = () => { if (argv.t) { timer = { minutes: 0, seconds: 1, }; } else if (argv.m) { timer = { minutes: argv.m - 1, seconds: 59, }; } else { timer = { minutes: 14, seconds: 59, }; } }; startingTime(); const RemainingTime = (timer, argv) => { timer.seconds = timer.seconds - 1; if (timer.seconds === 0) { if (timer.minutes < 1 && timer.seconds === 0) { //--need this timeout to allow for user to see clock hit ~ 00:00:xx let last = setTimeout(() => { //---clear initial timers clearInterval(remaining); clearInterval(renderClock); (0, endings_1.endingAnimationCall)(argv); clearTimeout(last); }, 1000); last; } else { timer.minutes = timer.minutes - 1; timer.seconds = 59; } } }; /*-------------------Clock & Animations------------------------*/ const colors = (0, colors_1.colorChoice)(argv); const colorRender = (timer, colors) => { console.clear(); cfonts.say(` ${timer.minutes < 10 ? timer.minutes < 1 ? "00" : "0" + timer.minutes : timer.minutes} : ${timer.seconds < 10 ? "0" + timer.seconds : timer.seconds} : ${new Date().getMilliseconds()} `, { font: "block", align: "left", colors: [`${colors.main}`, `${colors.accent}`], background: "transparent", letterSpacing: 0, lineHeight: 1, space: true, maxLength: "80", gradient: false, independentGradient: false, transitionGradient: false, env: "node", }); }; //interval that maintains clock accuracy const remaining = setInterval(() => { RemainingTime(timer, argv); }, 1000); //interval for rendering to screen const renderClock = setInterval(() => { colorRender(timer, colors); }, colors.speed); //hides cursor _1.rl.write("\u001B[?25l"); remaining; renderClock; }; exports.default = countdown;