aggregate-base
Base class for aggregate operation, sush as http request, write file.
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() {
}
}
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() {
}
}
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