Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fixer-node

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fixer-node

Node.js library to access the fixer.io API

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
increased by300%
Maintainers
2
Weekly downloads
 
Created
Source

fixer-node

A Node.js SDK to interact with the fixer.io API for currency conversion and exchange rates.

For release notes, see the CHANGELOG.

Build Status Known Vulnerabilities fixer-node Version


The Future Studio University supports development of this Node.js library 🚀
Join the Future Studio University and Skyrocket in Node.js


Requirements

Node.js v8 (or newer)

fixer-node uses async/await which requires Node.js v8 or newer.

Installation

Add fixer-node as a dependency to your project:

# NPM v5 users, this way is yours
npm i fixer-node

# you’re using NPM v4:
npm i -S fixer-node

Usage

Initialize an instance of fixer-node and pass your fixer.io access key as an argument:

const Fixer = require('fixer-node')
const fixer = new Fixer('access-key')

Options

The constructor of fixer-node requires an access key as the first argument.

The second argument is an options object allowing the following properties:

  • https: (boolean) set the fixer.io API base URL to either https or http; default: http
const Fixer = require('fixer-node')
const fixer = new Fixer('access-key', {
  https: true
})

Error Handling

fixer-node throws a custom error instance: FixerError.

The FixerError contains the fixer.io API related error properties for info, code, and type. The error message is derived from the info property.

const Fixer = require('node-fixer')
const fixer = new Fixer('access-key')

try {
  const data = fixer.base({ base: 'USD' })
} catch (err) {
  // err.info is the same as err.message,
  // e.g. "Your monthly API request volume has been reached. Please upgrade your plan"
  const info = err.info

  // err.code the fixer.io API code,
  // e.g. "201" which represents "An invalid base currency has been entered."
  const code = err.code
}

Find more details on errors in the fixer.io API docs.

API

aka “how to use this library”

fixer-node supports all fixer.io API endpoints. Here’s an overview on how to use the methods.

Symbols

Request a list of currency symbols. This is a mapping between the currency shortcut (EUR) and full name (Euro).

const data = await fixer.symbols()

Latest

Request the latest exchange rates.

The .latest() method accepts two parameters:

  1. symbols: (string) a list of symbols you want the exchange rates for (this reduces the response payload)
  2. base: (string) the base currency
// get the latest rates for all currencies
const latest = await fixer.latest()

// get the latest rates for selected currencies
const latest = await fixer.latest({ symbols: 'EUR, USD, AUD' })

// get the latest rates for selected currencies and base
const latest = await fixer.latest({ symbols: 'EUR, USD', base: 'AUD' })

Base

Request exchange rates for a given base.

// get all rates for a selected base
const base = await fixer.base({ base: 'AUD' })

// get specific rates for a selected base
const base = await fixer.base({ base: 'AUD', symbols: 'USD, EUR' })

Historic

Request historic exchange rates for a given day.

// get exchange rates for May 9th, 2018
const date = await fixer.forDate({ date: '2018-05-09' })

// with symbols
const date = await fixer.forDate({ date: '2018-05-09', symbols: 'USD, EUR, AUD' })

// with symbols and base
const date = await fixer.forDate({ date: '2018-05-09', symbols: 'EUR, AUD', base: 'USD' })

Convert

Convert an amount from one currency to another.

The .convert() method is aliased as fromTo(). Use both, .convert() and .fromTo(), for the same operation.

// 25 from GBP to JPY
const convert = await fixer.convert({ from: 'GBP', to: 'JPY', amount: 25 })

// 25 from GBP to JPY on 2018-05-08
const convert = await fixer.fromTo({ from: 'GBP', to: 'JPY', amount: 25, date: '2018-05-08' })

Time-Series

Historical exchange rates between two dates.

The .timeseries() method is aliased as between(). Use both, .timeseries() and .between(), for the same operation.

// start - end
const timeseries = await fixer.timeseries({
  start_date: '2018-05-05',
  end_date: '2018-05-08'
})

// start - end with base and symbols
const timeseries = await fixer.between({
  start_date: '2018-05-05',
  end_date: '2018-05-08',
  symbols: 'EUR, USD',
  base: 'AUD'
})

Fluctuation

Retrieve information about how currencies fluctuate on a day-to-day basis.

// start - end
const fluctuation = await fixer.fluctuation({
  start_date: '2018-05-05',
  end_date: '2018-05-08'
})

// start - end with base and symbols
const fluctuation = await fixer.fluctuation({
  start_date: '2018-05-05',
  end_date: '2018-05-08',
  symbols: 'EUR, USD',
  base: 'AUD'
})

Feature Requests

Do you miss a feature? Please don’t hesitate to create an issue with a short description of your desired addition to this plugin.

  • fixer.io: exchange rate and currency conversion

Contributing

We highly appreciate your pull request and any kind of support!

  1. Create a fork
  2. Create your feature branch: git checkout -b my-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request 🚀

License

MIT © Future Studio


futurestud.io  ·  GitHub @fs-opensource  ·  Twitter @futurestud_io

Keywords

FAQs

Package last updated on 16 May 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc