2 const fs = require('fs');
3 const path = require('path');
4 const uniqueString = require('unique-string');
5 const tempDir = require('temp-dir');
7 const getPath = () => path.join(tempDir, uniqueString());
9 module.exports.file = opts => {
10 opts = Object.assign({
16 throw new Error('The `name` and `extension` options are mutually exclusive');
19 return path.join(module.exports.directory(), opts.name);
22 return getPath() + (opts.extension ? `.${opts.extension.replace(/^\./, '')}` : '');
25 module.exports.directory = () => {
26 const dir = getPath();
31 Object.defineProperty(module.exports, 'root', {