UNPKG

@investo/invform

Version:

A versatile library of investment formulas...

2 lines (1 loc) 1.5 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=(t,e,r)=>t*(1+e*r),l=(t,e,r)=>a(t,e,r)-t,u=(t,e)=>{if(t<=0)throw new Error("Investment must be greater than 0.");return(e-t)/t*100},s=(t,e)=>{if(t<0||e<0||e>100)throw new Error("Invalid input: investment must be ≥ 0 and targetPercentage between 0 and 100.");return t*(e/100)};function o(t,e){if(t<=0)throw new Error("Investment must be greater than 0.");return e/t*100}const i=(t,e,r=0)=>{if(t<0||e<0||r<0)throw new Error("All inputs must be ≥ 0.");return t*e+r},m=(t,e,r=0)=>{if(t<0||e<=0||r<0)throw new Error("Invalid input: all values must be ≥ 0 and pricePerAsset must be > 0.");const n=t-r;return n<0?0:n/e},I=(t,e,r=0)=>{if(t<0||e<=0||r<0)throw new Error("Invalid input: investment and fee must be ≥ 0, amount must be > 0.");const n=t-r;return n<0?0:n/e};function f(t,e,r=0){if(t<0||e<0||r<0)throw new Error("All inputs must be ≥ 0.");const c=t*e-r;return c>=0?c:0}function w(t,e){if(t<0||e<0)throw new Error("Inputs must be ≥ 0.");return t-e}function b(t,e){if(t<0||e<0)throw new Error("Inputs must be ≥ 0.");const r=t-e;return r>=0?r:0}exports.calcSimpleInterest=a;exports.calcSimpleProfit=l;exports.calculateAssetsFromInvestment=m;exports.calculateInvestment=i;exports.calculateNetSaleProceeds=f;exports.calculatePartialReturn=s;exports.calculatePricePerAsset=I;exports.calculateProfit=w;exports.calculateROI=u;exports.calculateRemainingInvestment=b;exports.calculateReturnPercentage=o;