1.0.2 • Published 5 months ago

react-native-deriv-api-ts v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

react-native-deriv-api-ts

A typescript wrapper around Deriv API.

Installation

Yarn

yarn add react-native-deriv-api-ts

NPM

npm install react-native-deriv-api-ts

Usage

Endpoints without authentication

import { DerivAPIWrapper } from "react-native-deriv-api-ts";

const appId = 1234;
const api = new DerivAPIWrapper(appId);
const websiteStatus = await api.websiteStatus();

console.log(websiteStatus);

// You will have intellisense on the return types...
console.log(websiteStatus.api_call_limits.max_requests_outcome.hourly);

Endpoints with authentication

You can authenticate whenever you want by calling authorize function. When you call an endpoint that needs authentication (e.g. profitTable), it will first check if the session is already authenticated. If not, it will try to authenticate with the token that is passed either to the constructor or to the last call of authorize function. If no token is found, an error will be thrown.

import { DerivAPIWrapper } from "react-native-deriv-api-ts";

const appId = 1234;
const api = new DerivAPIWrapper(appId);

const authResult = await api.authorize("YOUR API TOKEN");

OR

import { DerivAPIWrapper } from "react-native-deriv-api-ts";

const appId = 1234;
const api = new DerivAPIWrapper(appId, "YOUR API TOKEN");

Types

@deriv/api-types package is used internally to provide support for types.

import { DerivAPIWrapper, Exception, Types as binaryTypes } from "react-native-deriv-api-ts";

const appId = 1234;
const api = new DerivAPIWrapper(appId, "YOUR API TOKEN");
const params: binaryTypes.ProfitTableRequest = {
   contract_type: ["CALL"],
   profit_table: 1,
};

api.profitTable(params)
   .then((profitTableResult: binaryTypes.ProfitTable) => {
      // Your code
   })
   .catch((err: Exception) => {
      console.log(`Code: ${errObj.code} Message: ${errObj.message} Details: ${JSON.stringify(errObj.getParams())}`);
   })
   // Closing the websocket connection gracefully.
   .finally(() => api.disconnect());

Error Handling

import { DerivAPIWrapper, Exception, Types } from "react-native-deriv-api-ts";

const appId = 1234;
const api = new DerivAPIWrapper(1234, "YOUR API TOKEN");
const params: Types.ProfitTableRequest = {
   contract_type: [],
   profit_table: 1,
};

api.profitTable(params)
   .then((profitTableResult) => {
      // Your code
   })
   .catch((err: Exception) => {
      console.log(`Code: ${errObj.code} Message: ${errObj.message} Details: ${JSON.stringify(errObj.getParams())}`);
   })
   // Closing the websocket connection gracefully.
   .finally(() => api.disconnect());

OR

import { DerivAPIWrapper, Exception, Types } from "react-native-deriv-api-ts";

const appId = 1234;
const api = new DerivAPIWrapper(1234, "YOUR API TOKEN");
const params: Types.ProfitTableRequest = {
   contract_type: [],
   profit_table: 1,
};

try {
   const profitTableResult = await api.profitTable(params);
} catch (err) {
   const errObj = err as Exception;
   console.log(`Code: ${errObj.code} Message: ${errObj.message} Details: ${JSON.stringify(errObj.getParams())}`);
} finally {
   // Closing the websocket connection gracefully.
   api.disconnect();
}