UNPKG

yargs

Version:

yargs the modern, pirate-themed, successor to optimist.

92 lines (87 loc) 2.12 kB
'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) => { // 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 }