mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-12 21:10:23 +00:00
Updated definitions for dinero.js 1.6 (#38198)
* Updated definitions for dinero.js 1.6 * Use ReadonlArray to improve compatibility. * Corrected TypeScript version.
This commit is contained in:
committed by
Ben Lichtman
parent
5649785dfe
commit
8e8fe5bbb5
@@ -1,21 +1,30 @@
|
||||
import Dinero = require("dinero.js");
|
||||
import Dinero = require('dinero.js');
|
||||
|
||||
// Defaults
|
||||
Dinero.defaultAmount = 100;
|
||||
Dinero.defaultCurrency = 'USD';
|
||||
Dinero.defaultPrecision = 2;
|
||||
// Globals
|
||||
Dinero.globalLocale = 'en-US';
|
||||
Dinero.globalFormat = '0,0 dollar';
|
||||
Dinero.globalRoundingMode = 'HALF_UP';
|
||||
Dinero.globalFormatRoundingMode = '0,0 dollar';
|
||||
Dinero.globalExchangeRatesApi = {
|
||||
endpoint: "https://yourexchangerates.api/latest?base={{from}}",
|
||||
propertyPath: "data.rates.{{to}}",
|
||||
headers: {
|
||||
"user-key": "xxxxxxxxx",
|
||||
},
|
||||
endpoint: 'https://yourexchangerates.api/latest?base={{from}}',
|
||||
propertyPath: 'data.rates.{{to}}',
|
||||
headers: {
|
||||
'user-key': 'xxxxxxxxx',
|
||||
},
|
||||
};
|
||||
Dinero.globalExchangeRatesApi = {
|
||||
endpoint: "https://yourexchangerates.api/latest?base={{from}}",
|
||||
propertyPath: "data.rates.{{to}}",
|
||||
roundingMode: "HALF_UP",
|
||||
endpoint: 'https://yourexchangerates.api/latest?base={{from}}',
|
||||
propertyPath: 'data.rates.{{to}}',
|
||||
roundingMode: 'HALF_UP',
|
||||
};
|
||||
|
||||
Dinero();
|
||||
Dinero({ amount: 1 });
|
||||
Dinero({ currency: "USD" });
|
||||
Dinero({ currency: 'USD' });
|
||||
Dinero({ precision: 2 });
|
||||
|
||||
let number: number;
|
||||
@@ -28,26 +37,27 @@ let dineroObject: Dinero.DineroObject;
|
||||
|
||||
number = dinero.getAmount();
|
||||
string = dinero.getCurrency();
|
||||
string = dinero.setLocale("fr-FR").getLocale();
|
||||
string = dinero.setLocale('fr-FR').getLocale();
|
||||
number = dinero.convertPrecision(4).getPrecision();
|
||||
number = dinero.convertPrecision(4, 'HALF_DOWN').getPrecision();
|
||||
dinero = dinero.add(Dinero({ amount: 104545, precision: 4 }));
|
||||
dinero = dinero.subtract(Dinero({ amount: 104545, precision: 4 }));
|
||||
dinero = dinero.multiply(2.00125);
|
||||
dinero = dinero.multiply(2.00125, "HALF_UP");
|
||||
dinero = dinero.multiply(2.00125, 'HALF_UP');
|
||||
dinero = dinero.divide(2);
|
||||
dinero = dinero.divide(2, "HALF_UP");
|
||||
dinero = dinero.divide(2, 'HALF_UP');
|
||||
dinero = dinero.percentage(50);
|
||||
dineroArr = dinero.allocate([50, 50]);
|
||||
dinero.convert("EUR").then(d => (dinero = d));
|
||||
dinero.convert("XBT", {
|
||||
endpoint: "https://yourexchangerates.api/latest?base={{from}}",
|
||||
propertyPath: "data.rates.{{to}}",
|
||||
headers: {
|
||||
"user-key": "xxxxxxxxx",
|
||||
},
|
||||
roundingMode: "HALF_UP",
|
||||
dinero.convert('EUR').then(d => (dinero = d));
|
||||
dinero.convert('XBT', {
|
||||
endpoint: 'https://yourexchangerates.api/latest?base={{from}}',
|
||||
propertyPath: 'data.rates.{{to}}',
|
||||
headers: {
|
||||
'user-key': 'xxxxxxxxx',
|
||||
},
|
||||
roundingMode: 'HALF_UP',
|
||||
});
|
||||
boolean = dinero.equalsTo(Dinero({ amount: 500, currency: "EUR" }));
|
||||
boolean = dinero.equalsTo(Dinero({ amount: 500, currency: 'EUR' }));
|
||||
boolean = dinero.lessThan(Dinero({ amount: 800 }));
|
||||
boolean = dinero.lessThanOrEqual(Dinero({ amount: 800 }));
|
||||
boolean = dinero.greaterThan(Dinero({ amount: 800 }));
|
||||
@@ -57,15 +67,15 @@ boolean = dinero.isPositive();
|
||||
boolean = dinero.isNegative();
|
||||
boolean = dinero.hasSubUnits();
|
||||
boolean = dinero.hasCents();
|
||||
boolean = dinero.hasSameCurrency(Dinero({ amount: 1000, currency: "EUR" }));
|
||||
boolean = dinero.hasSameAmount(Dinero({ amount: 1000, currency: "EUR" }));
|
||||
string = dinero.toFormat("0,0 dollar");
|
||||
string = dinero.toFormat("0,0 dollar", "HALF_EVEN");
|
||||
boolean = dinero.hasSameCurrency(Dinero({ amount: 1000, currency: 'EUR' }));
|
||||
boolean = dinero.hasSameAmount(Dinero({ amount: 1000, currency: 'EUR' }));
|
||||
string = dinero.toFormat('0,0 dollar');
|
||||
string = dinero.toFormat('0,0 dollar', 'HALF_EVEN');
|
||||
number = dinero.toUnit();
|
||||
number = dinero.toRoundedUnit(1);
|
||||
number = dinero.toRoundedUnit(1, "HALF_EVEN");
|
||||
number = dinero.toRoundedUnit(1, 'HALF_EVEN');
|
||||
dineroObject = dinero.toObject();
|
||||
dineroArr = Dinero.normalizePrecision([
|
||||
Dinero({ amount: 100, precision: 2 }),
|
||||
Dinero({ amount: 1000, precision: 3 }),
|
||||
Dinero({ amount: 100, precision: 2 }),
|
||||
Dinero({ amount: 1000, precision: 3 }),
|
||||
]);
|
||||
|
||||
Vendored
+206
-15
@@ -1,6 +1,7 @@
|
||||
// Type definitions for dinero.js 1.4
|
||||
// Type definitions for dinero.js 1.6
|
||||
// Project: https://sarahdayan.github.io/dinero.js
|
||||
// Definitions by: BendingBender <https://github.com/BendingBender>
|
||||
// David Acosta <https://github.com/juandaco>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.1
|
||||
|
||||
@@ -11,15 +12,19 @@ export = DineroFactory;
|
||||
declare function DineroFactory(options?: Dinero.Options): DineroFactory.Dinero;
|
||||
|
||||
declare namespace DineroFactory {
|
||||
let globalExchangeRatesApi: ExchangeRatesApiOptions;
|
||||
let globalFormat: string;
|
||||
let defaultAmount: number;
|
||||
let defaultCurrency: Currency;
|
||||
let defaultPrecision: number;
|
||||
let globalLocale: string;
|
||||
let globalRoundingMode: string;
|
||||
function normalizePrecision(objects: Dinero[]): Dinero[];
|
||||
let globalFormat: string;
|
||||
let globalRoundingMode: RoundingMode;
|
||||
let globalFormatRoundingMode: string;
|
||||
let globalExchangeRatesApi: ExchangeRatesApiOptions;
|
||||
function normalizePrecision(objects: ReadonlyArray<Dinero>): Dinero[];
|
||||
|
||||
interface Options {
|
||||
amount?: number;
|
||||
currency?: string;
|
||||
currency?: Currency;
|
||||
precision?: number;
|
||||
}
|
||||
|
||||
@@ -29,13 +34,13 @@ declare namespace DineroFactory {
|
||||
getLocale(): string;
|
||||
setLocale(newLocale: string): Dinero;
|
||||
getPrecision(): number;
|
||||
convertPrecision(newPrecision: number): Dinero;
|
||||
convertPrecision(newPrecision: number, roundingMode?: RoundingMode): Dinero;
|
||||
add(addend: Dinero): Dinero;
|
||||
subtract(subtrahend: Dinero): Dinero;
|
||||
multiply(multiplier: number, roundingMode?: RoundingMode): Dinero;
|
||||
divide(divisor: number, roundingMode?: RoundingMode): Dinero;
|
||||
percentage(percentage: number): Dinero;
|
||||
allocate(ratios: number[]): Dinero[];
|
||||
allocate(ratios: ReadonlyArray<number>): Dinero[];
|
||||
convert(currency: string, options?: ExchangeRatesApiOptions): Promise<Dinero>;
|
||||
equalsTo(comparator: Dinero): boolean;
|
||||
lessThan(comparator: Dinero): boolean;
|
||||
@@ -59,12 +64,12 @@ declare namespace DineroFactory {
|
||||
}
|
||||
|
||||
type RoundingMode =
|
||||
| "HALF_ODD"
|
||||
| "HALF_EVEN"
|
||||
| "HALF_UP"
|
||||
| "HALF_DOWN"
|
||||
| "HALF_TOWARDS_ZERO"
|
||||
| "HALF_AWAY_FROM_ZERO";
|
||||
| 'HALF_ODD'
|
||||
| 'HALF_EVEN'
|
||||
| 'HALF_UP'
|
||||
| 'HALF_DOWN'
|
||||
| 'HALF_TOWARDS_ZERO'
|
||||
| 'HALF_AWAY_FROM_ZERO';
|
||||
|
||||
interface ExchangeRatesApiOptions {
|
||||
endpoint: string;
|
||||
@@ -75,7 +80,193 @@ declare namespace DineroFactory {
|
||||
|
||||
interface DineroObject {
|
||||
amount: number;
|
||||
currency: string;
|
||||
currency: Currency;
|
||||
precision: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* ISO 4217 CURRENCY CODES as specified in the documentation
|
||||
* Taken from https://www.iso.org/iso-4217-currency-codes.html
|
||||
* sorted and parsed
|
||||
*/
|
||||
type Currency =
|
||||
| 'AED'
|
||||
| 'AFN'
|
||||
| 'ALL'
|
||||
| 'AMD'
|
||||
| 'ANG'
|
||||
| 'AOA'
|
||||
| 'ARS'
|
||||
| 'AUD'
|
||||
| 'AWG'
|
||||
| 'AZN'
|
||||
| 'BAM'
|
||||
| 'BBD'
|
||||
| 'BDT'
|
||||
| 'BGN'
|
||||
| 'BHD'
|
||||
| 'BIF'
|
||||
| 'BMD'
|
||||
| 'BND'
|
||||
| 'BOB'
|
||||
| 'BOV'
|
||||
| 'BRL'
|
||||
| 'BSD'
|
||||
| 'BTN'
|
||||
| 'BWP'
|
||||
| 'BYN'
|
||||
| 'BZD'
|
||||
| 'CAD'
|
||||
| 'CDF'
|
||||
| 'CHE'
|
||||
| 'CHF'
|
||||
| 'CHW'
|
||||
| 'CLF'
|
||||
| 'CLP'
|
||||
| 'CNY'
|
||||
| 'COP'
|
||||
| 'COU'
|
||||
| 'CRC'
|
||||
| 'CUC'
|
||||
| 'CUP'
|
||||
| 'CVE'
|
||||
| 'CZK'
|
||||
| 'DJF'
|
||||
| 'DKK'
|
||||
| 'DOP'
|
||||
| 'DZD'
|
||||
| 'EGP'
|
||||
| 'ERN'
|
||||
| 'ETB'
|
||||
| 'EUR'
|
||||
| 'FJD'
|
||||
| 'FKP'
|
||||
| 'GBP'
|
||||
| 'GEL'
|
||||
| 'GHS'
|
||||
| 'GIP'
|
||||
| 'GMD'
|
||||
| 'GNF'
|
||||
| 'GTQ'
|
||||
| 'GYD'
|
||||
| 'HKD'
|
||||
| 'HNL'
|
||||
| 'HRK'
|
||||
| 'HTG'
|
||||
| 'HUF'
|
||||
| 'IDR'
|
||||
| 'ILS'
|
||||
| 'INR'
|
||||
| 'IQD'
|
||||
| 'IRR'
|
||||
| 'ISK'
|
||||
| 'JMD'
|
||||
| 'JOD'
|
||||
| 'JPY'
|
||||
| 'KES'
|
||||
| 'KGS'
|
||||
| 'KHR'
|
||||
| 'KMF'
|
||||
| 'KPW'
|
||||
| 'KRW'
|
||||
| 'KWD'
|
||||
| 'KYD'
|
||||
| 'KZT'
|
||||
| 'LAK'
|
||||
| 'LBP'
|
||||
| 'LKR'
|
||||
| 'LRD'
|
||||
| 'LSL'
|
||||
| 'LYD'
|
||||
| 'MAD'
|
||||
| 'MDL'
|
||||
| 'MGA'
|
||||
| 'MKD'
|
||||
| 'MMK'
|
||||
| 'MNT'
|
||||
| 'MOP'
|
||||
| 'MRU'
|
||||
| 'MUR'
|
||||
| 'MVR'
|
||||
| 'MWK'
|
||||
| 'MXN'
|
||||
| 'MXV'
|
||||
| 'MYR'
|
||||
| 'MZN'
|
||||
| 'NAD'
|
||||
| 'NGN'
|
||||
| 'NIO'
|
||||
| 'NOK'
|
||||
| 'NPR'
|
||||
| 'NZD'
|
||||
| 'OMR'
|
||||
| 'PAB'
|
||||
| 'PEN'
|
||||
| 'PGK'
|
||||
| 'PHP'
|
||||
| 'PKR'
|
||||
| 'PLN'
|
||||
| 'PYG'
|
||||
| 'QAR'
|
||||
| 'RON'
|
||||
| 'RSD'
|
||||
| 'RUB'
|
||||
| 'RWF'
|
||||
| 'SAR'
|
||||
| 'SBD'
|
||||
| 'SCR'
|
||||
| 'SDG'
|
||||
| 'SEK'
|
||||
| 'SGD'
|
||||
| 'SHP'
|
||||
| 'SLL'
|
||||
| 'SOS'
|
||||
| 'SRD'
|
||||
| 'SSP'
|
||||
| 'STN'
|
||||
| 'SVC'
|
||||
| 'SYP'
|
||||
| 'SZL'
|
||||
| 'THB'
|
||||
| 'TJS'
|
||||
| 'TMT'
|
||||
| 'TND'
|
||||
| 'TOP'
|
||||
| 'TRY'
|
||||
| 'TTD'
|
||||
| 'TWD'
|
||||
| 'TZS'
|
||||
| 'UAH'
|
||||
| 'UGX'
|
||||
| 'USD'
|
||||
| 'USN'
|
||||
| 'UYI'
|
||||
| 'UYU'
|
||||
| 'UYW'
|
||||
| 'UZS'
|
||||
| 'VES'
|
||||
| 'VND'
|
||||
| 'VUV'
|
||||
| 'WST'
|
||||
| 'XAF'
|
||||
| 'XAG'
|
||||
| 'XAU'
|
||||
| 'XBA'
|
||||
| 'XBB'
|
||||
| 'XBC'
|
||||
| 'XBD'
|
||||
| 'XCD'
|
||||
| 'XDR'
|
||||
| 'XOF'
|
||||
| 'XPD'
|
||||
| 'XPF'
|
||||
| 'XPT'
|
||||
| 'XSU'
|
||||
| 'XTS'
|
||||
| 'XUA'
|
||||
| 'XXX'
|
||||
| 'YER'
|
||||
| 'ZAR'
|
||||
| 'ZMW'
|
||||
| 'ZWL';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user