12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- '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()
- })
- }
-
- fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err
- if (!err && stats.isFile()) 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) {
- let stats
- try {
- stats = fs.statSync(file)
- } catch (e) {}
- if (stats && stats.isFile()) return
-
- const dir = path.dirname(file)
- if (!fs.existsSync(dir)) {
- mkdir.mkdirsSync(dir)
- }
-
- fs.writeFileSync(file, '')
- }
-
- module.exports = {
- createFile: u(createFile),
- createFileSync
- }
|