near-protocol-rewards
Version:
A transparent, metric-based rewards system for NEAR projects
26 lines (25 loc) • 695 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseCollector = void 0;
class BaseCollector {
constructor(logger, rateLimiter) {
this.logger = logger;
this.rateLimiter = rateLimiter;
}
error(message, context) {
this.logger?.error(message, context);
}
async withRateLimit(fn) {
try {
await this.rateLimiter?.acquire();
const result = await fn();
await this.rateLimiter?.release();
return result;
}
catch (error) {
await this.rateLimiter?.release();
throw error;
}
}
}
exports.BaseCollector = BaseCollector;