diff --git a/express-minify/express-minify-tests.ts b/express-minify/express-minify-tests.ts new file mode 100644 index 000000000..b6ff963ce --- /dev/null +++ b/express-minify/express-minify-tests.ts @@ -0,0 +1,35 @@ +/// + +import express = require('express'); +import minify = require('express-minify'); +import uglifyJS = require('uglify-js'); + +var app = express(); +app.use(minify()); +app.use(minify({ + cache: false, + cssmin: require('cssmin'), + uglifyJS: require('uglify-js') +})); + +app.get('/', function (req: express.Request, res: express.Response) { + res._skip = true; + res._no_minify = false; + res._no_cache = true; + res._uglifyMangle = false; + + var outputOptions: uglifyJS.BeautifierOptions = { + beautify: true, + comments: false + }; + + res._uglifyOutput = outputOptions; + + res._uglifyCompress = false; + + var compressionOptions: uglifyJS.CompressorOptions = { + cascade: true + }; + + res._uglifyCompress = compressionOptions; +}) \ No newline at end of file diff --git a/express-minify/express-minify.d.ts b/express-minify/express-minify.d.ts new file mode 100644 index 000000000..f280a6a8f --- /dev/null +++ b/express-minify/express-minify.d.ts @@ -0,0 +1,109 @@ +// Type definitions for express-minify v0.1.6 +// Project: https://github.com/SummerWish/express-minify +// Definitions by: Borislav Zhivkov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +declare module Express { + interface Response extends ExpressMinifyInterfaces.ExpressMinifyResponse {} +} + +declare module ExpressMinifyInterfaces { + interface ExpressMinifyOptions { + /** + * The directory for cache storage (must be writeable). Pass false to cache in the memory (not recommended). + */ + cache?: string | boolean; + + /** + * Customize UglifyJS instance (require('uglify-js')). + */ + uglifyJS?: NodeRequire; + + /** + * Customize cssmin instance (require('cssmin')). + */ + cssmin?: NodeRequire; + + /** + * Handle compiling errors or minifying errors. You can determine what to respond when facing such errors. + */ + onerror?: Function; + + /** + * Matches JavaScript content-type. + */ + js_match?: RegExp; + + /** + * Matches CSS content-type. + */ + css_match?: RegExp; + + /** + * Matches SASS content-type. + */ + sass_match?: RegExp; + + /** + * Matches LESS content-type. + */ + less_match?: RegExp; + + /** + * Matches Stylus content-type. + */ + stylus_match?: RegExp; + + /** + * Matches CoffeeScript content-type. + */ + coffee_match?: RegExp; + + /** + * Matches JSON content-type. + */ + json_match?: RegExp; + } + + interface ExpressMinifyResponse { + /** + * Pass true to disable all kind of processing: no compiling, no minifying. + */ + _skip: boolean; + + /** + * Pass true to disable minifying, suitable for already-minified contents. + */ + _no_minify: boolean; + + /** + * Pass true to disable caching the response data, suitable for dynamic contents. + */ + _no_cache: boolean; + + /** + * Pass false to disable mangling names + */ + _uglifyMangle: boolean; + + /** + * Pass an object if you wish to specify additional UglifyJS + */ + _uglifyOutput: Object; + + /** + * Pass an object to specify custom UglifyJS compressor options (pass false to skip). + */ + _uglifyCompress: Object | boolean; + } +} + +declare module "express-minify" { + import express = require('express'); + + function minify(options?: ExpressMinifyInterfaces.ExpressMinifyOptions): express.RequestHandler; + export = minify; +} \ No newline at end of file