@olakai/sdk
Version:
This document demonstrates how to use the Olakai SDK with all its features.
36 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCommonMiddleware = createCommonMiddleware;
const logging_1 = require("./logging");
const rateLimiter_1 = require("./rateLimiter");
const timeout_1 = require("./timeout");
const circuitBreaker_1 = require("./circuitBreaker");
/**
* Create a common middleware stack
* Stack details:
* 1. Logging middleware
* 2. Rate limiting middleware
* 3. Validation middleware
* 4. Circuit breaker middleware
* See exports from ./middleware/index.ts for details on each middleware.
* @param functionName - The name of the function to monitor. This is just for logging purposes.
* @param options - The options for the middleware
* @returns An array of middleware functions
*/
function createCommonMiddleware(functionName, options = {}) {
const middlewares = [];
if (options.enableLogging) {
middlewares.push((0, logging_1.createLoggingMiddleware)({}));
}
if (options.enableRateLimit) {
middlewares.push((0, rateLimiter_1.createRateLimitMiddleware)(options.enableRateLimit));
}
if (options.enableValidation) {
middlewares.push((0, timeout_1.createValidationMiddleware)(options.enableValidation));
}
if (options.enableCircuitBreaker) {
middlewares.push((0, circuitBreaker_1.createCircuitBreakerMiddleware)(options.enableCircuitBreaker));
}
return middlewares;
}
//# sourceMappingURL=common.js.map