Skip to content

client

Interfaces

CursorPaginationMeta

Defined in: src/client/index.ts:40

Properties

hasMore
ts
hasMore: boolean;

Defined in: src/client/index.ts:44

limit
ts
limit: number;

Defined in: src/client/index.ts:45

ts
optional links?: PaginationLinks;

Defined in: src/client/index.ts:47

nextCursor
ts
nextCursor: string | null;

Defined in: src/client/index.ts:42

previousCursor
ts
previousCursor: string | null;

Defined in: src/client/index.ts:43

totalCount?
ts
optional totalCount?: number;

Defined in: src/client/index.ts:46

type
ts
type: "cursor";

Defined in: src/client/index.ts:41


DeprecationMeta

Defined in: src/client/index.ts:55

Properties

deprecated
ts
deprecated: true;

Defined in: src/client/index.ts:56

ts
optional link?: string;

Defined in: src/client/index.ts:60

message?
ts
optional message?: string;

Defined in: src/client/index.ts:59

since?
ts
optional since?: string;

Defined in: src/client/index.ts:57

sunset?
ts
optional sunset?: string;

Defined in: src/client/index.ts:58


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

typescript
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
ts
first: string;

Defined in: src/client/index.ts:23

last
ts
last: string | null;

Defined in: src/client/index.ts:26

next
ts
next: string | null;

Defined in: src/client/index.ts:25

prev
ts
prev: string | null;

Defined in: src/client/index.ts:24

self
ts
self: string;

Defined in: src/client/index.ts:22


PaginationMeta

Defined in: src/client/index.ts:29

Properties

hasNext
ts
hasNext: boolean;

Defined in: src/client/index.ts:35

hasPrev
ts
hasPrev: boolean;

Defined in: src/client/index.ts:36

limit
ts
limit: number;

Defined in: src/client/index.ts:32

ts
optional links?: PaginationLinks;

Defined in: src/client/index.ts:37

page
ts
page: number;

Defined in: src/client/index.ts:31

total
ts
total: number;

Defined in: src/client/index.ts:33

totalPages
ts
totalPages: number;

Defined in: src/client/index.ts:34

type?
ts
optional type?: "offset";

Defined in: src/client/index.ts:30


RateLimitMeta

Defined in: src/client/index.ts:63

Properties

limit
ts
limit: number;

Defined in: src/client/index.ts:64

remaining
ts
remaining: number;

Defined in: src/client/index.ts:65

reset
ts
reset: number;

Defined in: src/client/index.ts:66

retryAfter?
ts
optional retryAfter?: number;

Defined in: src/client/index.ts:67


ResponseMeta

Defined in: src/client/index.ts:70

Indexable

ts
[key: string]: unknown

Properties

deprecation?
ts
optional deprecation?: DeprecationMeta;

Defined in: src/client/index.ts:76

filters?
ts
optional filters?: Record<string, unknown>;

Defined in: src/client/index.ts:75

message?
ts
optional message?: string;

Defined in: src/client/index.ts:72

pagination?
ts
optional pagination?: 
  | PaginationMeta
  | CursorPaginationMeta;

Defined in: src/client/index.ts:71

rateLimit?
ts
optional rateLimit?: RateLimitMeta;

Defined in: src/client/index.ts:77

responseTime?
ts
optional responseTime?: number;

Defined in: src/client/index.ts:73

sort?
ts
optional sort?: SortInfo;

Defined in: src/client/index.ts:74


SafeErrorResponse

Defined in: src/client/index.ts:92

Properties

error
ts
error: {
  code: string;
  details?: unknown;
  message: string;
};

Defined in: src/client/index.ts:96

code
ts
code: string;
details?
ts
optional details?: unknown;
message
ts
message: string;
meta?
ts
optional meta?: {
[key: string]: unknown;
  deprecation?: DeprecationMeta;
  rateLimit?: RateLimitMeta;
  responseTime?: number;
};

Defined in: src/client/index.ts:101

Index Signature
ts
[key: string]: unknown
deprecation?
ts
optional deprecation?: DeprecationMeta;
rateLimit?
ts
optional rateLimit?: RateLimitMeta;
responseTime?
ts
optional responseTime?: number;
path?
ts
optional path?: string;

Defined in: src/client/index.ts:108

requestId?
ts
optional requestId?: string;

Defined in: src/client/index.ts:95

statusCode
ts
statusCode: number;

Defined in: src/client/index.ts:94

success
ts
success: false;

Defined in: src/client/index.ts:93

timestamp?
ts
optional timestamp?: string;

Defined in: src/client/index.ts:107


SafeProblemDetailsResponse

Defined in: src/client/index.ts:111

Properties

code?
ts
optional code?: string;

Defined in: src/client/index.ts:117

detail
ts
detail: string;

Defined in: src/client/index.ts:115

details?
ts
optional details?: unknown;

Defined in: src/client/index.ts:119

instance
ts
instance: string;

Defined in: src/client/index.ts:116

meta?
ts
optional meta?: {
[key: string]: unknown;
  deprecation?: DeprecationMeta;
  rateLimit?: RateLimitMeta;
  responseTime?: number;
};

Defined in: src/client/index.ts:120

Index Signature
ts
[key: string]: unknown
deprecation?
ts
optional deprecation?: DeprecationMeta;
rateLimit?
ts
optional rateLimit?: RateLimitMeta;
responseTime?
ts
optional responseTime?: number;
requestId?
ts
optional requestId?: string;

