(
input: string,
init: RequestInit = {},
parentSignal?: AbortSignal
)
| 51 | } |
| 52 | |
| 53 | async function fetchDocusign( |
| 54 | input: string, |
| 55 | init: RequestInit = {}, |
| 56 | parentSignal?: AbortSignal |
| 57 | ): Promise<Response> { |
| 58 | const controller = new AbortController() |
| 59 | const timeout = setTimeout(() => { |
| 60 | controller.abort(new Error('DocuSign request timed out')) |
| 61 | }, DOCUSIGN_FETCH_TIMEOUT_MS) |
| 62 | const abort = () => controller.abort(parentSignal?.reason ?? new Error('Request aborted')) |
| 63 | parentSignal?.addEventListener('abort', abort, { once: true }) |
| 64 | |
| 65 | try { |
| 66 | return await fetch(input, { ...init, signal: controller.signal }) |
| 67 | } finally { |
| 68 | clearTimeout(timeout) |
| 69 | parentSignal?.removeEventListener('abort', abort) |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | /** |
| 74 | * Resolves the user's DocuSign account info from their access token |
no test coverage detected