Skip to content

Vonage Vetch

github-actions edited this page Jul 1, 2025 · 4 revisions

Documentation


Documentation / Vonage Vetch

Vonage Vetch SDK for Node.js

GitHub Workflow Status Codecov Latest Release Contributor Covenant License

Vonage

This is the Vonage Vetcher SDK for Node.js used to wrap a request using node-fetch to call Vonage APIs. To use it you will need a Vonage account. Sign up for free at vonage.com.

For full API documentation refer to developer.vonage.com.

Installation

With NPM

npm install @vonage/vetch

With Yarn

yarn add @vonage/vetch

Using the Vonage Vetch SDK

Vetch will return a VetchResponse

const { request } = require('@vonage/vetch');

const response = await request({
  url: 'https://rest.nexmo.com/account/numbers'
})

console.log(response.data);
// Will output the json data from the API response

Options

options are a superset from the request package. See VetchOptions for more detail

Testing

Run:

npm run test

Enumerations

ContentType

Defined in: packages/vetch/lib/enums/contentType.ts:9

Enum representing possible MIME types for the 'content-type' HTTP header that Vonage API's could accept.

Note: Most of the APIs will only accept application/json. Please refer to the specific API documentation to determine if another content type is accepted

Enumeration Members

Enumeration Member Value Description Defined in
CSV "text/csv" Represents the MIME type for CSV data. packages/vetch/lib/enums/contentType.ts:20
FORM_URLENCODED "application/x-www-form-urlencoded" Represents the MIME type for URL-encoded form data. packages/vetch/lib/enums/contentType.ts:14
JSON "application/json" Represents the MIME type for JSON data. packages/vetch/lib/enums/contentType.ts:11
XML "application/xml" Represents the MIME type for XML data. packages/vetch/lib/enums/contentType.ts:17

HTTPMethods

Defined in: packages/vetch/lib/enums/HTTPMethods.ts:4

Enum representing the HTTP methods that can be used for Vonage API requests.

Enumeration Members

Enumeration Member Value Description Defined in
DELETE "DELETE" Represents an HTTP DELETE request. packages/vetch/lib/enums/HTTPMethods.ts:12
GET "GET" Represents an HTTP GET request. packages/vetch/lib/enums/HTTPMethods.ts:6
PATCH "PATCH" Represents an HTTP PATCH request. packages/vetch/lib/enums/HTTPMethods.ts:18
POST "POST" Represents an HTTP POST request. packages/vetch/lib/enums/HTTPMethods.ts:9
PUT "PUT" Represents an HTTP PUT request. packages/vetch/lib/enums/HTTPMethods.ts:15

ResponseTypes

Defined in: packages/vetch/lib/enums/responseTypes.ts:7

Deprecated

Enum representing the expected response types for API requests. This was originaly used to set what the expected response type will be. It is better to use the content-type header from the response to decode properly.

Enumeration Members

Enumeration Member Value Description Defined in
json "json" Represents a JSON-formatted response. packages/vetch/lib/enums/responseTypes.ts:11
stream "stream" Represents a stream response, typically for handling large data or files. packages/vetch/lib/enums/responseTypes.ts:16
text "text" Represents a plain text response. packages/vetch/lib/enums/responseTypes.ts:21

Classes

VetchError

Defined in: packages/vetch/lib/errors/vetchError.ts:15

Class representing an error from a Vetch API request. Extends the built-in Error class and adds additional properties related to the API request and response.

Template

The type of the data payload in the VetchResponse, expected to be an object that has been decoded from JSON or WebForm.

Extends

  • Error

Constructors

Constructor
new VetchError(
   message, 
   options, 
   response?): VetchError;

Defined in: packages/vetch/lib/errors/vetchError.ts:27

Creates an instance of VetchError.

Parameters
message

string

The error message.

options

VetchOptions

Configuration options for the API request.

response?

Response

Configuration options for the API request.

Returns

VetchError

Overrides
Error.constructor

Properties

cause?
optional cause: unknown;

Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:24

Inherited from
Error.cause
code?
optional code: string;

Defined in: packages/vetch/lib/errors/vetchError.ts:16

An optional error code.

config
config: VetchOptions;

Defined in: packages/vetch/lib/errors/vetchError.ts:17

Configuration options for the API request.

message
message: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077

Inherited from
Error.message
name
name: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1076

Inherited from
Error.name
response?
optional response: Response;

Defined in: packages/vetch/lib/errors/vetchError.ts:18

The API response that resulted in the error.

stack?
optional stack: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078

Inherited from
Error.stack
stackTraceLimit
static stackTraceLimit: number;

Defined in: node_modules/@types/node/globals.d.ts:161

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Inherited from
Error.stackTraceLimit

Methods

captureStackTrace()
static captureStackTrace(targetObject, constructorOpt?): void;

