UNPKG

@backstage/backend-defaults

Version:

Backend defaults used by Backstage backend apps

38 lines (34 loc) 1.02 kB
'use strict'; var rateLimitRedis = require('rate-limit-redis'); class RateLimitStoreFactory { static create(options) { const { config, prefix } = options; const store = config.getOptionalConfig("backend.rateLimit.store"); if (!store) { return void 0; } const type = store.getString("type"); switch (type) { case "redis": return this.redis({ store, prefix }); case "memory": default: return void 0; } } static redis(options) { const { store, prefix } = options; const connectionString = store.getString("connection"); const KeyvRedis = require("@keyv/redis").default; const keyv = new KeyvRedis(connectionString); return new rateLimitRedis.RedisStore({ prefix, sendCommand: async (...args) => { const client = await keyv.getClient(); return client.sendCommand(args); } }); } } exports.RateLimitStoreFactory = RateLimitStoreFactory; //# sourceMappingURL=RateLimitStoreFactory.cjs.js.map