Socket
Socket
Sign inDemoInstall

adon-exchange

Package Overview
Dependencies
8
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    adon-exchange

A simple currency manager from Objects - CSV - JSON - XML to mongoose model, promisified with bluebird


Version published
Maintainers
1
Install size
10.6 MB
Created

Readme

Source

AdOn Exchange

A simple currency manager from Objects - CSV - JSON - XML to mongoose model, promisified with bluebird.

Installing

Using npm :

npm install adon-exchange

Using yarn :

yarn add adon-exchange

Setup

Import ES6 module style :

import Exchange from 'adon-exchange'

Or CommonJS style :

const Exchange = require('adon-exchange')

Then provide a configuration object to the class constructor containing your mongoose model :

// Example Configuration

import Currency from 'path/to/models/currency'

const exchange = new Exchange(Currency)

Your model must contain at least from, to, value fields, and should contain date, modified and origin for better tracking :

// Example Currency Model

import mongoose from 'mongoose'

const { Schema } = mongoose
  , currencySchema = new Schema({
    , date: { type: Date, default: Date.now }
    , modified: { type: Date, default: Date.now }
    , origin: { type: String, default: 'automatic' }
    , from: { type: String, required: true }
    , to: { type: String, required: true }
    , value: { type: Number, required: true }
})

export default mongoose.model('Currency', currencySchema)

Useage

fileToCurrencies(options)

Assuming you already got a mongoose instance connected to MongoDB and your file uploaded somewhere in your application scope, provide a single object to the fileToCurrencies function with the following properties :

exchange.fileToCurrencies({
  file: // The path to your file
  , precision: // Opt. Float decimals, default to 6
  , origin: // Opt. Operation origin, default to 'manual'
  , delimiter: // Opt. The CSV delimiter, default to ';'
  , root: // Opt. The XML root path to lines, default to 'root.line'
})
    .then(currencies => // Do something with your currencies)
    .catch(err => // Treat errors)
createCurrency(options)

This function is called to create a new Currency and by fileToCurrencies for every lines (reverse currency is also created):

exchange.createCurrency({
  from: // Origin currency (should be a 3 letters currency code)
  , to: // Destination currency
  , value: // Conversion value
})
  .then(currencies => // Do something with your currencies)
  .catch(err => // Treat errors)
readCurrency(options)

Get a currency by its from and to properties (reverse currency is also returned) :

exchange.readCurrency({
  from: // Origin currency
  , to: // Destination currency
})
  .then(currencies => // Do something with your currencies)
  .catch(err => // Treat errors)
readCurrencies(options)

Get all currencies (without arguments) or by their from or to properties (reverse currencies are not returned) :

exchange.readCurrencies({
  from: // Opt. Origin currency
  , to: // Opt. Destination currency
})
  .then(currencies => // Do something with your currencies)
  .catch(err => // Treat errors)
updateCurrency(options)

Update currency by its from and to properties, providing a value (reverse currency is also updated) :

exchange.updateCurrency({
  from: // Origin currency
  , to: // Destination currency
  , value: // New conversion value
})
  .then(currencies => // Do something with your currencies)
  .catch(err => // Treat errors)
deleteCurrency(options)

Remove currency by its from and to properties (reverse currency is also removed) :

exchange.deleteCurrency({
  from: // Origin currency
  , to: // Destination currency
})
  .then(() => // Job Done)
  .catch(err => // Treat errors)

Behaviors

The file format is automatically detected by its extension (currently CSV, JSON and XML).

Creating, reading, updating or deleting a currency also apply the reverse operation to its counterpart.

Updating a currency also bump its modified field to Date.now().

Coming Soon

  • YAML and XLS format.

  • Reverse operation currenciesToFile.

Dependencies

  • bluebird - A full featured promise library with unmatched performance.
  • csvtojson - CSV parser to convert CSV to JSON or column arrays.
  • xml2js - Simple XML to JavaScript object converter.

License

This project is licensed under the MIT License, see the LICENSE.md file for details.

Keywords

FAQs

Last updated on 05 Jun 2018

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc