UNPKG

@olakai/sdk

Version:

This document demonstrates how to use the Olakai SDK with all its features.

71 lines 3.03 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.applyMiddleware = applyMiddleware; const utils_1 = require("../utils"); __exportStar(require("./logging"), exports); __exportStar(require("./rateLimiter"), exports); __exportStar(require("./timeout"), exports); __exportStar(require("./caching"), exports); __exportStar(require("./circuitBreaker"), exports); __exportStar(require("./common"), exports); __exportStar(require("./transform"), exports); __exportStar(require("./custom"), exports); /** * Apply middleware to a function * @param middlewares - The middleware to apply * @param args - The arguments to pass to the function * @param action - The action to perform * @param result - The result of the function * @param error - The error of the function */ async function applyMiddleware(middlewares, args, action, result, error) { (0, utils_1.olakaiLogger)("Applying beforeCall middleware...", "info"); let processedArgs = args; let processedResult = result || null; try { for (const middleware of middlewares) { if (action === "beforeCall" && middleware.beforeCall) { const middlewareResult = await middleware.beforeCall(processedArgs); if (middlewareResult) { processedArgs = middlewareResult; } } else if (action === "afterCall" && middleware.afterCall && processedResult) { const middlewareResult = await middleware.afterCall(processedResult, processedArgs); if (middlewareResult) { processedResult = middlewareResult; } } else if (action === "error" && middleware.onError && error) { await middleware.onError(error, processedArgs); } } } catch (error) { (0, utils_1.olakaiLogger)(`Error during beforeCall middleware: ${error}. \n Continuing execution...`, "error"); throw error; } (0, utils_1.olakaiLogger)("BeforeCall middleware completed...", "info"); if (action === "beforeCall") { return processedArgs; } else if (action === "afterCall" && processedResult) { return processedResult; } throw new Error("Middleware returned null"); } //# sourceMappingURL=index.js.map