"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultAdapter = exports.baseFetchConfig = exports.itrToStream = exports.debug = void 0; // === Needed imports const http_1 = require("http"); const https_1 = require("https"); const stream_1 = require("stream"); // === Export debug const debug_1 = require("debug"); Object.defineProperty(exports, "debug", { enumerable: true, get: function () { return debug_1.debug; } }); // === Export system-specific operations // Turn an AsyncIterable into a stream const itrToStream = (itr) => stream_1.Readable.from(itr, { objectMode: false }); exports.itrToStream = itrToStream; // === Base configuration for `fetch` calls const httpAgents = new Map(); const httpsAgents = new Map(); function getCached(map, key, otherwise) { let value = map.get(key); if (value === undefined) { value = otherwise(); map.set(key, value); } return value; } function baseFetchConfig(apiRoot) { if (apiRoot.startsWith("https:")) { return { compress: true, agent: getCached(httpsAgents, apiRoot, () => new https_1.Agent({ keepAlive: true })), }; } else if (apiRoot.startsWith("http:")) { return { agent: getCached(httpAgents, apiRoot, () => new http_1.Agent({ keepAlive: true })), }; } else return {}; } exports.baseFetchConfig = baseFetchConfig; // === Default webhook adapter exports.defaultAdapter = "express";