执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
'use strict';
const figures = require('figures');
const cliCursor = require('cli-cursor');
const utils = require('./lib/utils');
 
const renderHelper = (task, event, options) => {
    const log = utils.log.bind(undefined, options);
 
    if (event.type === 'STATE') {
        const message = task.isPending() ? 'started' : task.state;
 
        log(`${task.title} [${message}]`);
 
        if (task.isSkipped() && task.output) {
            log(`${figures.arrowRight} ${task.output}`);
        }
    } else if (event.type === 'DATA') {
        log(`${figures.arrowRight} ${event.data}`);
    } else if (event.type === 'TITLE') {
        log(`${task.title} [title changed]`);
    }
};
 
const render = (tasks, options) => {
    for (const task of tasks) {
        task.subscribe(
            event => {
                if (event.type === 'SUBTASKS') {
                    render(task.subtasks, options);
                    return;
                }
 
                renderHelper(task, event, options);
            },
            err => {
                console.log(err);
            }
        );
    }
};
 
class VerboseRenderer {
    constructor(tasks, options) {
        this._tasks = tasks;
        this._options = Object.assign({
            dateFormat: 'HH:mm:ss'
        }, options);
    }
 
    static get nonTTY() {
        return true;
    }
 
    render() {
        cliCursor.hide();
        render(this._tasks, this._options);
    }
 
    end() {
        cliCursor.show();
    }
}
 
module.exports = VerboseRenderer;