mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-03 22:37:03 +00:00
Merge pull request #28080 from dbrockman/varint
add types for package varint
This commit is contained in:
Vendored
+46
@@ -0,0 +1,46 @@
|
||||
// Type definitions for varint 5.0
|
||||
// Project: https://github.com/chrisdickinson/varint#readme
|
||||
// Definitions by: David Brockman Smoliansky <https://github.com/dbrockman>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="node"/>
|
||||
|
||||
export const encode: {
|
||||
/**
|
||||
* Encodes `num` into `buffer` starting at `offset`. returns `buffer`, with the encoded varint written into it.
|
||||
* `varint.encode.bytes` will now be set to the number of bytes modified.
|
||||
*/
|
||||
(num: number, buffer: Buffer, offset?: number): Buffer;
|
||||
|
||||
/**
|
||||
* Encodes `num` into `array` starting at `offset`. returns `array`, with the encoded varint written into it.
|
||||
* If `array` is not provided, it will default to a new array.
|
||||
* `varint.encode.bytes` will now be set to the number of bytes modified.
|
||||
*/
|
||||
(num: number, array?: number[], offset?: number): number[];
|
||||
|
||||
/**
|
||||
* Similar to `decode.bytes` when encoding a number it can be useful to know how many bytes where written (especially if you pass an output array).
|
||||
* You can access this via `varint.encode.bytes` which holds the number of bytes written in the last encode.
|
||||
*/
|
||||
bytes: number;
|
||||
};
|
||||
|
||||
export const decode: {
|
||||
/**
|
||||
* Decodes `data`, which can be either a buffer or array of integers, from position `offset` or default 0 and returns the decoded original integer.
|
||||
* Throws a `RangeError` when `data` does not represent a valid encoding.
|
||||
*/
|
||||
(buf: Buffer | number[], offset?: number): number;
|
||||
|
||||
/**
|
||||
* If you also require the length (number of bytes) that were required to decode the integer you can access it via `varint.decode.bytes`.
|
||||
* This is an integer property that will tell you the number of bytes that the last .decode() call had to use to decode.
|
||||
*/
|
||||
bytes: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* returns the number of bytes this number will be encoded as, up to a maximum of 8.
|
||||
*/
|
||||
export function encodingLength(num: number): number;
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": ["../"],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": ["index.d.ts", "varint-tests.ts"]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
@@ -0,0 +1,17 @@
|
||||
import { decode, encode, encodingLength } from 'varint';
|
||||
|
||||
encode(0); // $ExpectType number[]
|
||||
encode(0, []); // $ExpectType number[]
|
||||
encode(0, [], 0); // $ExpectType number[]
|
||||
|
||||
encode(0, Buffer.alloc(1)); // $ExpectType Buffer
|
||||
encode(0, Buffer.alloc(1), 0); // $ExpectType Buffer
|
||||
|
||||
encode.bytes; // $ExpectType number
|
||||
|
||||
decode(Buffer.alloc(1)); // $ExpectType number
|
||||
decode(Buffer.alloc(1), 0); // $ExpectType number
|
||||
|
||||
decode.bytes; // $ExpectType number
|
||||
|
||||
encodingLength(0); // $ExpectType number
|
||||
Reference in New Issue
Block a user