Every new change
This commit is contained in:
160
node_modules/write/index.js
generated
vendored
Normal file
160
node_modules/write/index.js
generated
vendored
Normal file
@ -0,0 +1,160 @@
|
||||
/*!
|
||||
* write <https://github.com/jonschlinkert/write>
|
||||
*
|
||||
* Copyright (c) 2014-2017, Jon Schlinkert.
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var mkdirp = require('mkdirp');
|
||||
|
||||
/**
|
||||
* Asynchronously writes data to a file, replacing the file if it already
|
||||
* exists and creating any intermediate directories if they don't already
|
||||
* exist. Data can be a string or a buffer. Returns a promise if a callback
|
||||
* function is not passed.
|
||||
*
|
||||
* ```js
|
||||
* var writeFile = require('write');
|
||||
* writeFile('foo.txt', 'This is content...', function(err) {
|
||||
* if (err) console.log(err);
|
||||
* });
|
||||
*
|
||||
* // promise
|
||||
* writeFile('foo.txt', 'This is content...')
|
||||
* .then(function() {
|
||||
* // do stuff
|
||||
* });
|
||||
* ```
|
||||
* @name writeFile
|
||||
* @param {string|Buffer|integer} `filepath` filepath or file descriptor.
|
||||
* @param {string|Buffer|Uint8Array} `data` String to write to disk.
|
||||
* @param {object} `options` Options to pass to [fs.writeFile][fs]{#fs_fs_writefile_file_data_options_callback} and/or [mkdirp][]
|
||||
* @param {Function} `callback` (optional) If no callback is provided, a promise is returned.
|
||||
* @api public
|
||||
*/
|
||||
|
||||
function writeFile(filepath, data, options, cb) {
|
||||
if (typeof options === 'function') {
|
||||
cb = options;
|
||||
options = {};
|
||||
}
|
||||
|
||||
if (typeof cb !== 'function') {
|
||||
return writeFile.promise.apply(null, arguments);
|
||||
}
|
||||
|
||||
if (typeof filepath !== 'string') {
|
||||
cb(new TypeError('expected filepath to be a string'));
|
||||
return;
|
||||
}
|
||||
|
||||
mkdirp(path.dirname(filepath), options, function(err) {
|
||||
if (err) {
|
||||
cb(err);
|
||||
return;
|
||||
}
|
||||
fs.writeFile(filepath, data, options, cb);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* The promise version of [writeFile](#writefile). Returns a promise.
|
||||
*
|
||||
* ```js
|
||||
* var writeFile = require('write');
|
||||
* writeFile.promise('foo.txt', 'This is content...')
|
||||
* .then(function() {
|
||||
* // do stuff
|
||||
* });
|
||||
* ```
|
||||
* @name .promise
|
||||
* @param {string|Buffer|integer} `filepath` filepath or file descriptor.
|
||||
* @param {string|Buffer|Uint8Array} `val` String or buffer to write to disk.
|
||||
* @param {object} `options` Options to pass to [fs.writeFile][fs]{#fs_fs_writefile_file_data_options_callback} and/or [mkdirp][]
|
||||
* @return {Promise}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
writeFile.promise = function(filepath, val, options) {
|
||||
if (typeof filepath !== 'string') {
|
||||
return Promise.reject(new TypeError('expected filepath to be a string'));
|
||||
}
|
||||
|
||||
return new Promise(function(resolve, reject) {
|
||||
mkdirp(path.dirname(filepath), options, function(err) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
|
||||
fs.writeFile(filepath, val, options, function(err) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
resolve(val);
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* The synchronous version of [writeFile](#writefile). Returns undefined.
|
||||
*
|
||||
* ```js
|
||||
* var writeFile = require('write');
|
||||
* writeFile.sync('foo.txt', 'This is content...');
|
||||
* ```
|
||||
* @name .sync
|
||||
* @param {string|Buffer|integer} `filepath` filepath or file descriptor.
|
||||
* @param {string|Buffer|Uint8Array} `data` String or buffer to write to disk.
|
||||
* @param {object} `options` Options to pass to [fs.writeFileSync][fs]{#fs_fs_writefilesync_file_data_options} and/or [mkdirp][]
|
||||
* @return {undefined}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
writeFile.sync = function(filepath, data, options) {
|
||||
if (typeof filepath !== 'string') {
|
||||
throw new TypeError('expected filepath to be a string');
|
||||
}
|
||||
mkdirp.sync(path.dirname(filepath), options);
|
||||
fs.writeFileSync(filepath, data, options);
|
||||
};
|
||||
|
||||
/**
|
||||
* Uses `fs.createWriteStream` to write data to a file, replacing the
|
||||
* file if it already exists and creating any intermediate directories
|
||||
* if they don't already exist. Data can be a string or a buffer. Returns
|
||||
* a new [WriteStream](https://nodejs.org/api/fs.html#fs_class_fs_writestream)
|
||||
* object.
|
||||
*
|
||||
* ```js
|
||||
* var fs = require('fs');
|
||||
* var writeFile = require('write');
|
||||
* fs.createReadStream('README.md')
|
||||
* .pipe(writeFile.stream('a/b/c/other-file.md'))
|
||||
* .on('close', function() {
|
||||
* // do stuff
|
||||
* });
|
||||
* ```
|
||||
* @name .stream
|
||||
* @param {string|Buffer|integer} `filepath` filepath or file descriptor.
|
||||
* @param {object} `options` Options to pass to [mkdirp][] and [fs.createWriteStream][fs]{#fs_fs_createwritestream_path_options}
|
||||
* @return {Stream} Returns a new [WriteStream](https://nodejs.org/api/fs.html#fs_class_fs_writestream) object. (See [Writable Stream](https://nodejs.org/api/stream.html#stream_class_stream_writable)).
|
||||
* @api public
|
||||
*/
|
||||
|
||||
writeFile.stream = function(filepath, options) {
|
||||
mkdirp.sync(path.dirname(filepath), options);
|
||||
return fs.createWriteStream(filepath, options);
|
||||
};
|
||||
|
||||
/**
|
||||
* Expose `writeFile`
|
||||
*/
|
||||
|
||||
module.exports = writeFile;
|
Reference in New Issue
Block a user