Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const core = require('@sentry/core'); const DEFAULT_TRANSPORT_BUFFER_SIZE = 30; class IsolatedPromiseBuffer { constructor(_bufferSize = DEFAULT_TRANSPORT_BUFFER_SIZE) { this.$ = []; this._taskProducers = []; this._bufferSize = _bufferSize; } /** * @inheritdoc */ add(taskProducer) { if (this._taskProducers.length >= this._bufferSize) { return Promise.reject(core.SENTRY_BUFFER_FULL_ERROR); } this._taskProducers.push(taskProducer); return Promise.resolve({}); } /** * @inheritdoc */ drain(timeout) { const oldTaskProducers = [...this._taskProducers]; this._taskProducers = []; return new Promise((resolve) => { const timer = setTimeout(() => { if (timeout && timeout > 0) { resolve(false); } }, timeout); Promise.all( oldTaskProducers.map( (taskProducer) => taskProducer().then(null, () => { }) ) ).then(() => { clearTimeout(timer); resolve(true); }); }); } } function makeCloudflareTransport(options) { function makeRequest(request) { const requestOptions = { body: request.body, method: "POST", headers: options.headers, ...options.fetchOptions }; return core.suppressTracing(() => { return (options.fetch ?? fetch)(options.url, requestOptions).then(async (response) => { try { await response.text(); } catch { } return { statusCode: response.status, headers: { "x-sentry-rate-limits": response.headers.get("X-Sentry-Rate-Limits"), "retry-after": response.headers.get("Retry-After") } }; }); }); } return core.createTransport(options, makeRequest, new IsolatedPromiseBuffer(options.bufferSize)); } exports.IsolatedPromiseBuffer = IsolatedPromiseBuffer; exports.makeCloudflareTransport = makeCloudflareTransport; //# sourceMappingURL=transport.js.map