quasar

Форк
0
55 строк · 1.3 Кб
1
const
2
  fs = require('fs'),
3
  path = require('path'),
4
  zlib = require('zlib'),
5
  { green, blue, red, cyan } = require('chalk')
6

7
function getSize (code) {
8
  return (code.length / 1024).toFixed(2) + 'kb'
9
}
10

11
module.exports.createFolder = function (folder) {
12
  const dir = path.join(__dirname, '..', folder)
13
  if (!fs.existsSync(dir)) {
14
    fs.mkdirSync(dir)
15
  }
16
}
17

18
module.exports.writeFile = function (dest, code, zip) {
19
  const banner = dest.indexOf('.json') > -1
20
    ? red('[json]')
21
    : dest.indexOf('.js') > -1
22
      ? green('[js]  ')
23
      : dest.indexOf('.ts') > -1
24
        ? cyan('[ts]  ')
25
        : blue('[css] ')
26

27
  return new Promise((resolve, reject) => {
28
    function report (extra) {
29
      console.log(`${banner} ${path.relative(process.cwd(), dest).padEnd(41)} ${getSize(code).padStart(8)}${extra || ''}`)
30
      resolve(code)
31
    }
32

33
    fs.writeFile(dest, code, err => {
34
      if (err) return reject(err)
35
      if (zip) {
36
        zlib.gzip(code, (err, zipped) => {
37
          if (err) return reject(err)
38
          report(` (gzipped: ${getSize(zipped).padStart(8)})`)
39
        })
40
      }
41
      else {
42
        report()
43
      }
44
    })
45
  })
46
}
47

48
module.exports.readFile = function (file) {
49
  return fs.readFileSync(file, 'utf-8')
50
}
51

52
module.exports.logError = function (err) {
53
  console.error('\n' + red('[Error]'), err)
54
  console.log()
55
}
56

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.