+++ /dev/null
-'use strict';
-const path = require('path');
-const fs = require('graceful-fs');
-const isStream = require('is-stream');
-const makeDir = require('make-dir');
-const uuid = require('uuid');
-const pify = require('pify');
-const tempDir = require('temp-dir');
-
-const tempfile = filepath => path.join(tempDir, uuid.v4(), (filepath || ''));
-
-const writeStream = (filepath, input) => new Promise((resolve, reject) => {
- const writable = fs.createWriteStream(filepath);
-
- input
- .on('error', err => {
- // Be careful to reject before writable.end(), otherwise the writable's
- // 'finish' event will fire first and we will resolve the promise
- // before we reject it.
- reject(err);
- input.unpipe(writable);
- writable.end();
- })
- .pipe(writable)
- .on('error', reject)
- .on('finish', resolve);
-});
-
-module.exports = (input, filepath) => {
- const tempPath = tempfile(filepath);
- const write = isStream(input) ? writeStream : pify(fs.writeFile);
-
- return makeDir(path.dirname(tempPath))
- .then(() => write(tempPath, input))
- .then(() => tempPath);
-};
-
-module.exports.sync = (input, filepath) => {
- const tempPath = tempfile(filepath);
-
- makeDir.sync(path.dirname(tempPath));
- fs.writeFileSync(tempPath, input);
-
- return tempPath;
-};