Apply more strict typescript around the codebase (#2778)
* Apply more strict typescript around the codebase * Fix tests * Revert strict mode commit * Iterate strict * Iterate * Iterate strict * Iterate * Fix tests * Iterate * Iterate strict * Add tests * Iterate * Iterate * Fix tests * Fix tests * Strict types be strict * Fix types * detectOpenHandles * Strict * Fix client not stopping * Add sync peeking tests * Make test happier * More strict * Iterate * Stabilise * Moar strictness * Improve coverage * Fix types * Fix types * Improve types further * Fix types * Improve typing of NamespacedValue * Fix types
This commit is contained in:
committed by
GitHub
parent
fdbbd9bca4
commit
867a0ca7ee
@@ -15,6 +15,7 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
import { IUsageLimit } from "../@types/partials";
|
||||
import { MatrixEvent } from "../models/event";
|
||||
|
||||
interface IErrorJson extends Partial<IUsageLimit> {
|
||||
[key: string]: any; // extensible
|
||||
@@ -50,7 +51,12 @@ export class MatrixError extends HTTPError {
|
||||
public readonly errcode?: string;
|
||||
public readonly data: IErrorJson;
|
||||
|
||||
constructor(errorJson: IErrorJson = {}, public readonly httpStatus?: number, public url?: string) {
|
||||
constructor(
|
||||
errorJson: IErrorJson = {},
|
||||
public readonly httpStatus?: number,
|
||||
public url?: string,
|
||||
public event?: MatrixEvent,
|
||||
) {
|
||||
let message = errorJson.error || "Unknown message";
|
||||
if (httpStatus) {
|
||||
message = `[${httpStatus}] ${message}`;
|
||||
|
||||
@@ -73,7 +73,7 @@ export class FetchHttpApi<O extends IHttpOpts> {
|
||||
public idServerRequest<T extends {}>(
|
||||
method: Method,
|
||||
path: string,
|
||||
params: Record<string, string | string[]>,
|
||||
params: Record<string, string | string[]> | undefined,
|
||||
prefix: string,
|
||||
accessToken?: string,
|
||||
): Promise<ResponseType<T, O>> {
|
||||
@@ -96,7 +96,7 @@ export class FetchHttpApi<O extends IHttpOpts> {
|
||||
headers: {},
|
||||
};
|
||||
if (accessToken) {
|
||||
opts.headers.Authorization = `Bearer ${accessToken}`;
|
||||
opts.headers!.Authorization = `Bearer ${accessToken}`;
|
||||
}
|
||||
|
||||
return this.requestOtherUrl(method, fullUri, body, opts);
|
||||
@@ -286,10 +286,10 @@ export class FetchHttpApi<O extends IHttpOpts> {
|
||||
credentials: "omit", // we send credentials via headers
|
||||
});
|
||||
} catch (e) {
|
||||
if (e.name === "AbortError") {
|
||||
if ((<Error>e).name === "AbortError") {
|
||||
throw e;
|
||||
}
|
||||
throw new ConnectionError("fetch failed", e);
|
||||
throw new ConnectionError("fetch failed", <Error>e);
|
||||
} finally {
|
||||
cleanup();
|
||||
}
|
||||
|
||||
@@ -72,11 +72,11 @@ export function anySignal(signals: AbortSignal[]): {
|
||||
* @returns {Error}
|
||||
*/
|
||||
export function parseErrorResponse(response: XMLHttpRequest | Response, body?: string): Error {
|
||||
let contentType: ParsedMediaType;
|
||||
let contentType: ParsedMediaType | null;
|
||||
try {
|
||||
contentType = getResponseContentType(response);
|
||||
} catch (e) {
|
||||
return e;
|
||||
return <Error>e;
|
||||
}
|
||||
|
||||
if (contentType?.type === "application/json" && body) {
|
||||
|
||||
Reference in New Issue
Block a user