1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 'use strict';
- const { promisify } = require("util");
- const tmp = require("tmp");
- // file
- 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();
- }
- };
- // directory
- 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();
- }
- };
- // name generation
- module.exports.tmpNameSync = tmp.tmpNameSync;
- module.exports.tmpName = promisify(tmp.tmpName);
- module.exports.tmpdir = tmp.tmpdir;
- module.exports.setGracefulCleanup = tmp.setGracefulCleanup;
|