leonardofaria/leozera-ui

View on GitHub
scripts/copyBuildFiles.js

Summary

Maintainability
A
1 hr
Test Coverage
const path = require('path')
const fse = require('fs-extra')

const files = [
  'README.md',
]

Promise.all(
  files.map((file) => copyFile(file))
)
.then(() => createPackageFile())

function copyFile(file) {
  const libPath = resolveBuildPath(file)
  return new Promise((resolve) => {
    fse.copy(
      file,
      libPath,
      (err) => {
        if (err) throw err
        resolve()
      }
    )
  })
  .then(() => console.log(`Copied ${file} to ${libPath}`)) // eslint-disable-line
}

function resolveBuildPath(file) {
  return path.resolve(__dirname, '../dist/', path.basename(file))
}

function createPackageFile() {
  return new Promise((resolve) => {
    fse.readFile(path.resolve(__dirname, '../package.json'), 'utf8', (err, data) => {
      if (err) {
        throw err
      }

      resolve(data)
    })
  })
  .then((data) => JSON.parse(data))
  .then((packageData) => {
    const {
      author,
      version,
      description,
      keywords,
      repository,
      license,
      bugs,
      homepage,
      peerDependencies,
      dependencies,
    } = packageData

    const minimalPackage = {
      name: 'leozera-ui',
      author,
      version,
      description,
      main: 'index.js',
      keywords,
      repository,
      license,
      bugs,
      homepage,
      peerDependencies,
      dependencies,
    }

    return new Promise((resolve) => {
      const libPath = path.resolve(__dirname, '../dist/package.json')
      const data = JSON.stringify(minimalPackage, null, 2)
      fse.writeFile(libPath, data, (err) => {
        if (err) throw (err)
        console.log(`Created package.json in ${libPath}`) // eslint-disable-line
        resolve()
      })
    })
  })
}