21 lines
630 B
TypeScript
21 lines
630 B
TypeScript
|
// Copyright 2021-2022 Signal Messenger, LLC
|
||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||
|
|
||
|
import { isRecord } from '../../util/isRecord';
|
||
|
import { HTTPError } from '../../textsecure/Errors';
|
||
|
import { parseRetryAfter } from '../../util/parseRetryAfter';
|
||
|
|
||
|
export function findRetryAfterTimeFromError(err: unknown): number {
|
||
|
let rawValue: unknown;
|
||
|
|
||
|
if (isRecord(err)) {
|
||
|
if (isRecord(err.responseHeaders)) {
|
||
|
rawValue = err.responseHeaders['retry-after'];
|
||
|
} else if (err.httpError instanceof HTTPError) {
|
||
|
rawValue = err.httpError.responseHeaders?.['retry-after'];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return parseRetryAfter(rawValue);
|
||
|
}
|