console/packages/services/api/src/shared/errors.ts
Dimitri POSTOLOV 02469da474
[🔧 ESLint] fixes for no-implicit-coercion (#742)
Co-authored-by: Kamil Kisiela <kamil.kisiela@gmail.com>
2022-12-28 21:04:17 +01:00

33 lines
742 B
TypeScript

import { GraphQLError } from 'graphql';
import type { SchemaError } from '../__generated__/types';
export function toSchemaError(error: unknown): SchemaError {
if (isGraphQLError(error)) {
return {
message: error.message,
path: error.path?.map(i => (typeof i === 'number' ? String(i) : i)),
};
}
if (error instanceof Error) {
return {
message: error.message,
};
}
return {
message: error as string,
};
}
export function isGraphQLError(error: unknown): error is GraphQLError {
return error instanceof GraphQLError;
}
export const HiveError = GraphQLError;
export class AccessError extends HiveError {
constructor(reason: string) {
super(`No access (reason: "${reason}")`);
}
}