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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
| 'use strict';
|
| import cliui from 'https://unpkg.com/cliui@7.0.1/index.mjs'; // eslint-disable-line
| import Parser from 'https://unpkg.com/yargs-parser@19.0.0/browser.js'; // eslint-disable-line
| import {getProcessArgvBin} from '../../build/lib/utils/process-argv.js';
| import {YError} from '../../build/lib/yerror.js';
|
| const REQUIRE_ERROR = 'require is not supported in browser';
| const REQUIRE_DIRECTORY_ERROR =
| 'loading a directory of commands is not supported in browser';
|
| export default {
| assert: {
| notStrictEqual: (a, b) => {
| // noop.
| },
| strictEqual: (a, b) => {
| // noop.
| },
| },
| cliui,
| findUp: () => undefined,
| getEnv: key => {
| // There is no environment in browser:
| return undefined;
| },
| inspect: console.log,
| getCallerFile: () => {
| throw new YError(REQUIRE_DIRECTORY_ERROR);
| },
| getProcessArgvBin,
| mainFilename: 'yargs',
| Parser,
| path: {
| basename: str => str,
| dirname: str => str,
| extname: str => str,
| relative: str => str,
| },
| process: {
| argv: () => [],
| cwd: () => '',
| execPath: () => '',
| // exit is noop browser:
| exit: () => {},
| nextTick: cb => {
| window.setTimeout(cb, 1);
| },
| stdColumns: 80,
| },
| readFileSync: () => {
| return '';
| },
| require: () => {
| throw new YError(REQUIRE_ERROR);
| },
| requireDirectory: () => {
| throw new YError(REQUIRE_DIRECTORY_ERROR);
| },
| stringWidth: str => {
| return [...str].length;
| },
| // TODO: replace this with y18n once it's ported to ESM:
| y18n: {
| __: (...str) => {
| if (str.length === 0) return '';
| const args = str.slice(1);
| return sprintf(str[0], ...args);
| },
| __n: (str1, str2, count, ...args) => {
| if (count === 1) {
| return sprintf(str1, ...args);
| } else {
| return sprintf(str2, ...args);
| }
| },
| getLocale: () => {
| return 'en_US';
| },
| setLocale: () => {},
| updateLocale: () => {},
| },
| };
|
| function sprintf(_str, ...args) {
| let str = '';
| const split = _str.split('%s');
| split.forEach((token, i) => {
| str += `${token}${split[i + 1] !== undefined && args[i] ? args[i] : ''}`;
| });
| return str;
| }
|
|