UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.44 kB
export class Progress{setTotalWork(e){}setTitle(e){}setWorked(e,t){}incrementWorked(e){}done(){}isCanceled(){return!1}}export class CompositeProgress{parent;#e;#t;constructor(e){this.parent=e,this.#e=[],this.#t=0,this.parent.setTotalWork(1),this.parent.setWorked(0)}childDone(){++this.#t===this.#e.length&&this.parent.done()}createSubProgress(e){const t=new SubProgress(this,e);return this.#e.push(t),t}update(){let e=0,t=0;for(let s=0;s<this.#e.length;++s){const o=this.#e[s];o.getTotalWork()&&(t+=o.getWeight()*o.getWorked()/o.getTotalWork()),e+=o.getWeight()}this.parent.setWorked(t/e)}}export class SubProgress{#s;#o;#r;#i;constructor(e,t){this.#s=e,this.#o=t||1,this.#r=0,this.#i=0}isCanceled(){return this.#s.parent.isCanceled()}setTitle(e){this.#s.parent.setTitle(e)}done(){this.setWorked(this.#i),this.#s.childDone()}setTotalWork(e){this.#i=e,this.#s.update()}setWorked(e,t){this.#r=e,void 0!==t&&this.setTitle(t),this.#s.update()}incrementWorked(e){this.setWorked(this.#r+(e||1))}getWeight(){return this.#o}getWorked(){return this.#r}getTotalWork(){return this.#i}}export class ProgressProxy{#h;#l;constructor(e,t){this.#h=e,this.#l=t}isCanceled(){return!!this.#h&&this.#h.isCanceled()}setTitle(e){this.#h&&this.#h.setTitle(e)}done(){this.#h&&this.#h.done(),this.#l&&this.#l()}setTotalWork(e){this.#h&&this.#h.setTotalWork(e)}setWorked(e,t){this.#h&&this.#h.setWorked(e,t)}incrementWorked(e){this.#h&&this.#h.incrementWorked(e)}}