| '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 | |
| } |