2 * write <https://github.com/jonschlinkert/write>
4 * Copyright (c) 2014-2015, Jon Schlinkert.
5 * Licensed under the MIT License.
10 var fs = require('fs');
11 var path = require('path');
12 var mkdir = require('mkdirp');
15 * Asynchronously write a file to disk. Creates any intermediate
16 * directories if they don't already exist.
19 * var writeFile = require('write');
20 * writeFile('foo.txt', 'This is content to write.', function(err) {
21 * if (err) console.log(err);
26 * @param {String} `dest` Destination file path
27 * @param {String} `str` String to write to disk.
28 * @param {Function} `callback`
32 module.exports = function writeFile(dest, str, cb) {
33 var dir = path.dirname(dest);
34 fs.exists(dir, function (exists) {
36 fs.writeFile(dest, str, cb);
38 mkdir(dir, function (err) {
42 fs.writeFile(dest, str, cb);
50 * Synchronously write files to disk. Creates any intermediate
51 * directories if they don't already exist.
54 * var writeFile = require('write');
55 * writeFile.sync('foo.txt', 'This is content to write.');
58 * @name writeFile.sync
59 * @param {String} `dest` Destination file path
60 * @param {String} `str` String to write to disk.
64 module.exports.sync = function writeFileSync(dest, str) {
65 var dir = path.dirname(dest);
66 if (!fs.existsSync(dir)) {
69 fs.writeFileSync(dest, str);
73 * Uses `fs.createWriteStream`, but also creates any intermediate
74 * directories if they don't already exist.
77 * var write = require('write');
78 * write.stream('foo.txt');
81 * @name writeFile.stream
82 * @param {String} `dest` Destination file path
83 * @return {Stream} Returns a write stream.
87 module.exports.stream = function writeFileStream(dest) {
88 var dir = path.dirname(dest);
89 if (!fs.existsSync(dir)) {
92 return fs.createWriteStream(dest);