Merge pull request #14574 from calebegg/update-pako

Update pako typings
This commit is contained in:
Zhengbo Li
2017-02-13 12:30:16 -08:00
committed by GitHub
2 changed files with 55 additions and 25 deletions
+44 -21
View File
@@ -1,61 +1,84 @@
// Type definitions for pako 0.2.8
// Type definitions for pako 1.0.4
// Project: https://github.com/nodeca/pako
// Definitions by: Denis Cappellin <http://github.com/cappellin>
// Definitions by: Denis Cappellin <https://github.com/cappellin>, Caleb Eggensperger <https://github.com/calebegg>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export = Pako;
export as namespace pako;
declare namespace Pako {
export interface DeflateOptions {
level?: number;
windowBits?: number;
memLevel?: number;
strategy?: number;
dictionary?: any;
raw?: boolean;
to?: 'string';
}
export interface InflateOptions {
windowBits?: number;
raw?: boolean;
to?: 'string';
}
export type Data = Uint8Array | Array<number> | string;
/**
* Compress data with deflate algorithm and options.
*/
export function deflate( data: Uint8Array | Array<number> | string, options?: any ): string;
export function deflate( data: Data, options: DeflateOptions & {to: 'string'} ): string;
export function deflate( data: Data, options?: DeflateOptions ): Uint8Array;
/**
* The same as deflate, but creates raw data, without wrapper (header and adler32 crc).
*/
export function deflateRaw( data: Uint8Array | Array<number> | string, options?: any ): string;
export function deflateRaw( data: Data, options: DeflateOptions & {to: 'string'} ): string;
export function deflateRaw( data: Data, options?: DeflateOptions ): Uint8Array;
/**
* The same as deflate, but create gzip wrapper instead of deflate one.
*/
export function gzip( data: Uint8Array | Array<number> | string, options?: any ): string;
export function gzip( data: Data, options: DeflateOptions & {to: 'string'} ): string;
export function gzip( data: Data, options?: DeflateOptions ): Uint8Array;
/**
* Decompress data with inflate/ungzip and options. Autodetect format via wrapper header
* by default. That's why we don't provide separate ungzip method.
*/
export function inflate( data: Uint8Array | Array<number> | string, options?: any ): Uint8Array;
export function inflate( data: Uint8Array | Array<number> | string, options?: any ): Array<number>;
export function inflate( data: Uint8Array | Array<number> | string, options?: any ): String;
export function inflate( data: Data, options: InflateOptions & {to: 'string'} ): string;
export function inflate( data: Data, options?: InflateOptions ): Uint8Array;
/**
* The same as inflate, but creates raw data, without wrapper (header and adler32 crc).
*/
export function inflateRaw( data: Uint8Array | Array<number> | string, options?: any ): Uint8Array;
export function inflateRaw( data: Uint8Array | Array<number> | string, options?: any ): Array<number>;
export function inflateRaw( data: Uint8Array | Array<number> | string, options?: any ): string;
export function inflateRaw( data: Data, options: InflateOptions & {to: 'string'} ): string;
export function inflateRaw( data: Data, options?: InflateOptions ): Uint8Array;
/**
* Just shortcut to inflate, because it autodetects format by header.content. Done for convenience.
*/
export function ungzip( data: Uint8Array | Array<number> | string, options?: any ): Uint8Array;
export function ungzip( data: Uint8Array | Array<number> | string, options?: any ): Array<number>;
export function ungzip( data: Uint8Array | Array<number> | string, options?: any ): string;
export function ungzip( data: Data, options: InflateOptions & {to: 'string'} ): string;
export function ungzip( data: Data, options?: InflateOptions ): Uint8Array;
export class Deflate {
constructor( options?: any );
constructor( options?: DeflateOptions );
err: number;
msg: string;
result: Uint8Array | Array<number>;
onData( chunk: Uint8Array | Array<number> | string ): void;
onData( chunk: Data ): void;
onEnd( status: number ): void;
push( data: Uint8Array | Array<number> | ArrayBuffer | string, mode?: number | boolean ): boolean;
push( data: Data | ArrayBuffer, mode?: number | boolean ): boolean;
}
export class Inflate {
constructor( options?: any );
constructor( options?: InflateOptions );
err: number;
msg: string;
result: Uint8Array | Array<number> | string;
onData( chunk: Uint8Array | Array<number> | string ): void;
result: Data;
onData( chunk: Data ): void;
onEnd( status: number ): void;
push( data: Uint8Array | Array<number> | ArrayBuffer | string, mode?: number | boolean ): boolean;
push( data: Data | ArrayBuffer, mode?: number | boolean ): boolean;
}
}
+11 -4
View File
@@ -5,13 +5,20 @@ import pako = require("pako");
var chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])
var chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);
var deflate = new pako.Deflate({ level: 3});
var deflate = new pako.Deflate({ level: 3 });
deflate.push(chunk1, false);
deflate.push(chunk2, true); // true -> last chunk
if (deflate.err) {
throw new Error( deflate.err.toString() );
if (deflate.err) {
throw new Error( deflate.err.toString() );
}
console.log(deflate.result);
console.log(deflate.result);
let str: string = pako.deflate('1234', {to: 'string'});
let arr: Uint8Array = pako.deflate('1234');
let str2: string = pako.inflate('1234', {to: 'string'});
let arr2: Uint8Array = pako.inflate('1234');