node-hue-api
Version:
Philips Hue API Library for Node.js
22 lines (21 loc) • 923 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.HueRateLimiter = void 0;
const bottleneck_1 = __importDefault(require("bottleneck"));
const HueApiRateLimitLogger_1 = require("./HueApiRateLimitLogger");
class HueRateLimiter {
constructor(bridgeName, name, rateLimit) {
this.id = 0;
this.limiterName = `${bridgeName.trim().length > 0 ? bridgeName : 'node-hue-api'}:${name}`;
this.bottleneck = new bottleneck_1.default(rateLimit || undefined);
HueApiRateLimitLogger_1.HueApiRateLimitLogger.install(name, this.bottleneck);
}
schedule(fn) {
const jobId = this.id++;
return this.bottleneck.schedule({ id: `${this.limiterName}:${jobId}` }, fn);
}
}
exports.HueRateLimiter = HueRateLimiter;