client
Interfaces
CursorPaginationMeta
Defined in: src/client/index.ts:40
Properties
hasMore
hasMore: boolean;Defined in: src/client/index.ts:44
limit
limit: number;Defined in: src/client/index.ts:45
links?
optional links?: PaginationLinks;Defined in: src/client/index.ts:47
nextCursor
nextCursor: string | null;Defined in: src/client/index.ts:42
previousCursor
previousCursor: string | null;Defined in: src/client/index.ts:43
totalCount?
optional totalCount?: number;Defined in: src/client/index.ts:46
type
type: "cursor";Defined in: src/client/index.ts:41
DeprecationMeta
Defined in: src/client/index.ts:55
Properties
deprecated
deprecated: true;Defined in: src/client/index.ts:56
link?
optional link?: string;Defined in: src/client/index.ts:60
message?
optional message?: string;Defined in: src/client/index.ts:59
since?
optional since?: string;Defined in: src/client/index.ts:57
sunset?
optional sunset?: string;Defined in: src/client/index.ts:58
PaginationLinks
Defined in: src/client/index.ts:21
@nestarc/safe-response/client
Lightweight client-side types and type guards for consuming API responses. This module has ZERO runtime dependencies — no NestJS, no Swagger, no reflect-metadata.
Example
import type { SafeSuccessResponse, SafeErrorResponse } from '@nestarc/safe-response/client';
import { isSuccess, isError } from '@nestarc/safe-response/client';
const res = await fetch('/api/users').then(r => r.json());
if (isSuccess(res)) {
console.log(res.data);
}Properties
first
first: string;Defined in: src/client/index.ts:23
last
last: string | null;Defined in: src/client/index.ts:26
next
next: string | null;Defined in: src/client/index.ts:25
prev
prev: string | null;Defined in: src/client/index.ts:24
self
self: string;Defined in: src/client/index.ts:22
PaginationMeta
Defined in: src/client/index.ts:29
Properties
hasNext
hasNext: boolean;Defined in: src/client/index.ts:35
hasPrev
hasPrev: boolean;Defined in: src/client/index.ts:36
limit
limit: number;Defined in: src/client/index.ts:32
links?
optional links?: PaginationLinks;Defined in: src/client/index.ts:37
page
page: number;Defined in: src/client/index.ts:31
total
total: number;Defined in: src/client/index.ts:33
totalPages
totalPages: number;Defined in: src/client/index.ts:34
type?
optional type?: "offset";Defined in: src/client/index.ts:30
RateLimitMeta
Defined in: src/client/index.ts:63
Properties
limit
limit: number;Defined in: src/client/index.ts:64
remaining
remaining: number;Defined in: src/client/index.ts:65
reset
reset: number;Defined in: src/client/index.ts:66
retryAfter?
optional retryAfter?: number;Defined in: src/client/index.ts:67
ResponseMeta
Defined in: src/client/index.ts:70
Indexable
[key: string]: unknownProperties
apiVersion?
optional apiVersion?: string;Defined in: src/client/index.ts:78
deprecation?
optional deprecation?: DeprecationMeta;Defined in: src/client/index.ts:76
fields?
optional fields?: string[];Defined in: src/client/index.ts:79
filters?
optional filters?: Record<string, unknown>;Defined in: src/client/index.ts:75
message?
optional message?: string;Defined in: src/client/index.ts:72
pagination?
optional pagination?:
| PaginationMeta
| CursorPaginationMeta;Defined in: src/client/index.ts:71
rateLimit?
optional rateLimit?: RateLimitMeta;Defined in: src/client/index.ts:77
responseTime?
optional responseTime?: number;Defined in: src/client/index.ts:73
sort?
optional sort?: SortInfo;Defined in: src/client/index.ts:74
SafeErrorResponse
Defined in: src/client/index.ts:94
Properties
error
error: {
code: string;
details?: unknown;
message: string;
};Defined in: src/client/index.ts:98
code
code: string;details?
optional details?: unknown;message
message: string;meta?
optional meta?: {
[key: string]: unknown;
apiVersion?: string;
deprecation?: DeprecationMeta;
rateLimit?: RateLimitMeta;
responseTime?: number;
};Defined in: src/client/index.ts:103
Index Signature
[key: string]: unknownapiVersion?
optional apiVersion?: string;deprecation?
optional deprecation?: DeprecationMeta;rateLimit?
optional rateLimit?: RateLimitMeta;responseTime?
optional responseTime?: number;path?
optional path?: string;Defined in: src/client/index.ts:111
requestId?
optional requestId?: string;Defined in: src/client/index.ts:97
statusCode
statusCode: number;Defined in: src/client/index.ts:96
success
success: false;Defined in: src/client/index.ts:95
timestamp?
optional timestamp?: string;Defined in: src/client/index.ts:110
SafeProblemDetailsResponse
Defined in: src/client/index.ts:114
Properties
code?
optional code?: string;Defined in: src/client/index.ts:120
detail
detail: string;Defined in: src/client/index.ts:118
details?
optional details?: unknown;Defined in: src/client/index.ts:122
instance
instance: string;Defined in: src/client/index.ts:119
meta?
optional meta?: {
[key: string]: unknown;
apiVersion?: string;
deprecation?: DeprecationMeta;
rateLimit?: RateLimitMeta;
responseTime?: number;
};Defined in: src/client/index.ts:123
Index Signature
[key: string]: unknownapiVersion?
optional apiVersion?: string;deprecation?
optional deprecation?: DeprecationMeta;rateLimit?
optional rateLimit?: RateLimitMeta;responseTime?
optional responseTime?: number;requestId?
optional requestId?: string;Defined in: src/client/index.ts:121
status
status: number;Defined in: src/client/index.ts:117
title
title: string;Defined in: src/client/index.ts:116
type
type: string;Defined in: src/client/index.ts:115
SafeSuccessResponse
Defined in: src/client/index.ts:83
Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Properties
code?
optional code?: string;Defined in: src/client/index.ts:86
data
data: T;Defined in: src/client/index.ts:88
meta?
optional meta?: ResponseMeta;Defined in: src/client/index.ts:89
path?
optional path?: string;Defined in: src/client/index.ts:91
requestId?
optional requestId?: string;Defined in: src/client/index.ts:87
statusCode
statusCode: number;Defined in: src/client/index.ts:85
success
success: true;Defined in: src/client/index.ts:84
timestamp?
optional timestamp?: string;Defined in: src/client/index.ts:90
SortInfo
Defined in: src/client/index.ts:50
Properties
field
field: string;Defined in: src/client/index.ts:51
order
order: "asc" | "desc";Defined in: src/client/index.ts:52
Type Aliases
SafeAnyResponse
type SafeAnyResponse<T> =
| SafeSuccessResponse<T>
| SafeErrorResponse
| SafeProblemDetailsResponse;Defined in: src/client/index.ts:136
Broader union including RFC 9457 Problem Details (when problemDetails is enabled)
Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
SafeResponse
type SafeResponse<T> =
| SafeSuccessResponse<T>
| SafeErrorResponse;Defined in: src/client/index.ts:133
Union type for standard API responses (success or error envelope)
Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Functions
hasFieldSelection()
function hasFieldSelection(meta?): meta is ResponseMeta & { fields: string[] };Defined in: src/client/index.ts:225
Check if response meta contains field selection information
Parameters
| Parameter | Type |
|---|---|
meta? | ResponseMeta |
Returns
meta is ResponseMeta & { fields: string[] }
hasFilters()
function hasFilters(meta?): meta is ResponseMeta & { filters: Record<string, unknown> };Defined in: src/client/index.ts:206
Check if response meta contains filter information with valid shape
Parameters
| Parameter | Type |
|---|---|
meta? | ResponseMeta |
Returns
meta is ResponseMeta & { filters: Record<string, unknown> }
hasRateLimit()
function hasRateLimit(meta?): meta is ResponseMeta & { rateLimit: RateLimitMeta };Defined in: src/client/index.ts:237
Check if response meta contains rate limit information with valid shape
Parameters
| Parameter | Type |
|---|---|
meta? | ResponseMeta |
Returns
meta is ResponseMeta & { rateLimit: RateLimitMeta }
hasResponseTime()
function hasResponseTime(meta?): meta is ResponseMeta & { responseTime: number };Defined in: src/client/index.ts:187
Check if response meta contains a response time measurement
Parameters
| Parameter | Type |
|---|---|
meta? | | ResponseMeta | { [key: string]: unknown; responseTime?: number; } |
Returns
meta is ResponseMeta & { responseTime: number }
hasSort()
function hasSort(meta?): meta is ResponseMeta & { sort: SortInfo };Defined in: src/client/index.ts:194
Check if response meta contains sort information with valid shape
Parameters
| Parameter | Type |
|---|---|
meta? | ResponseMeta |
Returns
meta is ResponseMeta & { sort: SortInfo }
isCursorPagination()
function isCursorPagination(pagination): pagination is CursorPaginationMeta;Defined in: src/client/index.ts:165
Check if pagination is cursor-based
Parameters
| Parameter | Type |
|---|---|
pagination | | PaginationMeta | CursorPaginationMeta |
Returns
pagination is CursorPaginationMeta
isDeprecated()
function isDeprecated(meta?): meta is ResponseMeta & { deprecation: DeprecationMeta };Defined in: src/client/index.ts:218
Check if response meta indicates a deprecated endpoint
Parameters
| Parameter | Type |
|---|---|
meta? | ResponseMeta |
Returns
meta is ResponseMeta & { deprecation: DeprecationMeta }
isError()
function isError(res): res is SafeErrorResponse;Defined in: src/client/index.ts:148
Check if a response is an error response
Parameters
| Parameter | Type |
|---|---|
res | SafeResponse |
Returns
res is SafeErrorResponse
isOffsetPagination()
function isOffsetPagination(pagination): pagination is PaginationMeta;Defined in: src/client/index.ts:158
Check if pagination is offset-based
Parameters
| Parameter | Type |
|---|---|
pagination | | PaginationMeta | CursorPaginationMeta |
Returns
pagination is PaginationMeta
isPaginated()
function isPaginated(meta?): meta is ResponseMeta & { pagination: PaginationMeta | CursorPaginationMeta };Defined in: src/client/index.ts:153
Check if response meta contains pagination
Parameters
| Parameter | Type |
|---|---|
meta? | ResponseMeta |
Returns
meta is ResponseMeta & { pagination: PaginationMeta | CursorPaginationMeta }
isProblemDetailsResponse()
function isProblemDetailsResponse(res): res is SafeProblemDetailsResponse;Defined in: src/client/index.ts:172
Check if a response is an RFC 9457 Problem Details response
Parameters
| Parameter | Type |
|---|---|
res | unknown |
Returns
res is SafeProblemDetailsResponse
isSuccess()
function isSuccess<T>(res): res is SafeSuccessResponse<T>;Defined in: src/client/index.ts:141
Check if a response is a successful response
Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Parameters
| Parameter | Type |
|---|---|
res | SafeResponse<T> |
Returns
res is SafeSuccessResponse<T>