node-ts-uuid
v2.0.5
Published
A simple uuid generator
Downloads
35,255
Maintainers
Readme
Node UUID
A simple uuid generator. The generator uses the MAC address / IPv6 address + the process id + the current time to ensure a unique id is generated. The length of the uuid can be specified, this will either increase or decrease the number of characters in the uuid. If the uuid needs to be padded to create a longer uuid, a bitwise operation is used to generate the unique characters. A prefix may also specified.
Installation
yarn add node-ts-uuid
Usage
import { Uuid, UuidOptions } from 'node-ts-uuid';
const options: UuidOptions = {
length: 50,
prefix: 'test-',
};
export function getUuid() {
const uuid: string = Uuid.generate(options);
console.log(uuid);
return uuid;
}
Will generate a uuid similar to: test-6xke0ccwg0k00emrjrz81gu8a63657918908addf9942c
Methods
generate(options?: UuidOptions)
Generates a UUID using the IPv6 / Mac Address, the process id, and the current time. Optionally add a prefix, and limit / pad the uuid to be a specific length.
getPid()
Returns the running process id or a randomly generated 5 digit number.
getAddress()
Returns the MAC Address or IPv6 Address, if neither are available a randomly generated 8 digit number is returned.
getNow()
Returns the current epoch time or the previously returned epoch time incremented by 1.
postProcessUuid(uuid: string, length?: number)
Pads / limits the length of the provided uuid if the length is shorter than desired a bitwise operation provides the randomly generated characters.
Options
UuidOptions {
length?: number;
prefix?: string;
}
length
: Pad / Limit the length of the uuid.prefix
: Add a prefix to the uuid.
License
MIT License
Contributing
Contributions are encouraged, please see further details below:
Pull Requests
Here are some basic rules to follow to ensure timely addition of your request:
- Match coding style (braces, spacing, etc.).
- If it is a feature, bugfix, or anything please only change the minimum amount of code required to satisfy the change.
- Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge.
- Pull requests must be made against the
main
branch. Any other branch (unless specified by the maintainers) will get rejected. - Check for existing issues first, before filing a new issue.