Defined in: src/client/index.ts:118

status
ts
status: number;

Defined in: src/client/index.ts:114

title
ts
title: string;

Defined in: src/client/index.ts:113

type
ts
type: string;

Defined in: src/client/index.ts:112


SafeSuccessResponse

Defined in: src/client/index.ts:81

Type Parameters

Type ParameterDefault type
Tunknown

Properties

code?
ts
optional code?: string;

Defined in: src/client/index.ts:84

data
ts
data: T;

Defined in: src/client/index.ts:86

meta?
ts
optional meta?: ResponseMeta;

Defined in: src/client/index.ts:87

path?
ts
optional path?: string;

Defined in: src/client/index.ts:89

requestId?
ts
optional requestId?: string;

Defined in: src/client/index.ts:85

statusCode
ts
statusCode: number;

Defined in: src/client/index.ts:83

success
ts
success: true;

Defined in: src/client/index.ts:82

timestamp?
ts
optional timestamp?: string;

Defined in: src/client/index.ts:88


SortInfo

Defined in: src/client/index.ts:50

Properties

field
ts
field: string;

Defined in: src/client/index.ts:51

order
ts
order: "asc" | "desc";

Defined in: src/client/index.ts:52

Type Aliases

SafeAnyResponse

ts
type SafeAnyResponse<T> = 
  | SafeSuccessResponse<T>
  | SafeErrorResponse
  | SafeProblemDetailsResponse;

Defined in: src/client/index.ts:132

Broader union including RFC 9457 Problem Details (when problemDetails is enabled)

Type Parameters

Type ParameterDefault type
Tunknown

SafeResponse

ts
type SafeResponse<T> = 
  | SafeSuccessResponse<T>
  | SafeErrorResponse;

Defined in: src/client/index.ts:129

Union type for standard API responses (success or error envelope)

Type Parameters

Type ParameterDefault type
Tunknown

Functions

hasFilters()

ts
function hasFilters(meta?): meta is ResponseMeta & { filters: Record<string, unknown> };

Defined in: src/client/index.ts:202

Check if response meta contains filter information with valid shape

Parameters

ParameterType
meta?ResponseMeta

Returns

meta is ResponseMeta & { filters: Record<string, unknown> }


hasRateLimit()

ts
function hasRateLimit(meta?): meta is ResponseMeta & { rateLimit: RateLimitMeta };

Defined in: src/client/index.ts:221

Check if response meta contains rate limit information with valid shape

Parameters

ParameterType
meta?ResponseMeta

Returns

meta is ResponseMeta & { rateLimit: RateLimitMeta }


hasResponseTime()

ts
function hasResponseTime(meta?): meta is ResponseMeta & { responseTime: number };

Defined in: src/client/index.ts:183

Check if response meta contains a response time measurement

Parameters

ParameterType
meta?| ResponseMeta | { [key: string]: unknown; responseTime?: number; }

Returns

meta is ResponseMeta & { responseTime: number }


hasSort()

ts
function hasSort(meta?): meta is ResponseMeta & { sort: SortInfo };

Defined in: src/client/index.ts:190

Check if response meta contains sort information with valid shape

Parameters

ParameterType
meta?ResponseMeta

Returns

meta is ResponseMeta & { sort: SortInfo }


isCursorPagination()

ts
function isCursorPagination(pagination): pagination is CursorPaginationMeta;

Defined in: src/client/index.ts:161

Check if pagination is cursor-based

Parameters

ParameterType
pagination| PaginationMeta | CursorPaginationMeta

Returns

pagination is CursorPaginationMeta


isDeprecated()

ts
function isDeprecated(meta?): meta is ResponseMeta & { deprecation: DeprecationMeta };

Defined in: src/client/index.ts:214

Check if response meta indicates a deprecated endpoint

Parameters

ParameterType
meta?ResponseMeta

Returns

meta is ResponseMeta & { deprecation: DeprecationMeta }


isError()

ts
function isError(res): res is SafeErrorResponse;

Defined in: src/client/index.ts:144

Check if a response is an error response

Parameters

ParameterType
resSafeResponse

Returns

res is SafeErrorResponse


isOffsetPagination()

ts
function isOffsetPagination(pagination): pagination is PaginationMeta;

Defined in: src/client/index.ts:154

Check if pagination is offset-based

Parameters

ParameterType
pagination| PaginationMeta | CursorPaginationMeta

Returns

pagination is PaginationMeta


isPaginated()

ts
function isPaginated(meta?): meta is ResponseMeta & { pagination: PaginationMeta | CursorPaginationMeta };

Defined in: src/client/index.ts:149

Check if response meta contains pagination

Parameters

ParameterType
meta?ResponseMeta

Returns

meta is ResponseMeta & { pagination: PaginationMeta | CursorPaginationMeta }


isProblemDetailsResponse()

ts
function isProblemDetailsResponse(res): res is SafeProblemDetailsResponse;

Defined in: src/client/index.ts:168

Check if a response is an RFC 9457 Problem Details response

Parameters

ParameterType
resunknown

Returns

res is SafeProblemDetailsResponse


isSuccess()

ts
function isSuccess<T>(res): res is SafeSuccessResponse<T>;

Defined in: src/client/index.ts:137

Check if a response is a successful response

Type Parameters

Type ParameterDefault type
Tunknown

Parameters

ParameterType
resSafeResponse<T>

Returns

res is SafeSuccessResponse<T>

Released under the MIT License.