UNPKG

@frontitude/cli

Version:

The Frontitude CLI enables product teams to integrate their code with Frontitude (frontitude.com), thus creating a single source of truth for their product copy, from design to development.

1 lines 1.02 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Loader=void 0;const tslib_1=require("tslib"),ora_1=tslib_1.__importDefault(require("ora")),logger=tslib_1.__importStar(require("../../common/logger")),patchOraClearFunction=e=>{e.clear=function(){if(!e.isEnabled||!e.stream.isTTY)return e;e.stream.cursorTo(0);for(let s=0;s<e.linesToClear;s++)s>0&&e.stream.moveCursor(0,-1),e.stream.clearLine(1);return(e.indent||e.lastIndent!==e.indent)&&e.stream.cursorTo(e.indent),e.lastIndent=e.indent,e.linesToClear=0,e}.bind(e)};class Loader{constructor(e,s,r){this.loadingMessage=e,this.successMessage=s,this.failMessage=r,this.loader=(0,ora_1.default)(),patchOraClearFunction(this.loader)}start(){this.loader.start(this.loadingMessage)}succeed(){this.loader.succeed(this.successMessage)}updateSuccessMessage(e){this.successMessage=e}fail(){try{this.loader.fail(this.failMessage)}catch(e){logger.error(e,{message:"[NOT-USER-BLOCKING] error while setting loader to failed state"})}}}exports.Loader=Loader;