mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
22 lines
1.1 KiB
TypeScript
22 lines
1.1 KiB
TypeScript
// Type definitions for unique-push-id 1.0
|
|
// Project: https://github.com/limit-zero/unique-push-id
|
|
// Definitions by: Nathan Amick <https://github.com/namick>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.7
|
|
|
|
/**
|
|
* Fancy ID generator that creates 20-character string identifiers with the following properties:
|
|
*
|
|
* 1. They're based on timestamp so that they sort *after* any existing ids.
|
|
* 2. They contain 72-bits of random data after the timestamp so that IDs won't collide with other clients' IDs.
|
|
* 3. They sort *lexicographically* (so the timestamp is converted to characters that will sort properly).
|
|
* 4. They're monotonically increasing. Even if you generate more than one in the same timestamp, the
|
|
* latter ones will sort after the former ones. We do this by using the previous random bits
|
|
* but "incrementing" them by 1 (only in the case of a timestamp collision).
|
|
*
|
|
* @returns A unique, chronological, lexicographical 20-character string identifier.
|
|
*/
|
|
declare function pushId(): string;
|
|
|
|
export = pushId;
|