diff --git a/UUID/UUID-tests.ts b/UUID/UUID-tests.ts new file mode 100644 index 0000000000..0c6d5874e2 --- /dev/null +++ b/UUID/UUID-tests.ts @@ -0,0 +1,46 @@ +/// +// Copied below from readme at https://github.com/LiosK/UUID.js + + + + +// the simplest way to get an UUID (as a hexadecimal string) +console.log(UUID.generate()); // "0db9a5fa-f532-4736-89d6-8819c7f3ac7b" + +// create a version 4 (random-numbers-based) UUID object +var objV4 = UUID.genV4(); + +// create a version 1 (time-based) UUID object +var objV1 = UUID.genV1(); + +// create an UUID object from a hexadecimal string +var uuid = UUID.parse("a0e0f130-8c21-11df-92d9-95795a3bcd40"); + + +// UUID object as a string +console.log(uuid.toString()); // "a0e0f130-8c21-11df-92d9-95795a3bcd40" +console.log(uuid.hexString); // "a0e0f130-8c21-11df-92d9-95795a3bcd40" +console.log(uuid.bitString); // "101000001110000 ... 1100110101000000" +console.log(uuid.urn); // "urn:uuid:a0e0f130-8c21-11df-92d9-95795a3bcd40" + +// compare UUID objects +console.log(objV4.equals(objV1)); // false + +// show version numbers +console.log(objV4.version); // 4 +console.log(objV1.version); // 1 + +// get UUID field values in 3 different formats by 2 different accessors +console.log(uuid.intFields.timeLow); // 2699096368 +console.log(uuid.bitFields.timeMid); // "1000110000100001" +console.log(uuid.hexFields.timeHiAndVersion); // "11df" +console.log(uuid.intFields.clockSeqHiAndReserved); // 146 +console.log(uuid.bitFields.clockSeqLow); // "11011001" +console.log(uuid.hexFields.node); // "95795a3bcd40" + +console.log(uuid.intFields[0]); // 2699096368 +console.log(uuid.bitFields[1]); // "1000110000100001" +console.log(uuid.hexFields[2]); // "11df" +console.log(uuid.intFields[3]); // 146 +console.log(uuid.bitFields[4]); // "11011001" +console.log(uuid.hexFields[5]); // "95795a3bcd40" diff --git a/UUID/UUID.d.ts b/UUID/UUID.d.ts new file mode 100644 index 0000000000..03aa3c216f --- /dev/null +++ b/UUID/UUID.d.ts @@ -0,0 +1,88 @@ +// Type definitions for UUID.js core-1.0 +// Project: https://github.com/LiosK/UUID.js +// Definitions by: Jason Jarrett +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module UUID { + + interface UUIDStatic { + + /** + * The simplest function to get an UUID string. + * @returns {string} A version 4 UUID string. + */ + generate(): string; + + /** + * Generates a version 4 {@link UUID}. + * @returns {UUID} A version 4 {@link UUID} object. + * @since 3.0 + */ + genV4(): UUID; + + + /** + * Generates a version 1 {@link UUID}. + * @returns {UUID} A version 1 {@link UUID} object. + * @since 3.0 + */ + genV1(): UUID; + + /** + * Converts hexadecimal UUID string to an {@link UUID} object. + * @param {string} strId UUID hexadecimal string representation ("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"). + * @returns {UUID} {@link UUID} object or null. + * @since 3.0 + */ + parse(uuid: string): UUID; + + + /** + * Re-initializes version 1 UUID state. + * @since 3.0 + */ + resetState(): void; + + /** + * Reinstalls {@link UUID.generate} method to emulate the interface of UUID.js version 2.x. + * @since 3.1 + * @deprecated Version 2.x. compatible interface is not recommended. + */ + makeBackwardCompatible(): void; + } + + interface UUIDArray extends Array { + timeLow: string; + timeMid: string; + timeHiAndVersion: string; + clockSeqHiAndReserved: string; + clockSeqLow: string; + node: string; + } + + interface UUID { + intFields: UUIDArray; + bitFields: UUIDArray; + hexFields: UUIDArray; + version: number; + bitString: string; + hexString: string; + urn: string; + + + /** + * Tests if two {@link UUID} objects are equal. + * @param {UUID} uuid + * @returns {bool} True if two {@link UUID} objects are equal. + */ + equals(uuid: UUID): boolean; + + /** + * Returns UUID string representation. + * @returns {string} {@link UUID#hexString}. + */ + toString(): string; + } +} + +declare var UUID: UUID.UUIDStatic;