lws-compress
Advanced tools
Comparing version 0.2.0 to 0.2.1
14
index.js
@@ -1,3 +0,1 @@ | ||
'use strict' | ||
module.exports = MiddlewareBase => class Compress extends MiddlewareBase { | ||
@@ -22,10 +20,12 @@ description () { | ||
} | ||
middleware(options) { | ||
middleware (options) { | ||
options = options || {} | ||
if (options.compress) { | ||
return require('koa-compress')({ | ||
threshold: options['compress.threshold'] | ||
}) | ||
const mwOptions = {} | ||
if (options.compress) mwOptions.compress = true | ||
if (options.compressThreshold) mwOptions.threshold = options.compressThreshold | ||
if (mwOptions.compress) { | ||
this.emit('verbose', 'middleware.compress.config', mwOptions) | ||
return require('koa-compress')(mwOptions) | ||
} | ||
} | ||
} |
{ | ||
"name": "lws-compress", | ||
"author": "Lloyd Brookes <75pound@gmail.com>", | ||
"version": "0.2.0", | ||
"description": "compress", | ||
"version": "0.2.1", | ||
"description": "Response compression middleware for lws", | ||
"repository": "https://github.com/lwsjs/compress.git", | ||
@@ -14,6 +14,13 @@ "license": "MIT", | ||
}, | ||
"scripts": {}, | ||
"scripts": { | ||
"test": "node test/test.js" | ||
}, | ||
"dependencies": { | ||
"koa-compress": "^2.0.0" | ||
}, | ||
"devDependencies": { | ||
"lws": "^1.0.0-pre2.2", | ||
"req-then": "^0.6.2", | ||
"test-runner": "^0.4.0" | ||
} | ||
} |
@@ -8,1 +8,7 @@ [![view on npm](https://img.shields.io/npm/v/lws-compress.svg)](https://www.npmjs.org/package/lws-compress) | ||
# lws-compress | ||
Response compression middleware for lws. For usage instructions, see [here](https://github.com/lwsjs/local-web-server/wiki/How-to-use-response-compression). | ||
* * * | ||
© 2017 Lloyd Brookes <75pound@gmail.com>. |
@@ -1,23 +0,33 @@ | ||
'use strict' | ||
const test = require('tape') | ||
const TestRunner = require('test-runner') | ||
const Compress = require('../') | ||
const Lws = require('lws') | ||
const request = require('req-then') | ||
const LocalWebServer = require('local-web-server') | ||
const url = require('url') | ||
const runner = new TestRunner() | ||
const a = require('assert') | ||
test('compress', function (t) { | ||
t.plan(2) | ||
const ws = new LocalWebServer({ | ||
stack: [ require('../'), require('local-web-server-static') ], | ||
port: 8100, | ||
runner.test('simple', async function () { | ||
const port = 8000 + this.index | ||
const lws = new Lws() | ||
const One = MiddlewareBase => class extends MiddlewareBase { | ||
middleware (options) { | ||
return async function (ctx, next) { | ||
await next() | ||
const fs = require('fs') | ||
ctx.body = fs.readFileSync('test/big-file.txt', 'utf8') | ||
} | ||
} | ||
} | ||
const server = lws.create({ | ||
port, | ||
stack: [ One, Compress ], | ||
compress: true | ||
}) | ||
ws.listen() | ||
.then(() => { | ||
request('http://localhost:8100/test/big-file.txt', { headers: { 'Accept-Encoding': 'gzip' } }) | ||
.then(response => { | ||
t.strictEqual(response.res.statusCode, 200) | ||
t.strictEqual(response.res.headers['content-encoding'], 'gzip') | ||
}) | ||
.then(ws.close.bind(ws)) | ||
.catch(err => t.fail('failed: ' + err.stack)) | ||
}) | ||
const reqOptions = url.parse(`http://localhost:${port}/`) | ||
reqOptions.headers = { | ||
'Accept-Encoding': 'gzip' | ||
} | ||
const response = await request(reqOptions) | ||
server.close() | ||
a.strictEqual(response.res.headers.vary, 'Accept-Encoding') | ||
}) |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
29891
62
14
3
2