(a)
| 20 | * Copyright(c) 2014-2015 Douglas Christopher Wilson |
| 21 | * MIT Licensed |
| 22 | */var n=i(909);var s=i(291).Buffer;var o=i(666);var c=i(876);var p=i(937)("compression");var t=i(849);var r=i(850);var l=i(796);a.exports=compression;a.exports.filter=shouldCompress;var u=/(?:^|,)\s*?no-transform\s*?(?:,|$)/;function compression(a){var e=a||{};var i=e.filter||shouldCompress;var s=o.parse(e.threshold);if(s==null){s=1024}return function compression(a,o,c){var u=false;var m;var d=[];var x;var v=o.end;var f=o.on;var b=o.write;o.flush=function flush(){if(x){x.flush()}};o.write=function write(a,e){if(u){return false}if(!this._header){this._implicitHeader()}return x?x.write(toBuffer(a,e)):b.call(this,a,e)};o.end=function end(a,e){if(u){return false}if(!this._header){if(!this.getHeader("Content-Length")){m=chunkLength(a,e)}this._implicitHeader()}if(!x){return v.call(this,a,e)}u=true;return a?x.end(toBuffer(a,e)):x.end()};o.on=function on(a,e){if(!d||a!=="drain"){return f.call(this,a,e)}if(x){return x.on(a,e)}d.push([a,e]);return this};function nocompress(a){p("no compression: %s",a);addListeners(o,f,d);d=null}t(o,(function onResponseHeaders(){if(!i(a,o)){nocompress("filtered");return}if(!shouldTransform(a,o)){nocompress("no transform");return}r(o,"Accept-Encoding");if(Number(o.getHeader("Content-Length"))<s||m<s){nocompress("size below threshold");return}var c=o.getHeader("Content-Encoding")||"identity";if(c!=="identity"){nocompress("already encoded");return}if(a.method==="HEAD"){nocompress("HEAD request");return}var t=n(a);var u=t.encoding(["gzip","deflate","identity"]);if(u==="deflate"&&t.encoding(["gzip"])){u=t.encoding(["gzip","identity"])}if(!u||u==="identity"){nocompress("not acceptable");return}p("%s compression",u);x=u==="gzip"?l.createGzip(e):l.createDeflate(e);addListeners(x,x.on,d);o.setHeader("Content-Encoding",u);o.removeHeader("Content-Length");x.on("data",(function onStreamData(a){if(b.call(o,a)===false){x.pause()}}));x.on("end",(function onStreamEnd(){v.call(o)}));f.call(o,"drain",(function onResponseDrain(){x.resume()}))}));c()}}function addListeners(a,e,i){for(var n=0;n<i.length;n++){e.apply(a,i[n])}}function chunkLength(a,e){if(!a){return 0}return!s.isBuffer(a)?s.byteLength(a,e):a.length}function shouldCompress(a,e){var i=e.getHeader("Content-Type");if(i===undefined||!c(i)){p("%s not compressible",i);return false}return true}function shouldTransform(a,e){var i=e.getHeader("Cache-Control");return!i||!u.test(i)}function toBuffer(a,e){return!s.isBuffer(a)?s.from(a,e):a}},183:(a,e,i)=>{ |
| 23 | /*! |
| 24 | * mime-db |
| 25 | * Copyright(c) 2014 Jonathan Ong |
nothing calls this directly
no test coverage detected