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.
yarn add node-ts-uuid
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
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.
Returns the running process id or a randomly generated 5 digit number.
Returns the MAC Address or IPv6 Address, if neither are available a randomly generated 8 digit number is returned.
Returns the current epoch time or the previously returned epoch time incremented by 1.
Pads / limits the length of the provided uuid if the length is shorter than desired a bitwise operation provides the randomly generated characters.
UuidOptions {
length?: number;
prefix?: string;
}
length
: Pad / Limit the length of the uuid.prefix
: Add a prefix to the uuid.
MIT License
Contributions are encouraged, please see further details below:
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.