Defined in: node_modules/@types/node/globals.d.ts:145

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack;  // Similar to `new Error().stack`

The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

function a() {
  b();
}

function b() {
  c();
}

function c() {
  // Create an error without stack trace to avoid calculating the stack trace twice.
  const { stackTraceLimit } = Error;
  Error.stackTraceLimit = 0;
  const error = new Error();
  Error.stackTraceLimit = stackTraceLimit;

  // Capture the stack trace above function b
  Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
  throw error;
}

a();
Parameters
targetObject

object

constructorOpt?

Function

Returns

void

Inherited from
Error.captureStackTrace
prepareStackTrace()
static prepareStackTrace(err, stackTraces): any;

Defined in: node_modules/@types/node/globals.d.ts:149

Parameters
err

Error

stackTraces

CallSite[]

Returns

any

See

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from
Error.prepareStackTrace

Type Aliases

Headers

type Headers = object;

Defined in: packages/vetch/lib/types/headers.ts:7

Interface representing HTTP headers as a string-keyed object. Each property represents a header name, and the associated value can be a string or an array of strings. Includes optional 'authorization' and 'content-type' properties with restricted possible values for 'content-type'.

Index Signature

[index: string]: string

VetchOptions

type VetchOptions = object;

Defined in: packages/vetch/lib/types/vetchOptions.ts:7

Options to configure the Vetch request.

Properties

appendUserAgent?
optional appendUserAgent: string;

Defined in: packages/vetch/lib/types/vetchOptions.ts:50

Additional user agent string to append.

body?
optional body: Record<string, string | readonly string[]> | string;

Defined in: packages/vetch/lib/types/vetchOptions.ts:29

Deprecated

Use 'data' instead of 'body'

checkStatus()?
optional checkStatus: (status) => boolean;

Defined in: packages/vetch/lib/types/vetchOptions.ts:45

A function to check the response status.

Parameters
status

number

Returns

boolean

data?
optional data: Record<string, string | readonly string[]> | string;

Defined in: packages/vetch/lib/types/vetchOptions.ts:26

Request body data. Use 'data' instead of 'body' for newer implementations.

headers?
optional headers: Headers;

Defined in: packages/vetch/lib/types/vetchOptions.ts:55

The headers to be sent with the request.

method
method: HTTPMethods;

Defined in: packages/vetch/lib/types/vetchOptions.ts:16

The HTTP method to use for the request, e.g., GET, POST, etc.

params?
optional params: Record<string, string | readonly string[]>;

Defined in: packages/vetch/lib/types/vetchOptions.ts:34

Query parameters for the request.

responseType?
optional responseType: ResponseTypes;

Defined in: packages/vetch/lib/types/vetchOptions.ts:40

Expected response type.

Deprecated

ResponseTypes is deprecated and will be removed in future versions.

timeout?
optional timeout: number;

Defined in: packages/vetch/lib/types/vetchOptions.ts:60

Time in milliseconds to wait for the request to complete.

type
type: ContentType;

Defined in: packages/vetch/lib/types/vetchOptions.ts:11

The content type for the request, e.g., JSON, WebForm, etc.

url
url: string;

Defined in: packages/vetch/lib/types/vetchOptions.ts:21

The URL endpoint for the request.


VetchPromise<T>

type VetchPromise<T> = Promise<VetchResponse<T>>;

Defined in: packages/vetch/lib/types/vetchPromise.ts:12

Type representing a promise that resolves with a standardized Vetch API response. Vetch ("Vonage Fetch") ensures a consistent API response structure, irrespective of the HTTP adapter utilized by the developer.

Type Parameters

T

T

The type of the data payload in the VetchResponse, expected to be an object that has been decoded from JSON or WebForm.

Deprecated


VetchResponse<T>

type VetchResponse<T> = object;

Defined in: packages/vetch/lib/types/vetchResponse.ts:9

Represents the response returned by a Vetch request.

Type Parameters

T

T

The type of the response data.

Properties

config
config: VetchOptions;

Defined in: packages/vetch/lib/types/vetchResponse.ts:13

The configuration options used for the request.

data
data: T;

Defined in: packages/vetch/lib/types/vetchResponse.ts:18

The parsed response data.

headers
headers: Headers;

Defined in: packages/vetch/lib/types/vetchResponse.ts:23

The response headers.

request
request: VetchOptions;

Defined in: packages/vetch/lib/types/vetchResponse.ts:38

The configuration options for the request (same as 'config').

status
status: number;

Defined in: packages/vetch/lib/types/vetchResponse.ts:28

The HTTP status code of the response.

statusText
statusText: string;

Defined in: packages/vetch/lib/types/vetchResponse.ts:33

The HTTP status text of the response.

Clone this wiki locally