| 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; |  | } | 
 |