@masx200/koa-stream-etag
TypeScript icon, indicating that this package has built-in type declarations

5.0.8 • Public • Published

@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

Package Sidebar

Install

npm i @masx200/koa-stream-etag

Weekly Downloads

18

Version

5.0.8

License

MIT

Unpacked Size

10.7 kB

Total Files

5

Last publish

Collaborators

  • masx200