summaryrefslogtreecommitdiff
path: root/packages/astro/src/actions/runtime/virtual/shared.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/astro/src/actions/runtime/virtual/shared.ts')
-rw-r--r--packages/astro/src/actions/runtime/virtual/shared.ts66
1 files changed, 58 insertions, 8 deletions
diff --git a/packages/astro/src/actions/runtime/virtual/shared.ts b/packages/astro/src/actions/runtime/virtual/shared.ts
index c9df7969f..479bab4e6 100644
--- a/packages/astro/src/actions/runtime/virtual/shared.ts
+++ b/packages/astro/src/actions/runtime/virtual/shared.ts
@@ -22,37 +22,87 @@ export const appendForwardSlash = _appendForwardSlash;
export const ACTION_ERROR_CODES = [
'BAD_REQUEST',
'UNAUTHORIZED',
+ 'PAYMENT_REQUIRED',
'FORBIDDEN',
'NOT_FOUND',
- 'TIMEOUT',
+ 'METHOD_NOT_ALLOWED',
+ 'NOT_ACCEPTABLE',
+ 'PROXY_AUTHENTICATION_REQUIRED',
+ 'REQUEST_TIMEOUT',
'CONFLICT',
+ 'GONE',
+ 'LENGTH_REQUIRED',
'PRECONDITION_FAILED',
- 'PAYLOAD_TOO_LARGE',
+ 'CONTENT_TOO_LARGE',
+ 'URI_TOO_LONG',
'UNSUPPORTED_MEDIA_TYPE',
+ 'RANGE_NOT_SATISFIABLE',
+ 'EXPECTATION_FAILED',
+ 'MISDIRECTED_REQUEST',
'UNPROCESSABLE_CONTENT',
+ 'LOCKED',
+ 'FAILED_DEPENDENCY',
+ 'TOO_EARLY',
+ 'UPGRADE_REQUIRED',
+ 'PRECONDITION_REQUIRED',
'TOO_MANY_REQUESTS',
- 'CLIENT_CLOSED_REQUEST',
+ 'REQUEST_HEADER_FIELDS_TOO_LARGE',
+ 'UNAVAILABLE_FOR_LEGAL_REASONS',
'INTERNAL_SERVER_ERROR',
+ 'NOT_IMPLEMENTED',
+ 'BAD_GATEWAY',
+ 'SERVICE_UNAVAILABLE',
+ 'GATEWAY_TIMEOUT',
+ 'HTTP_VERSION_NOT_SUPPORTED',
+ 'VARIANT_ALSO_NEGOTIATES',
+ 'INSUFFICIENT_STORAGE',
+ 'LOOP_DETECTED',
+ 'NETWORK_AUTHENTICATION_REQUIRED',
] as const;
export type ActionErrorCode = (typeof ACTION_ERROR_CODES)[number];
const codeToStatusMap: Record<ActionErrorCode, number> = {
- // Implemented from tRPC error code table
- // https://trpc.io/docs/server/error-handling#error-codes
+ // Implemented from IANA HTTP Status Code Registry
+ // https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
BAD_REQUEST: 400,
UNAUTHORIZED: 401,
+ PAYMENT_REQUIRED: 402,
FORBIDDEN: 403,
NOT_FOUND: 404,
- TIMEOUT: 405,
+ METHOD_NOT_ALLOWED: 405,
+ NOT_ACCEPTABLE: 406,
+ PROXY_AUTHENTICATION_REQUIRED: 407,
+ REQUEST_TIMEOUT: 408,
CONFLICT: 409,
+ GONE: 410,
+ LENGTH_REQUIRED: 411,
PRECONDITION_FAILED: 412,
- PAYLOAD_TOO_LARGE: 413,
+ CONTENT_TOO_LARGE: 413,
+ URI_TOO_LONG: 414,
UNSUPPORTED_MEDIA_TYPE: 415,
+ RANGE_NOT_SATISFIABLE: 416,
+ EXPECTATION_FAILED: 417,
+ MISDIRECTED_REQUEST: 421,
UNPROCESSABLE_CONTENT: 422,
+ LOCKED: 423,
+ FAILED_DEPENDENCY: 424,
+ TOO_EARLY: 425,
+ UPGRADE_REQUIRED: 426,
+ PRECONDITION_REQUIRED: 428,
TOO_MANY_REQUESTS: 429,
- CLIENT_CLOSED_REQUEST: 499,
+ REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
+ UNAVAILABLE_FOR_LEGAL_REASONS: 451,
INTERNAL_SERVER_ERROR: 500,
+ NOT_IMPLEMENTED: 501,
+ BAD_GATEWAY: 502,
+ SERVICE_UNAVAILABLE: 503,
+ GATEWAY_TIMEOUT: 504,
+ HTTP_VERSION_NOT_SUPPORTED: 505,
+ VARIANT_ALSO_NEGOTIATES: 506,
+ INSUFFICIENT_STORAGE: 507,
+ LOOP_DETECTED: 508,
+ NETWORK_AUTHENTICATION_REQUIRED: 511,
};
const statusToCodeMap: Record<number, ActionErrorCode> = Object.entries(codeToStatusMap).reduce(