UNPKG

node-hue-api

Version:
22 lines (21 loc) 923 B
"use strict"; 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;