68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict'
 | 
						|
 | 
						|
import { notStrictEqual, strictEqual } from 'assert'
 | 
						|
import cliui from 'cliui'
 | 
						|
import escalade from 'escalade/sync'
 | 
						|
import { format, 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'
 | 
						|
 | 
						|
const mainFilename = fileURLToPath(import.meta.url).split('node_modules')[0]
 | 
						|
const __dirname = fileURLToPath(import.meta.url)
 | 
						|
 | 
						|
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,
 | 
						|
    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
 | 
						|
  })
 | 
						|
}
 |