/**
 * 适合任何命令用的常量放这里维护
 */
const path = require('path')
const fs = require('fs-extra')

// 文件夹
export const TEMP_DIR = 'temp' // 脚手架临时存放物料的文件夹

// 路径
export const TEMP_PATH = path.resolve(__dirname, `../${TEMP_DIR}`) // 脚手架临时存放物料的路径
// 保证
if (!fs.pathExistsSync(TEMP_PATH)) {
  fs.ensureDirSync(TEMP_PATH)
}

export const PROJECT_NODE_MODULES_PATH = path.resolve(process.cwd(), './node_modules') // 执行命令所在路径里的node_modules(一般指项目根目录下的)
export const PROJECT_PACKAGE_JSON_PATH = path.resolve(process.cwd(), './package.json') // 执行命令所在路径里的package.json(一般指项目根目录下的)

// 平台兼容
export const NPM = process.platform === 'win32'? 'npm.cmd' :'npm' // mac和win 上npm 执行命令不同

// 物料类型选择，给inquirer交互用
export const MATERIAL_TYPE = [
  {
    name: '模板',
    value: 1,
    alias: 'template'
  },
  {
    name: '组件',
    value: 2,
    alias: 'component'
  }
]

export default {
  TEMP_DIR,
  TEMP_PATH,
  PROJECT_NODE_MODULES_PATH,
  PROJECT_PACKAGE_JSON_PATH,
  NPM,
  MATERIAL_TYPE
}
