@resin/pinejs
Version:
Pine.js is a sophisticated rules-driven API engine that enables you to define rules in a structured subset of English. Those rules are used in order for Pine.js to generate a database schema and the associated [OData](http://www.odata.org/) API. This make
297 lines (251 loc) • 7.68 kB
text/typescript
import type { AnyObject } from './common-types';
import { TypedError } from 'typed-error';
export class PermissionError extends TypedError {}
export class PermissionParsingError extends TypedError {}
export class SqlCompilationError extends TypedError {}
export class SbvrValidationError extends TypedError {}
export class TranslationError extends TypedError {}
export class ParsingError extends TypedError {}
export { AnyObject };
export class HttpError extends TypedError {
constructor(
public status: number,
error: string | Error = '',
public body?: string | AnyObject,
) {
super(error);
}
public getResponseBody() {
return this.body !== undefined ? this.body : this.message;
}
}
export class BadRequestError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(400, error, body);
}
}
export class UnauthorizedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(401, error, body);
}
}
export class PaymentRequired extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(402, error, body);
}
}
export class ForbiddenError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(403, error, body);
}
}
export class NotFoundError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(404, error, body);
}
}
export class MethodNotAllowedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(405, error, body);
}
}
export class NotAcceptableError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(406, error, body);
}
}
export class ProxyAuthenticationRequiredError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(407, error, body);
}
}
export class RequestTimeoutError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(408, error, body);
}
}
export class ConflictError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(409, error, body);
}
}
export class GoneError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(410, error, body);
}
}
export class LengthRequiredError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(411, error, body);
}
}
export class PreconditionFailedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(412, error, body);
}
}
export class PayloadTooLargeError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(413, error, body);
}
}
export class URITooLongError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(414, error, body);
}
}
export class UnsupportedMediaTypeError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(415, error, body);
}
}
export class RequestedRangeNotSatisfiableError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(416, error, body);
}
}
export class ExpectationFailedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(417, error, body);
}
}
export class MisdirectedRequestError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(421, error, body);
}
}
export class UnprocessableEntityError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(422, error, body);
}
}
export class LockedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(423, error, body);
}
}
export class FailedDependencyError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(424, error, body);
}
}
export class UpgradeRequiredError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(426, error, body);
}
}
export class PreconditionRequiredError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(428, error, body);
}
}
export class TooManyRequestsError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(429, error, body);
}
}
export class RequestHeaderFieldsTooLargeError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(431, error, body);
}
}
export class UnavailableForLegalReasonsError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(451, error, body);
}
}
export class InternalRequestError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(500, error, body);
}
}
export class NotImplementedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(501, error, body);
}
}
export class BadGatewayError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(502, error, body);
}
}
export class ServiceUnavailableError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(503, error, body);
}
}
export class GatewayTimeoutError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(504, error, body);
}
}
export class HTTPVersionNotSupportedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(505, error, body);
}
}
export class VariantAlsoNegotiatesError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(506, error, body);
}
}
export class InsufficientStorageError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(507, error, body);
}
}
export class LoopDetectedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(508, error, body);
}
}
export class NotExtendedError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(510, error, body);
}
}
export class NetworkAuthenticationRequiredError extends HttpError {
constructor(error?: string | Error, body?: string | AnyObject) {
super(511, error, body);
}
}
export const statusCodeToError = {
400: BadRequestError,
401: UnauthorizedError,
402: PaymentRequired,
403: ForbiddenError,
404: NotFoundError,
405: MethodNotAllowedError,
406: NotAcceptableError,
407: ProxyAuthenticationRequiredError,
408: RequestTimeoutError,
409: ConflictError,
410: GoneError,
411: LengthRequiredError,
412: PreconditionFailedError,
413: PayloadTooLargeError,
414: URITooLongError,
415: UnsupportedMediaTypeError,
416: RequestedRangeNotSatisfiableError,
417: ExpectationFailedError,
421: MisdirectedRequestError,
422: UnprocessableEntityError,
423: LockedError,
424: FailedDependencyError,
426: UpgradeRequiredError,
428: PreconditionRequiredError,
429: TooManyRequestsError,
431: RequestHeaderFieldsTooLargeError,
451: UnavailableForLegalReasonsError,
500: InternalRequestError,
501: NotImplementedError,
502: BadGatewayError,
503: ServiceUnavailableError,
504: GatewayTimeoutError,
505: HTTPVersionNotSupportedError,
506: VariantAlsoNegotiatesError,
507: InsufficientStorageError,
508: LoopDetectedError,
510: NotExtendedError,
511: NetworkAuthenticationRequiredError,
};