UNPKG

@sentry/core

Version:
45 lines (42 loc) • 2.1 kB
import { getClient } from '../currentScopes.js'; import { getServeTunnelForwarder, normalizeTunnelBasePath, setServedTunnel, getTunnelIgnoreSpanFilters } from './tunnel.js'; let managedTunnelDefaults; const tunnelForwarders = /* @__PURE__ */ new WeakMap(); const installedSpanFilters = /* @__PURE__ */ new WeakMap(); function setManagedTunnelDefaults(defaults) { managedTunnelDefaults = { ...managedTunnelDefaults, ...defaults.tunnel && { tunnel: defaults.tunnel, forward: defaults.forward }, ...defaults.basePath !== void 0 && { basePath: defaults.basePath } }; applyManagedTunnelDefaults(getClient()); } function enableManagedTunnel(client, tunnelOptions, forward) { client.getOptions()._managedTunnel = { ...tunnelOptions }; tunnelForwarders.set(client, forward); applyManagedTunnelDefaults(client); } function applyManagedTunnelDefaults(client) { const options = client?.getOptions(); const tunnelOptions = options?._managedTunnel ?? managedTunnelDefaults?.tunnel; const forward = client && (tunnelForwarders.get(client) ?? getServeTunnelForwarder(client) ?? managedTunnelDefaults?.forward); if (!client || !options || !tunnelOptions || !forward) { return; } const basePath = normalizeTunnelBasePath(managedTunnelDefaults?.basePath); const resolved = tunnelOptions.basePath === void 0 && !tunnelOptions.path && basePath ? { ...tunnelOptions, basePath } : tunnelOptions; options._managedTunnel = resolved; const { paths } = setServedTunnel(client, resolved, forward); const previousFilters = installedSpanFilters.get(client) ?? []; const spanFilters = getTunnelIgnoreSpanFilters(resolved, paths); options.ignoreSpans = [ ...(options.ignoreSpans ?? []).filter((filter) => !previousFilters.includes(filter)), ...spanFilters ]; installedSpanFilters.set(client, spanFilters); } function _INTERNAL_resetManagedTunnelDefaults() { managedTunnelDefaults = void 0; } export { _INTERNAL_resetManagedTunnelDefaults, applyManagedTunnelDefaults, enableManagedTunnel, setManagedTunnelDefaults }; //# sourceMappingURL=managedTunnelDefaults.js.map