|
|
|
|
|
'use strict'; |
|
|
|
|
|
import cliui from 'https://unpkg.com/cliui@7.0.1/index.mjs'; |
|
|
import Parser from 'https://unpkg.com/yargs-parser@19.0.0/browser.js'; |
|
|
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) => { |
|
|
|
|
|
}, |
|
|
strictEqual: (a, b) => { |
|
|
|
|
|
}, |
|
|
}, |
|
|
cliui, |
|
|
findUp: () => undefined, |
|
|
getEnv: key => { |
|
|
|
|
|
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: () => {}, |
|
|
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; |
|
|
}, |
|
|
|
|
|
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; |
|
|
} |
|
|
|