// 遍历所有js文件
const path = require('path')
const fs = require('fs')

const entryPath = path.resolve(__dirname, '../src')

const transform = dir => {
  let dirs = fs.readdirSync(dir)
  dirs.forEach(item => {
    let file = path.join(dir, item)
    if (fs.statSync(file).isDirectory()) {
      transform(file)
    } else if (/\.js$/.test(file)) {
      transformFile(file)
    }
  })
}

const transformFile = file => {
  console.log(file)
  let content = fs.readFileSync(file, 'utf-8')
  countCodeLines(content)
  // transformComments(file, content)
}

// 统计代码行数
let totalLines = 0
const countCodeLines = content => {
  totalLines += content.split(/\n/).length
}

// 转换注释类型
const transformComments = (file, content) => {
  console.log('当前转换文件:', file)
  content = content.replace(/\/\*\*[^/]+\*\//g, str => {
    let res = /@Desc:([^\n]+)\n/g.exec(str)
    if (res.length > 0) {
      return '// ' + res[1]
    }
  })
  fs.writeFileSync(file, content)
}

transform(entryPath)
transformFile(path.join(__dirname, '../index.js'))
console.log(totalLines)