index.js 826 B

1234567891011121314151617181920212223242526272829303132333435
  1. var path = require('path')
  2. var fs = require('graceful-fs')
  3. var mkdir = require('../mkdirs')
  4. function outputFile (file, data, encoding, callback) {
  5. if (typeof encoding === 'function') {
  6. callback = encoding
  7. encoding = 'utf8'
  8. }
  9. var dir = path.dirname(file)
  10. fs.exists(dir, function (itDoes) {
  11. if (itDoes) return fs.writeFile(file, data, encoding, callback)
  12. mkdir.mkdirs(dir, function (err) {
  13. if (err) return callback(err)
  14. fs.writeFile(file, data, encoding, callback)
  15. })
  16. })
  17. }
  18. function outputFileSync (file, data, encoding) {
  19. var dir = path.dirname(file)
  20. if (fs.existsSync(dir)) {
  21. return fs.writeFileSync.apply(fs, arguments)
  22. }
  23. mkdir.mkdirsSync(dir)
  24. fs.writeFileSync.apply(fs, arguments)
  25. }
  26. module.exports = {
  27. outputFile: outputFile,
  28. outputFileSync: outputFileSync
  29. }