| 'use strict'; |
|
|
| const { promisify } = require("util"); |
| const tmp = require("tmp"); |
|
|
| |
| module.exports.fileSync = tmp.fileSync; |
| const fileWithOptions = promisify((options, cb) => |
| tmp.file(options, (err, path, fd, cleanup) => |
| err ? cb(err) : cb(undefined, { path, fd, cleanup: promisify(cleanup) }) |
| ) |
| ); |
| module.exports.file = async (options) => fileWithOptions(options); |
|
|
| module.exports.withFile = async function withFile(fn, options) { |
| const { path, fd, cleanup } = await module.exports.file(options); |
| try { |
| return await fn({ path, fd }); |
| } finally { |
| await cleanup(); |
| } |
| }; |
|
|
|
|
| |
| module.exports.dirSync = tmp.dirSync; |
| const dirWithOptions = promisify((options, cb) => |
| tmp.dir(options, (err, path, cleanup) => |
| err ? cb(err) : cb(undefined, { path, cleanup: promisify(cleanup) }) |
| ) |
| ); |
| module.exports.dir = async (options) => dirWithOptions(options); |
|
|
| module.exports.withDir = async function withDir(fn, options) { |
| const { path, cleanup } = await module.exports.dir(options); |
| try { |
| return await fn({ path }); |
| } finally { |
| await cleanup(); |
| } |
| }; |
|
|
|
|
| |
| module.exports.tmpNameSync = tmp.tmpNameSync; |
| module.exports.tmpName = promisify(tmp.tmpName); |
|
|
| module.exports.tmpdir = tmp.tmpdir; |
|
|
| module.exports.setGracefulCleanup = tmp.setGracefulCleanup; |
|
|