README.md

Tmp

About

Tmp offers both an asynchronous and a synchronous API. For all API calls, all
the parameters are optional.

Tmp uses crypto for determining random file names, or, when using templates,
a six letter random identifier. And just in case that you do not have that much
entropy left on your system, Tmp will fall back to pseudo random numbers.

You can set whether you want to remove the temporary file on process exit or
not, and the destination directory can also be set.

How to install

npm install tmp

Usage

Asynchronous file creation

Simple temporary file creation, the file will be closed and unlinked on process exit.

var tmp =require('tmp');
tmp.file(function_tempFileCreated(err, path, fd, cleanupCallback) {
if (err) throw err;
console.log('File: ', path);
console.log('Filedescriptor: ', fd);
// If we don't need the file anymore we could manually call the cleanupCallback// But that is not necessary if we didn't pass the keep option because the library// will clean after itself.cleanupCallback();
});

Synchronous file creation

A synchronous version of the above.

var tmp =require('tmp');
var tmpobj =tmp.fileSync();
console.log('File: ', tmpobj.name);
console.log('Filedescriptor: ', tmpobj.fd);
// If we don't need the file anymore we could manually call the removeCallback// But that is not necessary if we didn't pass the keep option because the library// will clean after itself.tmpobj.removeCallback();

Note that this might throw an exception if either the maximum limit of retries
for creating a temporary name fails, or, in case that you do not have the permission
to write to the directory where the temporary file should be created in.

Asynchronous directory creation

Simple temporary directory creation, it will be removed on process exit.

If the directory still contains items on process exit, then it won't be removed.

Synchronous directory creation

Note that this might throw an exception if either the maximum limit of retries
for creating a temporary name fails, or, in case that you do not have the permission
to write to the directory where the temporary directory should be created in.

Asynchronous filename generation

It is possible with this library to generate a unique filename in the specified
directory.

Controlling the Descriptor

As a side effect of creating a unique file tmp gets a file descriptor that is
returned to the user as the fd parameter. The descriptor may be used by the
application and is closed when the removeCallback is invoked.

In some use cases the application does not need the descriptor, needs to close it
without removing the file, or needs to remove the file without closing the
descriptor. Two options control how the descriptor is managed:

discardDescriptor - if true causes tmp to close the descriptor after the file
is created. In this case the fd parameter is undefined.

detachDescriptor - if true causes tmp to return the descriptor in the fd
parameter, but it is the application's responsibility to close it when it is no
longer needed.