5.0.8 • Published 2 years ago

@masx200/koa-stream-etag v5.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@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.

NPM version Build status Test coverage Dependency Status License Downloads

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");
});

License

MIT

5.0.6

2 years ago

5.0.5

2 years ago

5.0.8

2 years ago

5.0.7

2 years ago

5.0.4

3 years ago

5.0.3

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago