Class: TimeUuid

types~TimeUuid(dateopt, ticksopt, nodeIdopt, clockIdopt)

Represents an immutable version 1 universally unique identifier (UUID). A UUID represents a 128-bit value.

Constructor

new TimeUuid(dateopt, ticksopt, nodeIdopt, clockIdopt)

Creates a new instance of Uuid based on the parameters provided according to rfc4122. If any of the arguments is not provided, it will be randomly generated, except for the date that will use the current date.

If nodeId and/or clockId portions are not provided, the constructor will generate them using crypto.randomBytes(). As it's possible that crypto.randomBytes() might block, it's recommended that you use the callback-based version of the static methods fromDate() or now()in that case.

Parameters:
Name Type Attributes Description
date Date <optional>

The date for the instance. If not provided, current Date will be used.

ticks number <optional>

A number from 0 to 10000 representing the 100-nanoseconds units for this instance to fill in the information not available in the Date, as Ecmascript Dates have only milliseconds precision.

nodeId string | Buffer <optional>

A 6-length Buffer or string of 6 ascii characters representing the node identifier, ie: 'host01'.

clockId string | Buffer <optional>

A 2-length Buffer or string of 6 ascii characters representing the clock identifier.

Source:

Extends

Members

(readonly) buffer :Buffer

Returns the underlying buffer

Type:
  • Buffer
Overrides:
Source:

uuidRegex

Used to check if the UUID is in a correct format Source: https://stackoverflow.com/a/6640851 Verified also with documentation of UUID library in Rust: https://docs.rs/uuid/latest/uuid/

Overrides:
Source:

Methods

equals(other)

Compares this object to the specified object. The result is true if and only if the argument is not null, is a UUID object, and contains the same value, bit for bit, as this UUID.

Parameters:
Name Type Description
other Uuid

The other value to test for equality.

Overrides:
Source:

getBuffer() → {Buffer}

Gets the bytes representation of a Uuid

Overrides:
Source:
Returns:
Type
Buffer

getClockId() → {Buffer}

Returns the clock id this instance, with the variant applied (first 2 msb being 1 and 0).

Source:
Returns:
Type
Buffer

getDate() → {Date}

Gets the Date representation of this instance.

Source:
Returns:
Type
Date

getDatePrecision() → {Object}

Gets the Date and 100-nanoseconds units representation of this instance.

Source:
Returns:
Type
Object

(package) getInternal() → {rust.UuidWrapper}

Overrides:
Source:
Returns:
Type
rust.UuidWrapper

getNodeId() → {Buffer}

Returns the node id this instance

Source:
Returns:
Type
Buffer

getNodeIdString() → {string}

Returns the node id this instance as an ascii string

Source:
Returns:
Type
string

inspect() → {string}

Provide the name of the constructor and the string representation

Overrides:
Source:
Returns:
Type
string

toJSON()

Returns the string representation. Method used by the native JSON.stringify() to serialize this instance.

Overrides:
Source:

toString() → {string}

Returns a string representation of the value of this Uuid instance. 32 hex separated by hyphens, in the form of 00000000-0000-0000-0000-000000000000.

Overrides:
Source:
Returns:
Type
string

(static) fromDate(date, ticksopt, nodeIdopt, clockIdopt, callbackopt)

Generates a TimeUuid instance based on the Date provided using random node and clock values.

Parameters:
Name Type Attributes Description
date Date

Date to generate the v1 uuid.

ticks number <optional>

A number from 0 to 10000 representing the 100-nanoseconds units for this instance to fill in the information not available in the Date, as Ecmascript Dates have only milliseconds precision.

nodeId string | Buffer <optional>

A 6-length Buffer or string of 6 ascii characters representing the node identifier, ie: 'host01'. If not provided, a random nodeId will be generated.

clockId string | Buffer <optional>

A 2-length Buffer or string of 6 ascii characters representing the clock identifier. If not provided a random clockId will be generated.

callback function <optional>

An optional callback to be invoked with the error as first parameter and the created TimeUuid as second parameter. When a callback is provided, the random portions of the TimeUuid instance are created asynchronously.

When nodeId and/or clockId portions are not provided, this method will generate them using crypto.randomBytes(). As it's possible that crypto.randomBytes() might block, it's recommended that you use the callback-based version of this method in that case.

Source:
Examples

Generate a TimeUuid from a ECMAScript Date

const timeuuid = TimeUuid.fromDate(new Date());

Generate a TimeUuid from a Date with ticks portion

const timeuuid = TimeUuid.fromDate(new Date(), 1203);

Generate a TimeUuid from a Date without any random portion

const timeuuid = TimeUuid.fromDate(new Date(), 1203, 'host01', '02');

Generate a TimeUuid from a Date with random node and clock identifiers

TimeUuid.fromDate(new Date(), 1203, function (err, timeuuid) {
  // do something with the generated timeuuid
});

(package, static) fromRust(buffer) → {TimeUuid}

Parameters:
Name Type Description
buffer rust.TimeUuidWrapper
Source:
Returns:
Type
TimeUuid

(static) fromString(value) → {TimeUuid}

Parses a string representation of a TimeUuid

Parameters:
Name Type Description
value string

should be in 00000000-0000-0000-0000-000000000000 format

Source:
Returns:
Type
TimeUuid

(static) max(date, ticks) → {TimeUuid}

Returns the biggest possible type 1 uuid with the provided Date.

Parameters:
Name Type Description
date Date
ticks number
Source:
Returns:
Type
TimeUuid

(static) min(date, ticks) → {TimeUuid}

Returns the smallest possible type 1 uuid with the provided Date.

Parameters:
Name Type Description
date Date
ticks number
Source:
Returns:
Type
TimeUuid

(static) now(nodeIdopt, clockIdopt, callbackopt)

Generates a TimeUuid instance based on the current date using random node and clock values.

Parameters:
Name Type Attributes Description
nodeId string | Buffer <optional>

A 6-length Buffer or string of 6 ascii characters representing the node identifier, ie: 'host01'. If not provided, a random nodeId will be generated.

clockId string | Buffer <optional>

A 2-length Buffer or string of 6 ascii characters representing the clock identifier. If not provided a random clockId will be generated.

callback function <optional>

An optional callback to be invoked with the error as first parameter and the created TimeUuid as second parameter. When a callback is provided, the random portions of the TimeUuid instance are created asynchronously.

When nodeId and/or clockId portions are not provided, this method will generate them using crypto.randomBytes(). As it's possible that crypto.randomBytes() might block, it's recommended that you use the callback-based version of this method in that case.

Source:
Examples

Generate a TimeUuid from a Date without any random portion

const timeuuid = TimeUuid.now('host01', '02');

Generate a TimeUuid with random node and clock identifiers

TimeUuid.now(function (err, timeuuid) {
  // do something with the generated timeuuid
});

Generate a TimeUuid based on the current date (might block)

const timeuuid = TimeUuid.now();