Skip to content

AirDwing/kdu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kdu

koa-data-usage

github npm npm npm

Usage

Install

yarn add kdu
# or
npm i -S kdu

Use

// Source: ./kdu.js
const assert = require('assert');

module.exports = (handler) => {
  if (handler) {
    assert(typeof handler === 'function', 'Error Handler Require Function');
  }

  return async (ctx, next) => {
    const result = await next();
    if (ctx.request.url === '/favicon.ico') {
      return result;
    }
    const len = typeof ctx.body === 'object' ? JSON.stringify(ctx.body).length : ctx.body.length;
    await handler(ctx, len);
    return result;
  };
};
// Example:
const Koa = require('koa');
const kdu = require('./kdu');

const handler = async (len) => {
  console.log(len); // bytes
};
const app = new Koa();
app.use(kdu(handler));
app.use((ctx) => {
  ctx.body = {
    status: 1,
    data: 'Hello World'
  };
});

app.listen(3000);

License

MIT

Donate Via Alipay:

qr

Releases

No releases published

Packages

No packages published