sealed_currencies 0.2.0 copy "sealed_currencies: ^0.2.0" to clipboard
sealed_currencies: ^0.2.0 copied to clipboard

Provides data for world currencies in the form of sealed classes.

CodeFactor Codecov sealed_currencies License: MIT Pub package

This ISO-driven, pure Dart, fully tested and and dependency-free package provides information about world currencies in form of compile-time constant sealed classes. Contains the all actively used 1691 currencies with ISO letter 4217 codes, also provides ISO 4217 numeric codes, their English, native names, units, subunits, etc. For Flutter ready widgets (like currency picker) please use world_countries package.

Features #

FiatCurrency class provides the following information about currencies:

Field Required Description Example for FiatEur
code Yes The international 3-numeric non-empty letter code as defined by the ISO 4217 standard. "EUR"
name Yes The English name of the currency. "Euro"
namesNative Yes The native names of the currency in different locales. ["Euro"]
codeNumeric Yes The international 3-numeric non-empty numeric code as defined by the ISO 4217 standard. "978"
alternateSymbols No Alternative symbols for this currency or null if no such symbols exists. null
disambiguateSymbol No Alternative currency used if symbol is ambiguous, or null if no such symbol exists. null
htmlEntity No The HTML entity for the currency symbol, or null if no such entity exists. "€"
priority Yes A numerical value that can be used to sort/group any currency list. 2
smallestDenomination Yes Smallest amount of cash possible (in the subunit of this currency). 1
subunit No The name of the fractional monetary unit, or null if no such name exists. "Cent"
subunitToUnit Yes The proportion between the unit and the subunit. 100
priority Yes A numerical value that can be used to sort/group any currency list. 2
unitFirst Yes Should the currency symbol precede the amount, or should it come after? true
symbol No The currency symbol. "€"
decimalMark Yes The decimal mark, or character used to separate the whole unit from the subunit. ","
thousandsSeparator Yes The character used to separate thousands grouping of the whole unit. "."

Compile time constant list of all currencies accessible via FiatCurrency.list and more over, the FiatCurrency class provides the following methods:

  • maybeFromValue - returns a currency instance if the value matches the provided value, otherwise returns null.
  • fromCode - returns a currency instance if the value matches the provided ISO 4217 letter code.
  • fromCodeNumeric - returns a currency instance if the value matches the provided ISO 4217 numeric code.
  • fromName - returns a currency instance if the value matches the provided English name.

and (thanks to sealed nature of the class) functional-style like methods: whenOrNull, maybeWhen, when, map, maybeMap.

Getting started #

To use this package, add sealed_currencies as a dependency in your pubspec.yaml file.

dependencies:
  sealed_currencies: any

Then import the package in your Dart code:

import 'package:sealed_currencies/sealed_currencies.dart';

Usage #

Use FiatCurrency class to get information about currencies. Either construct a new instance directly or with use of the class factory constructors/method fromCode, fromCodeNumeric, fromName or from any value that class contains maybeFromValue, or select one from the FiatCurrency.list constant.

  print(FiatCurrency.list.length); // Prints: "169".

  final serbianDinar = FiatCurrency.fromCode("Rsd");
  print(serbianDinar); // Prints: "Serbian Dinar".

  final maybeEuro = FiatCurrency.maybeFromValue(
    "Euro",
    where: (currency) => currency.namesNative.first,
  );
  print(maybeEuro?.toString(short: false));
  /*
  Prints: "FiatCurrency(code: EUR, priority: 2, name: Euro, namesNative: [Euro],
   symbol: €, disambiguateSymbol: null, alternateSymbols: null, subunit: Cent,
  subunitToUnit: 100, unitFirst: true, htmlEntity: €, decimalMark: ",",
  thousandsSeparator: ".", codeNumeric: 978, smallestDenomination: 1)".
  */

For more usage examples, please see the /example folder.

Additional information #

For more information on using this package, check out the API documentation. If you have any issues or suggestions for the package, please file them in the GitHub repository.

References, credits and sources #

6
likes
0
pub points
83%
popularity

Publisher

verified publishertsin.is

Provides data for world currencies in the form of sealed classes.

Repository (GitHub)
View/report issues

Topics

#currencies #currency #money #sealed #iso-4217 #iso

License

unknown (license)

More

Packages that depend on sealed_currencies