Modules@robinpath/money
money

@robinpath/money

0.1.2Node.jsPublic

Currency formatting, safe arithmetic, conversion, tax, discount, and exchange rates

Money

Currency formatting, safe arithmetic, conversion, tax, discount, and exchange rates

Package: @robinpath/money | Category: Utility | Type: Utility

Authentication

No authentication required. All functions are available immediately.

Use Cases

Use the money module when you need to:

  • Format number as currency -- Use money.format to perform this operation
  • Parse currency string to number -- Use money.parse to perform this operation
  • Safe addition -- Use money.add to perform this operation
  • Safe subtraction -- Use money.subtract to perform this operation
  • Safe multiplication -- Use money.multiply to perform this operation

Quick Reference

FunctionDescriptionReturns
formatFormat number as currencyFormatted string
parseParse currency string to numberNumeric value
addSafe additionSum
subtractSafe subtractionDifference
multiplySafe multiplicationProduct
divideSafe divisionQuotient
roundRound to currency precisionRounded value
convertConvert between currencies{amount, currency, rate}
fetchRateFetch live exchange rate{rate, from, to, timestamp}
splitSplit amount evenlyArray of amounts summing to total
percentageCalculate percentageResult
discountApply discount{original, discount, final}
taxAdd tax{subtotal, tax, total}
currencyInfoGet currency info{symbol, name, decimals, code}
listCurrenciesList all currency codesCurrency codes
isValidCodeCheck if currency code is validtrue if valid

Functions

format

Format number as currency

Module: money | Returns: string -- Formatted string

money.format 1234.56 "USD"
ParameterTypeRequiredDescription
amountnumberYesAmount
currencystringNoCurrency code (default USD)
localestringNoLocale (default en-US)

parse

Parse currency string to number

Module: money | Returns: number -- Numeric value

money.parse "$1,234.56"
ParameterTypeRequiredDescription
strstringYesCurrency string

add

Safe addition

Module: money | Returns: number -- Sum

money.add 0.1 0.2
ParameterTypeRequiredDescription
anumberYesFirst value
bnumberYesSecond value
decimalsnumberNoDecimal places (default 2)

subtract

Safe subtraction

Module: money | Returns: number -- Difference

money.subtract 10.50 3.25
ParameterTypeRequiredDescription
anumberYesFirst value
bnumberYesSecond value
decimalsnumberNoDecimal places

multiply

Safe multiplication

Module: money | Returns: number -- Product

money.multiply 19.99 3
ParameterTypeRequiredDescription
amountnumberYesAmount
multipliernumberYesMultiplier

divide

Safe division

Module: money | Returns: number -- Quotient

money.divide 100 3
ParameterTypeRequiredDescription
amountnumberYesAmount
divisornumberYesDivisor

round

Round to currency precision

Module: money | Returns: number -- Rounded value

money.round 10.456
ParameterTypeRequiredDescription
amountnumberYesAmount
decimalsnumberNoDecimal places (default 2)

convert

Convert between currencies

Module: money | Returns: object -- {amount, currency, rate}

money.convert 100 "USD" "EUR" 0.85
ParameterTypeRequiredDescription
amountnumberYesAmount
fromstringYesSource currency
tostringYesTarget currency
ratenumberYesExchange rate

fetchRate

Fetch live exchange rate

Module: money | Returns: object -- {rate, from, to, timestamp}

money.fetchRate "USD" "EUR"
ParameterTypeRequiredDescription
fromstringYesSource currency
tostringYesTarget currency

split

Split amount evenly

Module: money | Returns: array -- Array of amounts summing to total

money.split 100 3
ParameterTypeRequiredDescription
amountnumberYesTotal amount
waysnumberYesNumber of splits

percentage

Calculate percentage

Module: money | Returns: number -- Result

money.percentage 200 15
ParameterTypeRequiredDescription
amountnumberYesAmount
percentnumberYesPercentage

discount

Apply discount

Module: money | Returns: object -- {original, discount, final}

money.discount 99.99 20
ParameterTypeRequiredDescription
amountnumberYesOriginal amount
percentnumberYesDiscount %

tax

Add tax

Module: money | Returns: object -- {subtotal, tax, total}

money.tax 100 8.25
ParameterTypeRequiredDescription
amountnumberYesSubtotal
ratenumberYesTax rate %

currencyInfo

Get currency info

Module: money | Returns: object -- {symbol, name, decimals, code}

money.currencyInfo "EUR"
ParameterTypeRequiredDescription
codestringYesCurrency code

listCurrencies

List all currency codes

Module: money | Returns: array -- Currency codes

money.listCurrencies
ParameterTypeRequiredDescription
(none)NoCall with no arguments

isValidCode

Check if currency code is valid

Module: money | Returns: boolean -- true if valid

money.isValidCode "USD"
ParameterTypeRequiredDescription
codestringYesCurrency code

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Division by zeroCheck the error message for details
Rate not found for ${from} -> ${to}Check the error message for details
@desc "Format and validate result"
do
  set $result as money.format 1234.56 "USD"
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. List and iterate Currencies

Retrieve all items and loop through them.

@desc "List currencies and iterate results"
do
  set $result as money.listCurrencies
  each $item in $result
    print $item
  end
enddo

2. Create a new item with add

Create a new resource and capture the result.

set $result as money.add 0.1 0.2
print "Created: " + $result

3. Check before creating

List existing items and only create if needed.

@desc "List currencies and add"
do
  set $existing as money.listCurrencies
  if $existing == null
    money.add 0.1 0.2
    print "Item created"
  else
    print "Item already exists"
  end
enddo

4. Multi-step Money workflow

Chain multiple money operations together.

@desc "Format, parse, and more"
do
  set $r_format as money.format 1234.56 "USD"
  set $r_parse as money.parse "$1,234.56"
  set $r_add as money.add 0.1 0.2
  print "All operations complete"
enddo

5. Safe format with validation

Check results before proceeding.

@desc "Format and validate result"
do
  set $result as money.format 1234.56 "USD"
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • json -- JSON module for complementary functionality

Versions (1)

VersionTagPublished
0.1.2latest1 months ago
Install
$ robinpath add @robinpath/money

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.2
LicenseMIT
Unpacked Size6.2 KB
Versions1
Weekly Downloads21
Total Downloads21
Stars0
Last Publish1 months ago
Created1 months ago

Keywords

Category

utilities