1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const tslib_1 = require("tslib");
|
4 | const Errors = tslib_1.__importStar(require("@oclif/errors"));
|
5 | const util = tslib_1.__importStar(require("util"));
|
6 | const base_1 = require("./action/base");
|
7 | exports.ActionBase = base_1.ActionBase;
|
8 | const config_1 = require("./config");
|
9 | exports.config = config_1.config;
|
10 | exports.Config = config_1.Config;
|
11 | const deps_1 = tslib_1.__importDefault(require("./deps"));
|
12 | const exit_1 = require("./exit");
|
13 | exports.ExitError = exit_1.ExitError;
|
14 | const Table = tslib_1.__importStar(require("./styled/table"));
|
15 | exports.Table = Table;
|
16 | exports.ux = {
|
17 | config: config_1.config,
|
18 | warn: Errors.warn,
|
19 | error: Errors.error,
|
20 | exit: Errors.exit,
|
21 | get prompt() {
|
22 | return deps_1.default.prompt.prompt;
|
23 | },
|
24 | |
25 |
|
26 |
|
27 | get anykey() {
|
28 | return deps_1.default.prompt.anykey;
|
29 | },
|
30 | get confirm() {
|
31 | return deps_1.default.prompt.confirm;
|
32 | },
|
33 | get action() {
|
34 | return config_1.config.action;
|
35 | },
|
36 | get prideAction() {
|
37 | return config_1.config.prideAction;
|
38 | },
|
39 | styledObject(obj, keys) {
|
40 | exports.ux.info(deps_1.default.styledObject(obj, keys));
|
41 | },
|
42 | get styledHeader() {
|
43 | return deps_1.default.styledHeader;
|
44 | },
|
45 | get styledJSON() {
|
46 | return deps_1.default.styledJSON;
|
47 | },
|
48 | get table() {
|
49 | return deps_1.default.table;
|
50 | },
|
51 | get tree() {
|
52 | return deps_1.default.tree;
|
53 | },
|
54 | get open() {
|
55 | return deps_1.default.open;
|
56 | },
|
57 | get wait() {
|
58 | return deps_1.default.wait;
|
59 | },
|
60 | get progress() {
|
61 | return deps_1.default.progress;
|
62 | },
|
63 | async done() {
|
64 | config_1.config.action.stop();
|
65 |
|
66 | },
|
67 | trace(format, ...args) {
|
68 | if (this.config.outputLevel === 'trace') {
|
69 | process.stdout.write(util.format(format, ...args) + '\n');
|
70 | }
|
71 | },
|
72 | debug(format, ...args) {
|
73 | if (['trace', 'debug'].includes(this.config.outputLevel)) {
|
74 | process.stdout.write(util.format(format, ...args) + '\n');
|
75 | }
|
76 | },
|
77 | info(format, ...args) {
|
78 | process.stdout.write(util.format(format, ...args) + '\n');
|
79 | },
|
80 | log(format, ...args) {
|
81 | this.info(format || '', ...args);
|
82 | },
|
83 | url(text, uri, params = {}) {
|
84 | const supports = require('supports-hyperlinks');
|
85 | if (supports.stdout) {
|
86 | const hyperlinker = require('hyperlinker');
|
87 | this.log(hyperlinker(text, uri, params));
|
88 | }
|
89 | else {
|
90 | this.log(uri);
|
91 | }
|
92 | },
|
93 | annotation(text, annotation) {
|
94 | const supports = require('supports-hyperlinks');
|
95 | if (supports.stdout) {
|
96 |
|
97 | this.log(`\u001B]1337;AddAnnotation=${text.length}|${annotation}\u0007${text}`);
|
98 | }
|
99 | else {
|
100 | this.log(text);
|
101 | }
|
102 | },
|
103 | async flush() {
|
104 | function timeout(p, ms) {
|
105 | function wait(ms, unref = false) {
|
106 | return new Promise(resolve => {
|
107 | const t = setTimeout(() => resolve(), ms);
|
108 | if (unref)
|
109 | t.unref();
|
110 | });
|
111 | }
|
112 | return Promise.race([p, wait(ms, true).then(() => exports.ux.error('timed out'))]);
|
113 | }
|
114 | async function flush() {
|
115 | const p = new Promise(resolve => process.stdout.once('drain', () => resolve()));
|
116 | process.stdout.write('');
|
117 | return p;
|
118 | }
|
119 | await timeout(flush(), 10000);
|
120 | },
|
121 | };
|
122 | exports.default = exports.ux;
|
123 | exports.cli = exports.ux;
|
124 | const cliuxProcessExitHandler = async () => {
|
125 | try {
|
126 | await exports.ux.done();
|
127 | }
|
128 | catch (error) {
|
129 |
|
130 | console.error(error);
|
131 | process.exitCode = 1;
|
132 | }
|
133 | };
|
134 |
|
135 |
|
136 | const cliuxListener = process.listeners('exit').find(fn => fn.name === cliuxProcessExitHandler.name);
|
137 | if (!cliuxListener) {
|
138 | process.once('exit', cliuxProcessExitHandler);
|
139 | }
|