diff --git a/packages/js/currency/README.md b/packages/js/currency/README.md index 0269e64cc8c..113e253a609 100644 --- a/packages/js/currency/README.md +++ b/packages/js/currency/README.md @@ -25,7 +25,7 @@ const total = storeCurrency.formatAmount( 20.923 ); // '$20.92' // Get the rounded decimal value of a number at the precision used for the current currency, // from the settings api. Defaults to 2. -const total = storeCurrency.formatDecimal( '6.2892' ); // 6.29 https://google.com/?q=test +const total = storeCurrency.formatDecimal( '6.2892' ); // 6.29 // Get the string representation of a floating point number to the precision used by the current // currency. This is different from `formatAmount` by not returning the currency symbol. diff --git a/packages/js/currency/src/index.js b/packages/js/currency/src/index.js index cc0f10fef63..c948f6b28c4 100644 --- a/packages/js/currency/src/index.js +++ b/packages/js/currency/src/index.js @@ -7,6 +7,22 @@ import { sprintf } from '@wordpress/i18n'; import { numberFormat } from '@woocommerce/number'; import deprecated from '@wordpress/deprecated'; +/** + * @typedef {import('@woocommerce/number').NumberConfig} NumberConfig + */ +/** + * @typedef {Object} CurrencyProps + * @property {string} code Currency ISO code. + * @property {string} symbol Symbol, can be multi-character. + * @property {string} symbolPosition Where the symbol should be relative to the amount. One of `'left' | 'right' | 'left_space | 'right_space'`. + * @typedef {NumberConfig & CurrencyProps} CurrencyConfig + */ + +/** + * + * @param {CurrencyConfig} currencySetting + * @return {Object} currency object + */ const CurrencyFactory = function ( currencySetting ) { let currency; @@ -63,7 +79,6 @@ const CurrencyFactory = function ( currencySetting ) { * Formats money value. * * @deprecated - * * @param {number|string} number number to format * @return {?string} A formatted string. */ @@ -80,7 +95,7 @@ const CurrencyFactory = function ( currencySetting ) { /** * Get the default price format from a currency. * - * @param {Object} config Currency configuration. + * @param {CurrencyConfig} config Currency configuration. * @return {string} Price format. */ function getPriceFormat( config ) { @@ -108,7 +123,7 @@ const CurrencyFactory = function ( currencySetting ) { * @param {string} countryCode Country code. * @param {Object} localeInfo Locale info by country code. * @param {Object} currencySymbols Currency symbols by symbol code. - * @return {Object} Formatted currency data for country. + * @return {CurrencyConfig | {}} Formatted currency data for country. */ function getDataForCountry( countryCode, @@ -211,7 +226,6 @@ export default CurrencyFactory; * Dev Note: When adding new currencies below, the exchange rate array should also be updated in WooCommerce Admin's `business-details.js`. * * @deprecated - * * @return {Object} Curreny data. */ export function getCurrencyData() { diff --git a/packages/js/currency/tsconfig-cjs.json b/packages/js/currency/tsconfig-cjs.json index 2876a008ecc..04a2967c800 100644 --- a/packages/js/currency/tsconfig-cjs.json +++ b/packages/js/currency/tsconfig-cjs.json @@ -1,6 +1,7 @@ { "extends": "../tsconfig-cjs", "compilerOptions": { + "declaration": true, "outDir": "build" } } \ No newline at end of file diff --git a/packages/js/currency/tsconfig.json b/packages/js/currency/tsconfig.json index 6ac6ac42d21..1d13e90e9a6 100644 --- a/packages/js/currency/tsconfig.json +++ b/packages/js/currency/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../tsconfig", "compilerOptions": { + "declaration": true, "rootDir": "src", "outDir": "build-module" }