diff --git a/types/decompress/decompress-tests.ts b/types/decompress/decompress-tests.ts new file mode 100644 index 0000000000..3df7df0219 --- /dev/null +++ b/types/decompress/decompress-tests.ts @@ -0,0 +1,21 @@ +import decompress = require('decompress'); +import * as path from "path"; + +decompress('unicorn.zip', 'dist').then(files => { + console.log('done!'); +}); + +decompress('unicorn.zip', 'dist', { + filter: file => path.extname(file.path) !== '.exe' +}).then(files => { + console.log('done!'); +}); + +decompress('unicorn.zip', 'dist', { + map: file => { + file.path = `unicorn-${file.path}`; + return file; + } +}).then(files => { + console.log('done!'); +}); diff --git a/types/decompress/index.d.ts b/types/decompress/index.d.ts new file mode 100644 index 0000000000..c2211b3434 --- /dev/null +++ b/types/decompress/index.d.ts @@ -0,0 +1,39 @@ +// Type definitions for decompress 4.2 +// Project: https://github.com/kevva/decompress#readme +// Definitions by: York Yao +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +export = decompress; + +declare function decompress(input: string | Buffer, output: string, opts?: Options): Promise; + +interface File { + data: Buffer; + mode: number; + mtime: string; + path: string; + type: string; +} + +interface Options { + /** + * Filter out files before extracting + */ + filter?(file: File): boolean; + /** + * Map files before extracting + */ + map?(file: File): File; + /** + * Array of plugins to use. + * Default: [decompressTar(), decompressTarbz2(), decompressTargz(), decompressUnzip()] + */ + plugins?: any[]; + /** + * Remove leading directory components from extracted files. + * Default: 0 + */ + strip?: number; +} diff --git a/types/decompress/tsconfig.json b/types/decompress/tsconfig.json new file mode 100644 index 0000000000..33c7a8c5e8 --- /dev/null +++ b/types/decompress/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "strictFunctionTypes": true + }, + "files": [ + "index.d.ts", + "decompress-tests.ts" + ] +} diff --git a/types/decompress/tslint.json b/types/decompress/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/decompress/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }