Documentation Index
Fetch the complete documentation index at: https://mintlify.com/rifandani/be-monorepo/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Core Package exports various constants for use across the application. These include byte multipliers, timezone definitions, and HTTP status codes.
Core Constants
Import
import {
kilobyteMultiplier,
megabyteMultiplier,
gigabyteMultiplier,
indoTimezone
} from '@workspace/core/constants/core';
Byte Multipliers
Constants for converting between byte units.
Multiplier for converting bytes to kilobytes
Multiplier for converting bytes to megabytes (KB * KB)
gigabyteMultiplier
number
default:"1073741824"
Multiplier for converting bytes to gigabytes (MB * KB)
// Convert bytes to different units
const bytes = 5242880;
const kilobytes = bytes / kilobyteMultiplier;
console.log(`${kilobytes} KB`); // 5120 KB
const megabytes = bytes / megabyteMultiplier;
console.log(`${megabytes} MB`); // 5 MB
const gigabytes = bytes / gigabyteMultiplier;
console.log(`${gigabytes} GB`); // 0.0048828125 GB
Indonesian Timezones
Array of Indonesian timezone abbreviations.
indoTimezone
readonly ['WIB', 'WITA', 'WIT']
Array of Indonesian timezone codes:
- WIB: Western Indonesian Time (UTC+7)
- WITA: Central Indonesian Time (UTC+8)
- WIT: Eastern Indonesian Time (UTC+9)
// Check if a timezone is Indonesian
const timezone = 'WIB';
if (indoTimezone.includes(timezone as typeof indoTimezone[number])) {
console.log('This is an Indonesian timezone');
}
// Iterate over timezones
indoTimezone.forEach(tz => {
console.log(`Timezone: ${tz}`);
});
// Output:
// Timezone: WIB
// Timezone: WITA
// Timezone: WIT
HTTP Constants
Import
import {
HTTP_STATUS_CODES,
type StatusCode,
type SuccessStatusCode,
type ClientErrorStatusCode,
type ServerErrorStatusCode
} from '@workspace/core/constants/http';
HTTP Status Codes
Commonly used HTTP status code constants.
HTTP_STATUS_CODES.BAD_REQUEST
Client sent a malformed request
HTTP_STATUS_CODES.UNAUTHORIZED
Authentication is required
HTTP_STATUS_CODES.FORBIDDEN
Client lacks permission
HTTP_STATUS_CODES.NOT_FOUND
Resource not found
HTTP_STATUS_CODES.METHOD_NOT_ALLOWED
HTTP method not supported
HTTP_STATUS_CODES.PRECONDITION_FAILED
One or more preconditions failed
HTTP_STATUS_CODES.UNPROCESSABLE_ENTITY
Validation error
HTTP_STATUS_CODES.TOO_MANY_REQUESTS
Rate limit exceeded
HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR
Generic server error
HTTP_STATUS_CODES.NOT_IMPLEMENTED
Server doesn’t support this functionality
HTTP_STATUS_CODES.BAD_GATEWAY
Invalid response from upstream server
HTTP_STATUS_CODES.SERVICE_UNAVAILABLE
Server is temporarily unavailable
HTTP_STATUS_CODES.GATEWAY_TIMEOUT
Upstream server timeout
// Use in error handling
if (response.status === HTTP_STATUS_CODES.UNAUTHORIZED) {
console.log('User needs to log in');
redirectToLogin();
}
if (response.status === HTTP_STATUS_CODES.NOT_FOUND) {
console.log('Resource not found');
}
if (response.status === HTTP_STATUS_CODES.TOO_MANY_REQUESTS) {
console.log('Rate limited, please wait');
}
HTTP Status Code Types
Type definitions for categorizing HTTP status codes.
InfoStatusCode
Informational responses (100-103).
type InfoStatusCode = 100 | 101 | 102 | 103;
SuccessStatusCode
Successful responses (200-208, 226).
type SuccessStatusCode =
| 200 // OK
| 201 // Created
| 202 // Accepted
| 203 // Non-Authoritative Information
| 204 // No Content
| 205 // Reset Content
| 206 // Partial Content
| 207 // Multi-Status
| 208 // Already Reported
| 226; // IM Used
RedirectStatusCode
Redirection responses (300-308).
type RedirectStatusCode =
| 300 // Multiple Choices
| 301 // Moved Permanently
| 302 // Found
| 303 // See Other
| 304 // Not Modified
| 307 // Temporary Redirect
| 308; // Permanent Redirect
ClientErrorStatusCode
Client error responses (400-451).
type ClientErrorStatusCode =
| 400 // Bad Request
| 401 // Unauthorized
| 403 // Forbidden
| 404 // Not Found
| 405 // Method Not Allowed
// ... and more
| 429 // Too Many Requests
| 451; // Unavailable For Legal Reasons
ServerErrorStatusCode
Server error responses (500-511).
type ServerErrorStatusCode =
| 500 // Internal Server Error
| 501 // Not Implemented
| 502 // Bad Gateway
| 503 // Service Unavailable
| 504 // Gateway Timeout
| 505 // HTTP Version Not Supported
| 506 // Variant Also Negotiates
| 507 // Insufficient Storage
| 508 // Loop Detected
| 510 // Not Extended
| 511; // Network Authentication Required
StatusCode
Union of all status code types.
type StatusCode =
| InfoStatusCode
| SuccessStatusCode
| RedirectStatusCode
| ClientErrorStatusCode
| ServerErrorStatusCode
| UnofficialStatusCode;
UnofficialStatusCode
Type for unofficial or custom status codes.
type UnofficialStatusCode = -1;
// Example usage
const customStatus = 520 as UnofficialStatusCode;
ContentlessStatusCode
Status codes that should not have a response body.
type ContentlessStatusCode = 101 | 204 | 205 | 304;
ContentfulStatusCode
Status codes that can have a response body.
type ContentfulStatusCode = Exclude<StatusCode, ContentlessStatusCode>;
Type Guards
Utility functions for checking status code types:
function isSuccessStatus(status: number): status is SuccessStatusCode {
return status >= 200 && status < 300;
}
function isClientError(status: number): status is ClientErrorStatusCode {
return status >= 400 && status < 500;
}
function isServerError(status: number): status is ServerErrorStatusCode {
return status >= 500 && status < 600;
}
// Usage
const status = response.status;
if (isSuccessStatus(status)) {
console.log('Success!');
} else if (isClientError(status)) {
console.log('Client error');
} else if (isServerError(status)) {
console.log('Server error');
}