You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.1 KiB
92 lines
2.1 KiB
'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; |
|
}
|
|
|