signal-desktop/ts/textsecure/cds/RateLimitedError.ts

24 lines
650 B
TypeScript
Raw Normal View History

// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export type RateLimitedErrorPayloadType = Readonly<{
// eslint-disable-next-line camelcase
retry_after?: number;
}>;
export class RateLimitedError extends Error {
public readonly retryAfterSecs: number;
// eslint-disable-next-line camelcase
constructor({ retry_after }: RateLimitedErrorPayloadType) {
super(
'RateLimitedError: got 4008 close code from CDSI, ' +
// eslint-disable-next-line camelcase
`retry_after=${retry_after}`
);
// eslint-disable-next-line camelcase
this.retryAfterSecs = retry_after ?? 0;
}
}