UNPKG

uuidv6-extension

Version:

UUID version 6 extension for creating time based in RFC UUID v1 for NodeJS.

97 lines (69 loc) 3.99 kB
# uuidv6-extension UUID version 6 extension for creating time based in RFC UUID v1 for NodeJS. This is an extension of the existing library: <https://github.com/uuidjs/uuid> ## Install ```bash npm install uuidv6-extension ``` ## API | Method | Return | Comments | | ------------------------ | ---------------------------------------------------------- | -------------------------------------- | | uuid.nil( ) | The nil UUID string (all zeros) | '00000000-0000-0000-0000-000000000000' | | uuid.parse( ) | Convert UUID string to array of bytes (v1 to v4) | ArrayLike < number > | | uuid.stringify( ) | Convert array of bytes to UUID string (v1 to v4) | '46ed45e0-392d-11ed-9370-0800200c9a66' | | uuid.validate( ) | Test a string to see if it is a valid UUID not v6 | Boolean | | uuid.validateV6( ) | Test a string to see if it is a valid UUID v6 (reg. exp.) | Boolean | | uuid.validateAll( ) | Validate a string with UUID v1, v3, v5 and v6 | Boolean | | uuid.version( ) | Detect RFC version of a UUID not v6 | Number | | uuid.versionAll( ) | Detect RFC version of a UUID for v1, v4 and v6 | Number | | uuid.uuidToDate( ) | Convert a UUID V1 to a Date Object | Date | | uuid.uuidToDateV6( ) | Convert a UUID V6 to a Date Object | Date | | uuid.v1( ) | Create a version 1 (timestamp) UUID | '5714f720-1268-11e7-a24b-96d95aa38c32' | | uuid.v4( ) | Create a version 4 (random) UUID | '81d86d15-822f-4f7b-b091-0a1f9392d379' | | uuid.v6( ) | Create a version 6 (ordered MAC) UUID from version 1 | '1e712685-714f-6720-a23a-c90103f70be6' | | uuid.v6Ordered( ) | Create a version 6 (ordered timestamp) UUID from version 1 | '1e712685-714f-6720-a23a-c90103f70be6' | | uuid.v6OrderedToV1( ) \* | Get UUID V1 from V6 ordered timestamp | '1e712685-714f-6720-a23a-c90103f70be6' | - v6OrderedToV1() Not implemented ## Usage ```ts import * as uuid from "uuidv6-extension"; // nil console.log(`nil UUID: ${nil()}`); // Parse - Stringify const uuidV1 = uuid.v1(); const uuidV1Parse = uuid.parse(uuidV1); const uuidV1Str = uuid.stringify(uuidV1Parse); const uuidV6 = uuid.v6(); const uuidV6Ordered = uuid.v6Ordered(); console.log(`UUID v1: ${uuidV1}`); console.log(`UUID v1 stringified: ${uuidV1Str}`); // Validate const invalid = "ad333a"; console.log(uuid.validate(uuidV1)); console.log(uuid.validate(invalid)); console.log(uuid.validateV6(uuidV6)); // Version console.log(uuid.version(uuidV1)); console.log(uuid.versionV6(uuidV1)); console.log(uuid.versionV6(uuidV6)); // UUID to Date console.log(uuid.uuidToDate(uuidV1)); // UUID V6 with ordered timestamp console.log(uuid.v6Ordered()); // UUID V6 timestamp console.log(uuidToDateV6(uuidV6Ordered)); ``` ## To be done Implementation - [ ] Ordered V6 to V1 Support for versions: - [ ] V3 - [ ] V5 Test - [ ] Unit test - [ ] Performance test ## License - The underlying uuid modules and code licenses are: - The underlying code from uuid-with-v6-js is licensed under the [ISC License](https://github.com/kurttheviking/uuid-with-v6-js/blob/master/LICENSE). - The underlying uuid module is licensed under the [MIT License](https://github.com/kelektiv/node-uuid/blob/master/LICENSE.md). - The underlying code from UUID_to_Date is licensed under the [Apache License 2.0] (https://github.com/xehrad/UUID_to_Date/blob/master/LICENSE)