Add type definitions for unique-push-id (#34323)

This commit is contained in:
nathan amick 2019-03-29 13:55:01 -04:00 committed by Ron Buckton
parent 693a1a83cd
commit 79b75ff865
4 changed files with 49 additions and 0 deletions

21
types/unique-push-id/index.d.ts vendored Normal file
View File

@ -0,0 +1,21 @@
// 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;

View File

@ -0,0 +1,24 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true
},
"files": [
"index.d.ts",
"unique-push-id-tests.ts"
]
}

View File

@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }

View File

@ -0,0 +1,3 @@
import pushId from "unique-push-id";
pushId(); // $ExpectType string