Calculates approximate number of hashes before first collision.
Given that:
H
is the total number of possible UUIDs, or in terms of this library,
the result of running availableUUIDs()
Q(H)
Then Q(H)
can be approximated as the square root of the product of half
of pi times H
:
This function returns Q(H)
.
(see Poisson distribution)
Calculates total number of possible UUIDs.
Given that:
H
is the total number of possible UUIDsn
is the number of unique characters in the dictionaryl
is the UUID lengthThen H
is defined as n
to the power of l
:
This function returns H
.
Calculates probability of generating duplicate UUIDs (a collision) in a given number of UUID generation rounds.
Given that:
r
is the maximum number of times that randomUUID()
will be called,
or better said the number of roundsH
is the total number of possible UUIDs, or in terms of this library,
the result of running availableUUIDs()
Then the probability of collision p(r; H)
can be approximated as the result
of dividing the square root of the product of half of pi times r
by H
:
This function returns p(r; H)
.
(see Poisson distribution)
(Useful if you are wondering "If I use this lib and expect to perform at most
r
rounds of UUID generations, what is the probability that I will hit a duplicate UUID?".)
Extracts the date embeded in a UUID generated using the uid.stamp(finalLength);
method.
const uidWithTimestamp = uid.stamp(32);
console.log(uidWithTimestamp);
// GDa608f973aRCHLXQYPTbKDbjDeVsSb3
console.log(uid.parseStamp(uidWithTimestamp));
// 2021-05-03T06:24:58.000Z
Optional
format: stringChange the dictionary after initialization.
Optional
shuffle: booleanGenerates a UUID with a timestamp that can be extracted using uid.parseStamp(stampString);
.
const uidWithTimestamp = uid.stamp(32);
console.log(uidWithTimestamp);
// GDa608f973aRCHLXQYPTbKDbjDeVsSb3
console.log(uid.parseStamp(uidWithTimestamp));
// 2021-05-03T06:24:58.000Z
Optional
date: DateCalculate a "uniqueness" score (from 0 to 1) of UUIDs based on size of dictionary and chosen UUID length.
Given that:
H
is the total number of possible UUIDs, or in terms of this library,
the result of running availableUUIDs()
Q(H)
is the approximate number of hashes before first collision,
or in terms of this library, the result of running approxMaxBeforeCollision()
Then uniqueness
can be expressed as the additive inverse of the probability of
generating a "word" I had previously generated (a duplicate) at any given iteration
up to the the total number of possible UUIDs expressed as the quotiend of Q(H)
and H
:
(Useful if you need a value to rate the "quality" of the combination of given dictionary and UUID length. The closer to 1, higher the uniqueness and thus better the quality.)
Validate given UID contains only characters from the instanced dictionary or optionally provided dictionary.
Optional
dictionary: string[] | ShortUniqueIdDefaultDictionaries
Generate random or sequential UUID of any length.
Use as module
Use in browser
Options
Options can be passed when instantiating
uid
:For more information take a look at the ShortUniqueIdOptions type definition.