@sentry/core
Version:
Base implementation for all Sentry JavaScript SDKs
50 lines (46 loc) • 2.28 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const currentScopes = require('../currentScopes.js');
const tunnel = require('./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(currentScopes.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) ?? tunnel.getServeTunnelForwarder(client) ?? managedTunnelDefaults?.forward);
if (!client || !options || !tunnelOptions || !forward) {
return;
}
const basePath = tunnel.normalizeTunnelBasePath(managedTunnelDefaults?.basePath);
const resolved = tunnelOptions.basePath === void 0 && !tunnelOptions.path && basePath ? { ...tunnelOptions, basePath } : tunnelOptions;
options._managedTunnel = resolved;
const { paths } = tunnel.setServedTunnel(client, resolved, forward);
const previousFilters = installedSpanFilters.get(client) ?? [];
const spanFilters = tunnel.getTunnelIgnoreSpanFilters(resolved, paths);
options.ignoreSpans = [
...(options.ignoreSpans ?? []).filter((filter) => !previousFilters.includes(filter)),
...spanFilters
];
installedSpanFilters.set(client, spanFilters);
}
function _INTERNAL_resetManagedTunnelDefaults() {
managedTunnelDefaults = void 0;
}
exports._INTERNAL_resetManagedTunnelDefaults = _INTERNAL_resetManagedTunnelDefaults;
exports.applyManagedTunnelDefaults = applyManagedTunnelDefaults;
exports.enableManagedTunnel = enableManagedTunnel;
exports.setManagedTunnelDefaults = setManagedTunnelDefaults;
//# sourceMappingURL=managedTunnelDefaults.js.map