frame() {
        const text = this.tasks
            .filter(task => task.isPending())
            .map(this.buildText.bind(this)).join(' | ');

        if (text && text !== this.previousFrame && !this.spinner.paused) {
            this.spinner.start(text);
            this.previousFrame = text;
        }
    }
Renders a frame of output. Updates spinner text