| 'use strict' |
| |
| const u = require('universalify').fromCallback |
| const fs = require('graceful-fs') |
| const path = require('path') |
| const mkdir = require('../mkdirs') |
| const pathExists = require('../path-exists').pathExists |
| |
| function outputFile (file, data, encoding, callback) { |
| if (typeof encoding === 'function') { |
| callback = encoding |
| encoding = 'utf8' |
| } |
| |
| const dir = path.dirname(file) |
| pathExists(dir, (err, itDoes) => { |
| if (err) return callback(err) |
| if (itDoes) return fs.writeFile(file, data, encoding, callback) |
| |
| mkdir.mkdirs(dir, err => { |
| if (err) return callback(err) |
| |
| fs.writeFile(file, data, encoding, callback) |
| }) |
| }) |
| } |
| |
| function outputFileSync (file, ...args) { |
| const dir = path.dirname(file) |
| if (fs.existsSync(dir)) { |
| return fs.writeFileSync(file, ...args) |
| } |
| mkdir.mkdirsSync(dir) |
| fs.writeFileSync(file, ...args) |
| } |
| |
| module.exports = { |
| outputFile: u(outputFile), |
| outputFileSync |
| } |