'use strict' const u = require('universalify').fromCallback const path = require('path') const fs = require('graceful-fs') const mkdir = require('../mkdirs') const pathExists = require('../path-exists').pathExists function createFile (file, callback) { function makeFile () { fs.writeFile(file, '', err => { if (err) return callback(err) callback() }) } pathExists(file, (err, fileExists) => { if (err) return callback(err) if (fileExists) return callback() const dir = path.dirname(file) pathExists(dir, (err, dirExists) => { if (err) return callback(err) 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: u(createFile), createFileSync }