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

bnr-exchange-history

v4.1.6

Published

A wrapper for bnr.ro's exchange rate pages. With support for yearly rates.

Downloads

112

Readme

Historical BNR.ro Exchange Rates for Node.js

Easily grab exchange rates from bnr.ro. (Supports history lookups for years 2005 - present).

While this package is very similar to node-bnr and similar exchange rate packages with support for bnr.ro, all of these lack support for fetching exchange rates on days other than 'today'. This package aims to resolve that, allowing lookups for any date between January 3rd, 2005 and 'today'.

Downloads Version Node Version Tests

Installation

npm install bnr-exchange-history

Importing

// ES Modules
import BNR from 'bnr-exchange-history';

// ... or CommonJS
const BNR = require('bnr-exchange-history').default;

Usage

// Exchange rates for today.
BNR.getRates().then((rates) => {
    console.log(rates) // { 
    // EUR: { rate: 4.7537, multiplier: 1 },
    // USD: { rate: 4.3082, multiplier: 1, },
    // ...
    //}
});

// Exchange rates for January 1st, 2019
BNR.getRates({ date: new Date('Jan 1, 2019') }).then((rates) => {
    console.log(rates) // { 
    // EUR: { rate: 4.6639, multiplier: 1 },
    // USD: { rate: 4.0736, multiplier: 1, },
    // ...
    //}
});

// Fetch exchange rates for an invoicing date. 
// Especially useful for invoices that should include exchange rates for 
// the previous banking day when issuing invoices in currencies other than RON.
BNR.getRates({ date: new Date('Oct 18, 2019'), invoice: true }).then((rates) => {
    console.log(rates) // { -> Returns exchange rates for Oct 17 instead of Oct 18.
    // EUR: { rate: 4.7550, multiplier: 1 },
    // USD: { rate: 4.2719, multiplier: 1, },
    // ...
    //}
});

Notes

As BNR does not post exchange rates for non-banking days, requests for a non-banking day will automatically fall back to the most recent previous banking day for exchange rates.

This happens on dates like January 1 and 2 of 2019. So a request for Jan 2, 2019 will output exchange rates for Dec 31, 2018 which is the most recent past update for the requested date.

Multiplier

The multiplier attribute indicates currencies with and without support for decimals. For example JPY, with a multiplier of 100, should be rounded off to the closest whole number.

E.g. If the exchange rate for JPY is 3.7008, a conversion from 150 RON to JPY would be (150 / 3.7008) * 100. As the currency does not support decimals, you'll probably want to round it off. Math.round((150 / 3.7008) * 100)

Alternatives

If all you need is to fetch exchange rates for the current day, you'll probably be better off with Bloggify's node-bnr package.

License

This repository is licensed under the ISC license.