text: 'use strict'
  
  const path = require('path')
  const fs = require('graceful-fs')
  const mkdir = require('../mkdirs')
  
  function createFile (file, callback) {
    function makeFile () {
      fs.writeFile(file, '', err => {
        if (err) return callback(err)
        callback()
      })
    }
  
    fs.exists(file, fileExists => {
      if (fileExists) return callback()
      const dir = path.dirname(file)
      fs.exists(dir, dirExists => {
        if (dirExists) return makeFile()
        mkdir.mkdirs(dir, err => {
          if (err) return callback(err)
          makeFile()
        })
      })
    })
  }
  
  function createFileSync (file) {
    if (fs.existsSync(file)) return
  
    const dir = path.dirname(file)
    if (!fs.existsSync(dir)) {
      mkdir.mkdirsSync(dir)
    }
  
    fs.writeFileSync(file, '')
  }
  
  module.exports = {
    createFile,
    createFileSync,
    // alias
    ensureFile: createFile,
    ensureFileSync: createFileSync
  }
  