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 ​

apiVersion? ​
ts
optional apiVersion?: string;

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

deprecation? ​
ts
optional deprecation?: DeprecationMeta;

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

fields? ​
ts
optional fields?: string[];

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

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:94

Properties ​

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

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

code ​
ts
code: string;
details? ​
ts
optional details?: unknown;
message ​
ts
message: string;

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

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

Index Signature ​
ts
[key: string]: unknown
apiVersion? ​
ts
optional apiVersion?: string;
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:111

requestId? ​
ts
optional requestId?: string;

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

statusCode ​
ts
statusCode: number;

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

success ​
ts
success: false;

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

timestamp? ​
ts
optional timestamp?: string;

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


SafeProblemDetailsResponse ​

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

Properties ​

code? ​
ts
optional code?: string;

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

detail ​
ts
detail: string;

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

details? ​
ts
optional details?: unknown;

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

instance ​
ts
instance: string;

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

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

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

Index Signature ​
ts
[key: string]: unknown
apiVersion? ​
ts
optional apiVersion?: string;
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:121

status ​
ts
status: number;

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

title ​
ts
title: string;

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

type ​
ts
type: string;

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


SafeSuccessResponse ​

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

Type Parameters ​

Type ParameterDefault type
Tunknown

Properties ​

code? ​
ts
optional code?: string;

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

data ​
ts
data: T;

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

meta? ​
ts
optional meta?: ResponseMeta;

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

path? ​
ts
optional path?: string;

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

requestId? ​
ts
optional requestId?: string;

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

statusCode ​
ts
statusCode: number;

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

success ​
ts
success: true;

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

timestamp? ​
ts
optional timestamp?: string;

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


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:136

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:133

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

Type Parameters ​

Type ParameterDefault type
Tunknown

Functions ​

hasFieldSelection() ​

ts
function hasFieldSelection(meta?): meta is ResponseMeta & { fields: string[] };

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

Check if response meta contains field selection information

Parameters ​

ParameterType
meta?ResponseMeta

Returns ​

meta is ResponseMeta & { fields: string[] }


hasFilters() ​

ts
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 ​

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:237

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:187

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:194

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:165

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:218

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:148

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:158

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:153

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:172

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:141

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.