UNPKG

lago-javascript-client

Version:
72 lines (71 loc) 4.11 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.loggingRateLimitObserver = exports.DEFAULT_RATE_LIMIT_THRESHOLDS = exports.createRateLimitFetch = exports.rateLimitUsagePct = exports.parseRateLimitInfo = exports.parseRateLimitHeaders = exports.LagoRateLimitError = exports.getLagoError = exports.Client = void 0; // deno-lint-ignore-file no-explicit-any const client_js_1 = require("./openapi/client.js"); const rate_limit_fetch_js_1 = require("./rate_limit_fetch.js"); const Client = (apiKey, apiConfig) => { const { rateLimitRetry, ...restConfig } = apiConfig ?? {}; // Create rate-limit-aware fetch if configured const customFetch = rateLimitRetry ? (0, rate_limit_fetch_js_1.createRateLimitFetch)((restConfig?.customFetch ?? globalThis.fetch), rateLimitRetry) : restConfig?.customFetch; const api = new client_js_1.Api({ securityWorker: (apiKey) => apiKey ? { headers: { Authorization: `Bearer ${apiKey}` } } : {}, // Cloudflare Workers doesn't support some options like credentials so need to override default baseApiParams: { redirect: "follow", }, ...restConfig, ...(customFetch && { customFetch }), }); api.setSecurityData(apiKey); return api; }; exports.Client = Client; // https://github.com/remix-run/remix/blob/ef26f7671a9619966a6cfa3c39e196d44fbf32cf/packages/remix-server-runtime/responses.ts#L60 function isResponse(value) { return (value != null && typeof value.status === "number" && typeof value.statusText === "string" && typeof value.headers === "object" && typeof value.body !== "undefined"); } async function getLagoError(error) { if (isResponse(error)) { if (!error.bodyUsed) { const errorJson = await error.json(); return errorJson; } return error.error; } throw new Error(error); } exports.getLagoError = getLagoError; // Rate limit exports var rate_limit_error_js_1 = require("./rate_limit_error.js"); Object.defineProperty(exports, "LagoRateLimitError", { enumerable: true, get: function () { return rate_limit_error_js_1.LagoRateLimitError; } }); var rate_limit_headers_js_1 = require("./rate_limit_headers.js"); Object.defineProperty(exports, "parseRateLimitHeaders", { enumerable: true, get: function () { return rate_limit_headers_js_1.parseRateLimitHeaders; } }); Object.defineProperty(exports, "parseRateLimitInfo", { enumerable: true, get: function () { return rate_limit_headers_js_1.parseRateLimitInfo; } }); Object.defineProperty(exports, "rateLimitUsagePct", { enumerable: true, get: function () { return rate_limit_headers_js_1.rateLimitUsagePct; } }); var rate_limit_fetch_js_2 = require("./rate_limit_fetch.js"); Object.defineProperty(exports, "createRateLimitFetch", { enumerable: true, get: function () { return rate_limit_fetch_js_2.createRateLimitFetch; } }); var logging_rate_limit_observer_js_1 = require("./logging_rate_limit_observer.js"); Object.defineProperty(exports, "DEFAULT_RATE_LIMIT_THRESHOLDS", { enumerable: true, get: function () { return logging_rate_limit_observer_js_1.DEFAULT_RATE_LIMIT_THRESHOLDS; } }); Object.defineProperty(exports, "loggingRateLimitObserver", { enumerable: true, get: function () { return logging_rate_limit_observer_js_1.loggingRateLimitObserver; } }); __exportStar(require("./openapi/client.js"), exports);