4.1.6 • Published 3 months ago

bnr-exchange-history v4.1.6

Weekly downloads
3
License
ISC
Repository
github
Last release
3 months ago

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.

4.1.4

3 months ago

4.1.3

3 months ago

4.1.6

3 months ago

4.1.5

3 months ago

4.1.2

3 months ago

4.1.0

1 year ago

4.0.1

1 year ago

4.0.0

1 year ago

4.1.1

1 year ago

4.0.2

1 year ago

3.0.0

4 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.0

5 years ago