
Security News
Node.js TSC Votes to Stop Distributing Corepack
Corepack will be phased out from future Node.js releases following a TSC vote.
unique-filename
Advanced tools
Generate a unique filename for use in temporary directories or caches.
The unique-filename npm package is a simple utility that generates a unique filename with an optional file path and extension. It can be used to ensure that files written to a directory do not clash with existing filenames.
Generate a unique filename
This feature generates a unique filename within the specified directory. The result is a random filename that is unlikely to clash with existing files.
const uniqueFilename = require('unique-filename');
const randomFilePath = uniqueFilename('/some/path');
console.log(randomFilePath);
Generate a unique filename with a specific extension
This feature generates a unique filename with a specified file extension, ensuring that the file fits the desired format.
const uniqueFilename = require('unique-filename');
const randomFilePath = uniqueFilename('/some/path', '.txt');
console.log(randomFilePath);
Generate a unique filename with a custom random string generator
This feature allows for a custom random string generator to be used, providing control over the randomness and format of the generated filename.
const uniqueFilename = require('unique-filename');
const customRandom = () => 'custom-string';
const randomFilePath = uniqueFilename('/some/path', '.txt', customRandom);
console.log(randomFilePath);
The 'tmp' package offers the creation of temporary files and directories. It can generate unique file names, similar to unique-filename, but also provides additional features such as automatic cleanup of the temporary files.
The 'tempfile' package is another utility for generating unique file paths, but it focuses on temporary files. It automatically appends a random string to a given file prefix, which is a simpler approach compared to unique-filename's more flexible API.
The 'mktemp' package creates unique temporary filenames or directories, similar to the Unix command of the same name. It is more complex than unique-filename, as it includes template-based filename generation and directory creation.
Generate a unique filename for use in temporary directories or caches.
const uniqueFilename = require('unique-filename')
// returns something like: '/tmp/c5b28f47'
const randomTmpfile = uniqueFilename(os.tmpdir())
// returns something like: '/tmp/my-test-51a7b48d'
const randomPrefixedTmpfile = uniqueFilename(os.tmpdir(), 'my-test')
// returns something like: '/my-tmp-dir/testing-7ddd44c0'
const uniqueTmpfile = uniqueFilename('/my-tmp-dir', 'testing', '/my/thing/to/uniq/on')
Returns the full path of a unique filename that looks like:
dir/prefix-7ddd44c0
or dir/7ddd44c0
dir – The path you want the filename in. os.tmpdir()
is a good choice for this.
fileprefix – A string to append prior to the unique part of the filename.
The parameter is required if uniqstr is also passed in but is otherwise
optional and can be undefined
/null
/''
. If present and not empty
then this string plus a hyphen are prepended to the unique part.
uniqstr – Optional, if not passed the unique part of the resulting filename will be random. If passed in it will be generated from this string in a reproducible way.
4.0.0 (2024-09-25)
unique-filename
now supports node ^18.17.0 || >=20.5.0
7f96619
#86 run template-oss-apply (@reggi)3bda296
#85 enable auto publish (#85) (@reggi)5b25a8b
#83 bump @npmcli/eslint-config from 4.0.5 to 5.0.0 (@dependabot[bot])83cd1d9
#74 bump @npmcli/template-oss to 4.22.0 (@lukekarrys)2372b8f
#84 postinstall for dependabot template-oss PR (@hashtagchris)813e0db
#84 bump @npmcli/template-oss from 4.23.1 to 4.23.3 (@dependabot[bot])FAQs
Generate a unique filename for use in temporary directories or caches.
The npm package unique-filename receives a total of 13,850,783 weekly downloads. As such, unique-filename popularity was classified as popular.
We found that unique-filename demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Corepack will be phased out from future Node.js releases following a TSC vote.
Research
Security News
Research uncovers Black Basta's plans to exploit package registries for ransomware delivery alongside evidence of similar attacks already targeting open source ecosystems.
Security News
Oxlint's beta release introduces 500+ built-in linting rules while delivering twice the speed of previous versions, with future support planned for custom plugins and improved IDE integration.