@masx200/koa-stream-etag
v5.0.8
Published
stream ETag support for koa
Downloads
113
Maintainers
Readme
@masx200/koa-stream-etag
forked from https://github.com/koajs/etag
If the response of the koa server is a stream without a path, the response header of etag can also be generated,The etag response header is generated by converting stream to buffer for etag calculation.
stream Etag support for Koa responses using etag.
Installation
npm
$ npm install @masx200/koa-stream-etag
yarn
$ yarn add @masx200/koa-stream-etag
API
var etag = require("@masx200/koa-stream-etag");
etag([options])
Its return value is a koa middleware.
Generate a strong ETag for the given entity. This should be the complete body of the entity. Strings, Buffers, and fs.Stats are accepted. By default, a strong ETag is generated except for fs.Stats, which will generate a weak ETag (this can be overwritten by options.weak).
var options = { weak: false, sizelimit: 1000 * 1024 };
app.use(etag(options));
Options
etag accepts these properties in the options object.
weak
Specifies if the generated ETag will include the weak validator mark (that is, the leading W/). The actual entity tag is the same. The default value is false, unless the entity is fs.Stats, in which case it is true.
sizelimit
Its unit is byte.If the size of the stream is smaller than the'sizelimit', the etag response header will be generated,by converting stream to buffer for etag calculation.
Example
const conditional = require("koa-conditional-get");
const etag = require("@masx200/koa-stream-etag");
const Koa = require("koa");
const app = new Koa();
// etag works together with conditional-get
app.use(conditional());
app.use(etag({}));
app.use(function (ctx) {
ctx.body = "Hello World";
});
app.listen(3000, () => {
console.log("listening on port 3000");
});