@coingecko/cg-api-ts
TypeScript icon, indicating that this package has built-in type declarations

0.0.51 • Public • Published

CoinGecko API Wrapper

Installation

npm i --save @coingecko/cg-api-ts
yarn add @coingecko/cg-api-ts

Available Endpoint

Endpoint Status Testing Function
/ping [/] [/] getPing
/simple/price [/] [/] getSimplePrice
/simple/supported_vs_currencies [/] [/] getSimpleSupportedVsCurrencies
/simple/token_price/{id} [x] [x]
/coins/list [/] [/] getCoinsList
/coins/markets [x] [x]
/coins/{id} [/] [x] getCoinsId
/coins/{id}/market_chart [/] [/] getCoinsIdMarketChart
/coins/{id}/status_updates [/] [/] getCoinsIdStatusUpdates
/status_updates [/] [/] getStatusUpdates
/global [/] [/] getGlobal

Usage

import { CoinGeckoAPI } from "@coingecko/cg-api-ts";

const cg = new CoinGeckoAPI(fetch);
// sometimes fetch is not bind properly need to use following:
// export const cg = new CoinGeckoAPI(window.fetch.bind(window));

cg.getPing()
  .then(({ data, response, endpoint }) => {
    console.log(data);
    console.log(response);
    console.log(endpoint);
  })
  // Error Handling
  .catch(err => {
    if (err.type === APIError.SERVER) {
      // Resouces not found (Error 404)
      console.error("API resources not found");
    } else if (err.type === APIError.DOWN) {
      // CoinGecko API Down (Error 500)
      console.error("API Down");
    } else if (err.type === APIError.TIMEOUT) {
      // API Request timeout after 20s (default)
      console.error("API Timeout");
      console.error(err.message); // Request timeout after 20000ms
    } else {
      console.error(err.message);
    }
  });

Browser

CoinGeckoAPI class used fetch API, which requires browser support for Fetch API. Consider using Polyfill library

Promise style

import { CoinGeckoAPI, APIError } from "@coingecko/cg-api-ts";

const cg = new CoinGeckoAPI(fetch);
cg.getPing().then(({ data, response }) => {
  if (data) {
    console.log("Server online");
  } else {
    console.error("Server not responding properly");
  }
});

Async Await

(async () => {
  const cg = new CoinGeckoAPI(fetch);
  const { data, response } = await cg.getPing();
  if (data) {
    console.log("Server online");
  } else {
    console.error("Server offline");
  }
})();

Nodejs

const nodeFetch = require("node-fetch");
const cg = new CoinGeckoAPI(nodeFetch);
cg.getPing().then(({ data, response }) => {
  if (data) {
    console.log("Server online");
  } else {
    console.error("Server offline");
  }
});

Readme

Keywords

none

Package Sidebar

Install

npm i @coingecko/cg-api-ts

Weekly Downloads

2

Version

0.0.51

License

ISC

Unpacked Size

145 kB

Total Files

15

Last publish

Collaborators

  • ervinchai
  • jackwong
  • tmlee