From d4138db108928fa63de369d38c2d30f9ae7e09e6 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 24 Feb 2015 18:43:05 +0100 Subject: [PATCH 1/4] added zip.js def files --- .gitignore | 3 ++ zip.js/zip.js-tests.ts | 43 ++++++++++++++++++++ zip.js/zip.js.d.ts | 92 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 zip.js/zip.js-tests.ts create mode 100644 zip.js/zip.js.d.ts diff --git a/.gitignore b/.gitignore index bbbef0357..71251cf8a 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,9 @@ _infrastructure/tests/build #rx.js !rx.js +#zip.js +!zip.js + node_modules .sublimets diff --git a/zip.js/zip.js-tests.ts b/zip.js/zip.js-tests.ts new file mode 100644 index 000000000..bacaf1cd6 --- /dev/null +++ b/zip.js/zip.js-tests.ts @@ -0,0 +1,43 @@ +// create the blob object storing the data to compress +var blob = new Blob([ "Lorem ipsum dolor sit amet, consectetuer adipiscing elit..." ], { + type : "text/plain" +}); +// creates a zip storing the file "lorem.txt" with blob as data +// the zip will be stored into a Blob object (zippedBlob) +zipBlob("lorem.txt", blob, function(zippedBlob) { + // unzip the first file from zipped data stored in zippedBlob + unzipBlob(zippedBlob, function(unzippedBlob) { + // logs the uncompressed Blob + console.log(unzippedBlob); + }); +}); + +function zipBlob(filename, blob, callback) { + // use a zip.BlobWriter object to write zipped data into a Blob object + zip.createWriter(new zip.BlobWriter("application/zip"), function(zipWriter) { + // use a BlobReader object to read the data stored into blob variable + zipWriter.add(filename, new zip.BlobReader(blob), function() { + // close the writer and calls callback function + zipWriter.close(callback); + }); + }, onerror); +} + +function unzipBlob(blob, callback) { + // use a zip.BlobReader object to read zipped data stored into blob variable + zip.createReader(new zip.BlobReader(blob), function(zipReader) { + // get entries from the zip file + zipReader.getEntries(function(entries) { + // get data from the first file + entries[0].getData(new zip.BlobWriter("text/plain"), function(data) { + // close the reader and calls callback function with uncompressed data as parameter + zipReader.close(); + callback(data); + }); + }); + }, onerror); +} + +function onerror(message) { + console.error(message); +} \ No newline at end of file diff --git a/zip.js/zip.js.d.ts b/zip.js/zip.js.d.ts new file mode 100644 index 000000000..d134b4a68 --- /dev/null +++ b/zip.js/zip.js.d.ts @@ -0,0 +1,92 @@ +// Type definitions for zip.js 2.x +// Project: https://github.com/gildas-lormeau/zip.js +// Definitions by: Louis Grignon +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module zip { + export var useWebWorkers: boolean; + export var workerScriptsPath: string; + export var workerScripts: { + deflater?: string[]; + inflater?: string[]; + }; + + export class Reader { + public size: number; + public init(callback: () => void, onerror: (error) => void): void; + public readUint8Array(index: number, length: number, callback: (result: Uint8Array) => void, onerror?: (error) => void): void; + } + + export class TextReader extends Reader { + constructor(text: string); + } + + export class BlobReader extends Reader { + constructor(blob: Blob); + } + + export class Data64URIReader extends Reader { + constructor(dataURI: string); + } + + export class HttpReader extends Reader { + constructor(url: string); + } + + export function createReader(reader: zip.Reader, callback: (zipReader: ZipReader) => void, onerror?: (error) => void): void; + + export class ZipReader { + getEntries(callback: (entries: zip.Entry[]) => void); + close(callback: () => void): void; + } + + export interface Entry { + filename: string; + directory: boolean; + compressedSize: number; + uncompressedSize: number; + lastModDate: Date; + lastModDateRaw: number; + comment: string; + crc32: number; + + getData(writer: zip.Writer, onend: (result: any) => void, onprogress?: (progress: number, total: number) => void, checkCrc32?: boolean): void; + } + + export class Writer { + public init(callback: () => void, onerror?: (error) => void): void; + public writeUint8Array(array: Uint8Array, callback: () => void, onerror?: (error) => void): void; + public getData(callback: (data) => void, onerror?: (error) => void); + } + + export class TextWriter extends Writer { + constructor(encoding: string); + } + + export class BlobWriter extends Writer { + constructor(contentType: string); + } + + export class FileWriter extends Writer { + constructor(fileEntry: FileEntry); + } + + export class Data64URIWriter extends Writer { + constructor(mimeString?: string); + } + + export function createWriter(writer: zip.Writer, callback: (zipWriter: zip.ZipWriter) => void, onerror?: (error) => void, dontDeflate?: boolean): void; + + export interface WriteOptions { + directory?: boolean; + level?: number; + comment?: string; + lastModDate?: Date; + version?: number; + } + + export class ZipWriter { + public add(name: string, reader: zip.Reader, onend: () => void, onprogress?: (progress: number, total: number) => void, options?: WriteOptions): void; + public close(callback: (result: any) => void): void; + } +} From b47ae8052e2957fa61c1a45f355ccaecbb32f712 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 24 Feb 2015 18:56:03 +0100 Subject: [PATCH 2/4] fixed implied any --- zip.js/zip.js-tests.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zip.js/zip.js-tests.ts b/zip.js/zip.js-tests.ts index bacaf1cd6..fa085ca38 100644 --- a/zip.js/zip.js-tests.ts +++ b/zip.js/zip.js-tests.ts @@ -1,18 +1,18 @@ // create the blob object storing the data to compress -var blob = new Blob([ "Lorem ipsum dolor sit amet, consectetuer adipiscing elit..." ], { +var blob: Blob = new Blob([ "Lorem ipsum dolor sit amet, consectetuer adipiscing elit..." ], { type : "text/plain" }); // creates a zip storing the file "lorem.txt" with blob as data // the zip will be stored into a Blob object (zippedBlob) -zipBlob("lorem.txt", blob, function(zippedBlob) { +zipBlob("lorem.txt", blob, function(zippedBlob: Blob) { // unzip the first file from zipped data stored in zippedBlob - unzipBlob(zippedBlob, function(unzippedBlob) { + unzipBlob(zippedBlob, function(unzippedBlob: Blob) { // logs the uncompressed Blob console.log(unzippedBlob); }); }); -function zipBlob(filename, blob, callback) { +function zipBlob(filename: string, blob: Blob, callback: (blob: Blob) => void) { // use a zip.BlobWriter object to write zipped data into a Blob object zip.createWriter(new zip.BlobWriter("application/zip"), function(zipWriter) { // use a BlobReader object to read the data stored into blob variable @@ -20,24 +20,24 @@ function zipBlob(filename, blob, callback) { // close the writer and calls callback function zipWriter.close(callback); }); - }, onerror); + }, theErrorHandler); } -function unzipBlob(blob, callback) { +function unzipBlob(blob: Blob, callback: (unzippedBlob: Blob) => void) { // use a zip.BlobReader object to read zipped data stored into blob variable zip.createReader(new zip.BlobReader(blob), function(zipReader) { // get entries from the zip file - zipReader.getEntries(function(entries) { + zipReader.getEntries(function(entries: zip.Entry[]) { // get data from the first file - entries[0].getData(new zip.BlobWriter("text/plain"), function(data) { + entries[0].getData(new zip.BlobWriter("text/plain"), function(data: Blob) { // close the reader and calls callback function with uncompressed data as parameter zipReader.close(); callback(data); }); }); - }, onerror); + }, theErrorHandler); } -function onerror(message) { +function theErrorHandler(message) { console.error(message); } \ No newline at end of file From c6f2524d663b3605576b9981b18bf1ab996ac999 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 24 Feb 2015 19:05:41 +0100 Subject: [PATCH 3/4] explicit any and add missing returns added FileEntry --- zip.js/zip.js.d.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/zip.js/zip.js.d.ts b/zip.js/zip.js.d.ts index d134b4a68..3c026cd7a 100644 --- a/zip.js/zip.js.d.ts +++ b/zip.js/zip.js.d.ts @@ -3,6 +3,8 @@ // Definitions by: Louis Grignon // Definitions: https://github.com/borisyankov/DefinitelyTyped +interface FileEntry {} + declare module zip { export var useWebWorkers: boolean; export var workerScriptsPath: string; @@ -13,8 +15,8 @@ declare module zip { export class Reader { public size: number; - public init(callback: () => void, onerror: (error) => void): void; - public readUint8Array(index: number, length: number, callback: (result: Uint8Array) => void, onerror?: (error) => void): void; + public init(callback: () => void, onerror: (error: any) => void): void; + public readUint8Array(index: number, length: number, callback: (result: Uint8Array) => void, onerror?: (error: any) => void): void; } export class TextReader extends Reader { @@ -33,11 +35,11 @@ declare module zip { constructor(url: string); } - export function createReader(reader: zip.Reader, callback: (zipReader: ZipReader) => void, onerror?: (error) => void): void; + export function createReader(reader: zip.Reader, callback: (zipReader: ZipReader) => void, onerror?: (error: any) => void): void; export class ZipReader { - getEntries(callback: (entries: zip.Entry[]) => void); - close(callback: () => void): void; + getEntries(callback: (entries: zip.Entry[]) => void): void; + close(callback?: () => void): void; } export interface Entry { @@ -54,9 +56,9 @@ declare module zip { } export class Writer { - public init(callback: () => void, onerror?: (error) => void): void; - public writeUint8Array(array: Uint8Array, callback: () => void, onerror?: (error) => void): void; - public getData(callback: (data) => void, onerror?: (error) => void); + public init(callback: () => void, onerror?: (error: any) => void): void; + public writeUint8Array(array: Uint8Array, callback: () => void, onerror?: (error: any) => void): void; + public getData(callback: (data) => void, onerror?: (error: any) => void) : void; } export class TextWriter extends Writer { @@ -75,7 +77,7 @@ declare module zip { constructor(mimeString?: string); } - export function createWriter(writer: zip.Writer, callback: (zipWriter: zip.ZipWriter) => void, onerror?: (error) => void, dontDeflate?: boolean): void; + export function createWriter(writer: zip.Writer, callback: (zipWriter: zip.ZipWriter) => void, onerror?: (error: any) => void, dontDeflate?: boolean): void; export interface WriteOptions { directory?: boolean; From d1e97f22f325dba2f90523e50260f6ca0d09be3d Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 25 Feb 2015 00:28:03 +0100 Subject: [PATCH 4/4] last any type + reference --- zip.js/zip.js-tests.ts | 4 +++- zip.js/zip.js.d.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/zip.js/zip.js-tests.ts b/zip.js/zip.js-tests.ts index fa085ca38..b00654996 100644 --- a/zip.js/zip.js-tests.ts +++ b/zip.js/zip.js-tests.ts @@ -1,3 +1,5 @@ +/// + // create the blob object storing the data to compress var blob: Blob = new Blob([ "Lorem ipsum dolor sit amet, consectetuer adipiscing elit..." ], { type : "text/plain" @@ -38,6 +40,6 @@ function unzipBlob(blob: Blob, callback: (unzippedBlob: Blob) => void) { }, theErrorHandler); } -function theErrorHandler(message) { +function theErrorHandler(message: any) { console.error(message); } \ No newline at end of file diff --git a/zip.js/zip.js.d.ts b/zip.js/zip.js.d.ts index 3c026cd7a..fa976dca9 100644 --- a/zip.js/zip.js.d.ts +++ b/zip.js/zip.js.d.ts @@ -58,7 +58,7 @@ declare module zip { export class Writer { public init(callback: () => void, onerror?: (error: any) => void): void; public writeUint8Array(array: Uint8Array, callback: () => void, onerror?: (error: any) => void): void; - public getData(callback: (data) => void, onerror?: (error: any) => void) : void; + public getData(callback: (data: any) => void, onerror?: (error: any) => void) : void; } export class TextWriter extends Writer {