diff --git a/pbf/index.d.ts b/pbf/index.d.ts new file mode 100644 index 0000000000..fdcb9b53ce --- /dev/null +++ b/pbf/index.d.ts @@ -0,0 +1,77 @@ +// Type definitions for pbf 3.0 +// Project: https://github.com/mapbox/pbf +// Definitions by: Christian Schwarz +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare class Pbf { + buf: Uint8Array; + pos: number; + type: number; + length: number; + + constructor(buffer?: Uint8Array); + + destroy(): void; + readFields(readField: (tag: number, result?: T, pbf?: Pbf) => void, result?: T, end?: number): T; + readMessage(readField: (tag: number, result?: T, pbf?: Pbf) => void, result?: T): T; + readFixed32(): number; + readSFixed32(): number; + readFixed64(): number; + readSFixed64(): number; + readFloat(): number; + readDouble(): number; + readVarint(isSigned?: boolean): number; + readVarint64(): number; + readSVarint(): number; + readBoolean(): boolean; + readString(): string; + readBytes(): Uint8Array; + readPackedVarint(arr?: number[], isSigned?: boolean): number[]; + readPackedSVarint(arr?: number[]): number[]; + readPackedBoolean(arr?: boolean[]): boolean[]; + readPackedFloat(arr?: number[]): number[]; + readPackedDouble(arr?: number[]): number[]; + readPackedFixed32(arr?: number[]): number[]; + readPackedSFixed32(arr?: number[]): number[]; + readPackedFixed64(arr?: number[]): number[]; + readPackedSFixed64(arr?: number[]): number[]; + skip(val: number): void; + writeTag(tag: number, type: number): void; + realloc(min: number): void; + finish(): Uint8Array; + writeFixed32(val: number): void; + writeSFixed32(val: number): void; + writeFixed64(val: number): void; + writeSFixed64(val: number): void; + writeVarint(val: number): void; + writeSVarint(val: number): void; + writeBoolean(val: boolean): void; + writeString(str: string): void; + writeFloat(val: number): void; + writeDouble(val: number): void; + writeBytes(buffer: Uint8Array): void; + writeRawMessage(fn: (obj: T, pbf?: Pbf) => void, obj?: T): void; + writeMessage(tag: number, fn: (obj: T, pbf?: Pbf) => void, obj?: T): void; + writePackedVarint(tag: number, arr: number[]): void; + writePackedSVarint(tag: number, arr: number[]): void; + writePackedBoolean(tag: number, arr: boolean[]): void; + writePackedFloat(tag: number, arr: number[]): void; + writePackedDouble(tag: number, arr: number[]): void; + writePackedFixed32(tag: number, arr: number[]): void; + writePackedSFixed32(tag: number, arr: number[]): void; + writePackedFixed64(tag: number, arr: number[]): void; + writePackedSFixed64(tag: number, arr: number[]): void; + writeBytesField(tag: number, buffer: Uint8Array): void; + writeFixed32Field(tag: number, val: number): void; + writeSFixed32Field(tag: number, val: number): void; + writeFixed64Field(tag: number, val: number): void; + writeSFixed64Field(tag: number, val: number): void; + writeVarintField(tag: number, val: number): void; + writeSVarintField(tag: number, val: number): void; + writeStringField(tag: number, str: string): void; + writeFloatField(tag: number, val: number): void; + writeDoubleField(tag: number, val: number): void; + writeBooleanField(tag: number, val: boolean): void; +} + +export = Pbf; diff --git a/pbf/pbf-tests.ts b/pbf/pbf-tests.ts new file mode 100644 index 0000000000..533c183801 --- /dev/null +++ b/pbf/pbf-tests.ts @@ -0,0 +1,88 @@ +import Pbf = require('pbf'); + +var pbf = new Pbf(new Uint8Array(1)); +new Pbf(); +pbf.buf; +pbf.pos; +pbf.type; +pbf.length; +pbf.destroy(); +pbf.readFields(function (tag) {}); +pbf.readFields(function (tag, result) {}); +pbf.readFields(function (tag, result, pbf) {}); +pbf.readFields(function (tag) {}, {}, 1); +pbf.readMessage(function (tag) {}); +pbf.readMessage(function (tag, result) {}); +pbf.readMessage(function (tag, result, pbf) {}); +pbf.readFixed32(); +pbf.readSFixed32(); +pbf.readFixed64(); +pbf.readSFixed64(); +pbf.readFloat(); +pbf.readDouble(); +pbf.readVarint(); +pbf.readVarint(true); +pbf.readVarint64(); +pbf.readSVarint(); +pbf.readBoolean(); +pbf.readString(); +pbf.readBytes(); +pbf.readPackedVarint(); +pbf.readPackedVarint([], true); +pbf.readPackedSVarint(); +pbf.readPackedSVarint([]); +pbf.readPackedBoolean(); +pbf.readPackedBoolean([]); +pbf.readPackedFloat(); +pbf.readPackedFloat([]); +pbf.readPackedDouble(); +pbf.readPackedDouble([]); +pbf.readPackedFixed32(); +pbf.readPackedFixed32([]); +pbf.readPackedSFixed32(); +pbf.readPackedSFixed32([]); +pbf.readPackedFixed64(); +pbf.readPackedFixed64([]); +pbf.readPackedSFixed64(); +pbf.readPackedSFixed64([]); +pbf.skip(1); +pbf.writeTag(1, 2); +pbf.realloc(1); +pbf.finish(); +pbf.writeFixed32(1); +pbf.writeSFixed32(1); +pbf.writeFixed64(1); +pbf.writeSFixed64(1); +pbf.writeVarint(1); +pbf.writeSVarint(1); +pbf.writeBoolean(true); +pbf.writeString(''); +pbf.writeFloat(1); +pbf.writeDouble(1); +pbf.writeBytes(new Uint8Array(1)); +pbf.writeRawMessage(function (obj) {}); +pbf.writeRawMessage(function (obj, pbf) {}); +pbf.writeRawMessage(function (obj) {}, {}); +pbf.writeMessage(1, function (obj) {}); +pbf.writeMessage(1, function (obj, pbf) {}); +pbf.writeMessage(1, function (obj) {}, {}); +pbf.writePackedVarint(1, []); +pbf.writePackedSVarint(1, []); +pbf.writePackedBoolean(1, []); +pbf.writePackedFloat(1, []); +pbf.writePackedDouble(1, []); +pbf.writePackedFixed32(1, []); +pbf.writePackedSFixed32(1, []); +pbf.writePackedFixed64(1, []); +pbf.writePackedSFixed64(1, []); +pbf.writeBytesField(1, new Uint8Array(1)); +pbf.writeFixed32Field(1, 2); +pbf.writeSFixed32Field(1, 2); +pbf.writeFixed64Field(1, 2); +pbf.writeSFixed64Field(1, 2); +pbf.writeVarintField(1, 2); +pbf.writeSVarintField(1, 2); +pbf.writeStringField(1, ''); +pbf.writeFloatField(1, 2); +pbf.writeDoubleField(1, 2); +pbf.writeBooleanField(1, true); \ No newline at end of file diff --git a/pbf/tsconfig.json b/pbf/tsconfig.json new file mode 100644 index 0000000000..640b85fc41 --- /dev/null +++ b/pbf/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "pbf-tests.ts" + ] +} diff --git a/pbf/tslint.json b/pbf/tslint.json new file mode 100644 index 0000000000..377cc837d4 --- /dev/null +++ b/pbf/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" }