npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@public-js/exchange-rates

v0.0.2

Published

An extensive exchange rates API client supporting multiple services for best results

Downloads

32

Readme

@public-js/exchange-rates

Build Version Downloads Size

CodeQL Codacy Codecov Code Climate

An extensive exchange rates API client supporting multiple services for best results


Installing

Add the package to your project by running:

npm i @public-js/exchange-rates

Usage

Instantiate a class:

import { ExchangeRates } from '@public-js/exchange-rates';

const service = await new ExchangeRates({
  OpenexchangeratesOrg: env.OXR_API_KEY,
  ExchangerateHost: true,
});

Fetch the latest rates:

const rates = await service.getRates('USD', ['EUR', 'CNY']);
console.log(rates); // {"CNY":6.8936,"EUR":0.901185}

Fetch the historical rates:

const rates = await service.getRates('USD', ['EUR', 'CNY'], '2023-01-15');
console.log(rates); // {"CNY":6.8936,"EUR":0.901185}

Supported services

Note The majority of services require an API key/token to work. This doesn't apply to ExchangerateHost, which needs any truthy value provided as a key to be active.

How does it work

When the ExchangeRates class is instantiated it requires a configuration object to be provided. The said object has to list the desired services and their respective API keys/tokens.

Since some of the services don't handle unsupported currency codes well, they will be queried for a full rates list which then gets filtered out. This process is repeated for each service until all of them are queried or the required currencies are fetched.

The order of the services is listed in the "Supported services" section, it can't be altered at a time and is pre-defined based on data reliability, precision and currency coverage. It is possible however to enable only part of the supported services by providing only some of the API keys.

Resources

License

MIT, full license text. Read more about it on TLDRLegal.