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.
73 lines
1.8 KiB
73 lines
1.8 KiB
'use strict' |
|
|
|
import { notStrictEqual, strictEqual } from 'assert' |
|
import cliui from 'cliui' |
|
import escalade from 'escalade/sync' |
|
import { inspect } from 'util' |
|
import { readFileSync } from 'fs' |
|
import { fileURLToPath } from 'url'; |
|
import Parser from 'yargs-parser' |
|
import { basename, dirname, extname, relative, resolve } from 'path' |
|
import { getProcessArgvBin } from '../../build/lib/utils/process-argv.js' |
|
import { YError } from '../../build/lib/yerror.js' |
|
import y18n from 'y18n' |
|
|
|
const REQUIRE_ERROR = 'require is not supported by ESM' |
|
const REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM' |
|
|
|
let __dirname; |
|
try { |
|
__dirname = fileURLToPath(import.meta.url); |
|
} catch (e) { |
|
__dirname = process.cwd(); |
|
} |
|
const mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules')); |
|
|
|
export default { |
|
assert: { |
|
notStrictEqual, |
|
strictEqual |
|
}, |
|
cliui, |
|
findUp: escalade, |
|
getEnv: (key) => { |
|
return process.env[key] |
|
}, |
|
inspect, |
|
getCallerFile: () => { |
|
throw new YError(REQUIRE_DIRECTORY_ERROR) |
|
}, |
|
getProcessArgvBin, |
|
mainFilename: mainFilename || process.cwd(), |
|
Parser, |
|
path: { |
|
basename, |
|
dirname, |
|
extname, |
|
relative, |
|
resolve |
|
}, |
|
process: { |
|
argv: () => process.argv, |
|
cwd: process.cwd, |
|
emitWarning: (warning, type) => process.emitWarning(warning, type), |
|
execPath: () => process.execPath, |
|
exit: process.exit, |
|
nextTick: process.nextTick, |
|
stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null |
|
}, |
|
readFileSync, |
|
require: () => { |
|
throw new YError(REQUIRE_ERROR) |
|
}, |
|
requireDirectory: () => { |
|
throw new YError(REQUIRE_DIRECTORY_ERROR) |
|
}, |
|
stringWidth: (str) => { |
|
return [...str].length |
|
}, |
|
y18n: y18n({ |
|
directory: resolve(__dirname, '../../../locales'), |
|
updateFiles: false |
|
}) |
|
}
|
|
|