aggregate-base

1.2.0 • Public • Published

aggregate-base

Base class for aggregate operation, sush as http request, write file.

NPM version build status Test coverage David deps Known Vulnerabilities NPM download

Usage

npm i aggregate-base --save

You can wrap Class for aggregate operation, if you have a Logger that write log to file.

class Logger {
  info(log) {
    this.writeToFile(log);
  }
 
  writeToFile() {
    // your implementation
  }
}

However, it has bad performance that write file system every function call, so you can use this module to merge the operations.

const { wrap } = require('aggregate-base');
 
class Logger {
  info(log) {
    this.writeToFile(log);
  }
 
  flush(logs) {
    this.writeToFile(logs.join('\n'));
  }
 
  writeToFile() {
    // your implementation
  }
}
 
const WrapLogger = wrap(Logger, {
  interval: 1000,
  intercept: 'info',
  flush: 'flush',
});

The module will create a loop (configured by interval), it will collect data by intercepting the specified intercept method, and call flush method after interval with all collected data.

Options

  • interval: the time between flush
  • intercept: the intercept method name of class, the method will not be run.
  • interceptTransform: the function that can tranform the arguments of intercept method, if it return false, it won't cache this data
  • flush: the flush method name of class.
  • close: the close method name of class, it should be a async function.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i aggregate-base

Weekly Downloads

16

Version

1.2.0

License

MIT

Unpacked Size

8.78 kB

Total Files

5

Last publish

Collaborators

  • popomore