All files / src errors.ts

0% Statements 0/34
0% Branches 0/1
0% Functions 0/1
0% Lines 0/34

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                                                           
export class AuthError extends Error {
	constructor(
		message: string,
		public statusCode = 401,
		public code?: string,
	) {
		super(message);
		this.name = "AuthError";
		if (Error.captureStackTrace) {
			Error.captureStackTrace(this, AuthError);
		}
	}
 
	toJSON() {
		return {
			error: this.message,
			code: this.code,
			statusCode: this.statusCode,
		};
	}
}
 
export class InsufficientRoleError extends AuthError {
	constructor(required: string[], actual: string) {
		super(`Insufficient role. Required: ${required.join(" or ")}, got: ${actual}`, 403, "INSUFFICIENT_ROLE");
	}
}
 
export class InsufficientScopesError extends AuthError {
	constructor(required: string[], actual: string[]) {
		super(
			`Missing scopes. Required: ${required.join(", ")}, got: ${actual.join(", ")}`,
			403,
			"INSUFFICIENT_SCOPES",
		);
	}
}