{"_id":"@cybanjar/intl-formatter","_rev":"2-2f0e0fdeaa3ce3bb522318881b0da6ff","name":"@cybanjar/intl-formatter","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.1":{"name":"@cybanjar/intl-formatter","version":"1.0.1","keywords":["intl","number","formatter","i18n","internationalization","localization"],"author":{"name":"Syamsul Amin"},"license":"ISC","_id":"@cybanjar/intl-formatter@1.0.1","maintainers":[{"name":"cybanjar","email":"cybanjar@gmail.com"}],"homepage":"https://github.com/cybanjar/intl-formatter#readme","bugs":{"url":"https://github.com/cybanjar/intl-formatter/issues"},"dist":{"shasum":"2dc3e9e4a2e001a2b36169a3b8438dd1ab22e9a3","tarball":"https://registry.npmjs.org/@cybanjar/intl-formatter/-/intl-formatter-1.0.1.tgz","fileCount":20,"integrity":"sha512-yZV3qOY1JUKFYms0eEQAtwBmE5+j+zYR8+wRPG/ILURoANdKS2EA6s5s2fq9XryWcXEb/XanNdF3IbiWRxmuJg==","signatures":[{"sig":"MEQCIFYafEi9cJHA3xQeFGbHUg59n9hRERMiMcLlub4c+ewyAiAOIs6TIBgY8n5Abo3NGLXlMA8ES4H/PhOHFAGhBVPP1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65745},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"7dad8d29260c01c435ac271643810ec0e84b6fd7","scripts":{"test":"jest","build":"rimraf dist && rollup -c","format":"prettier --write .","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"cybanjar","email":"cybanjar@gmail.com"},"repository":{"url":"git+https://github.com/cybanjar/intl-formatter.git","type":"git"},"_npmVersion":"10.5.0","description":"A flexible number formatting library using Intl.NumberFormat with fallbacks","directories":{},"_nodeVersion":"21.7.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.27.3","ts-jest":"^29.2.5","prettier":"^3.3.3","typescript":"^5.6.3","@types/jest":"^29.5.14","rollup-plugin-dts":"^6.1.1","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/intl-formatter_1.0.1_1732806297616_0.8924121952818658","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@cybanjar/intl-formatter","version":"1.0.2","keywords":["intl","number","formatter","i18n","internationalization","localization"],"author":{"name":"Syamsul Amin"},"license":"ISC","_id":"@cybanjar/intl-formatter@1.0.2","maintainers":[{"name":"cybanjar","email":"cybanjar@gmail.com"}],"homepage":"https://github.com/cybanjar/intl-formatter#readme","bugs":{"url":"https://github.com/cybanjar/intl-formatter/issues"},"dist":{"shasum":"e3bced88e1958cc4c7fd62afe8de46c45f3d8636","tarball":"https://registry.npmjs.org/@cybanjar/intl-formatter/-/intl-formatter-1.0.2.tgz","fileCount":20,"integrity":"sha512-pIjmq/KR162FmAQ5J6IDsNY7c9pXwQyS2pfoSs7KTJOETV7uQwHptQE4kKdQe+8Lz6ppqXzPYb2IrqaPgFdLCA==","signatures":[{"sig":"MEUCIQCyQNlsNvs/BNyU0joky3ftzaVoW8T7eNBUz8HbLmrKxgIgYizeSM5K6wwPmg2kC6skC6davLlyBRAnfDLLxSDRaEQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":65128},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"05256f07b2637670651e9cefe2f50995450f8dd2","scripts":{"test":"jest","build":"rimraf dist && rollup -c","check":"npx ts-node test.ts","format":"prettier --write .","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"cybanjar","email":"cybanjar@gmail.com"},"repository":{"url":"git+https://github.com/cybanjar/intl-formatter.git","type":"git"},"_npmVersion":"10.5.0","description":"A flexible number formatting library using Intl.NumberFormat with fallbacks","directories":{},"_nodeVersion":"21.7.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tslib":"^2.8.1","rimraf":"^6.0.1","rollup":"^4.27.3","ts-jest":"^29.2.5","prettier":"^3.3.3","typescript":"^5.6.3","@types/jest":"^29.5.14","rollup-plugin-dts":"^6.1.1","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-typescript":"^12.1.1","@rollup/plugin-node-resolve":"^15.3.0"},"_npmOperationalInternal":{"tmp":"tmp/intl-formatter_1.0.2_1732810316047_0.8209126594911724","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@cybanjar/intl-formatter","version":"1.0.3","main":"dist/index.js","module":"dist/index.esm.js","types":"dist/index.d.ts","scripts":{"build":"rimraf dist && rollup -c","test":"jest","check":"npx ts-node test.ts","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build","format":"prettier --write ."},"publishConfig":{"access":"public"},"keywords":["intl","number","formatter","i18n","internationalization","localization"],"author":{"name":"Syamsul Amin"},"license":"ISC","description":"A flexible number formatting library using Intl.NumberFormat with fallbacks","repository":{"type":"git","url":"git+https://github.com/cybanjar/intl-formatter.git"},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-node-resolve":"^15.3.0","@rollup/plugin-typescript":"^12.1.1","@types/jest":"^29.5.14","jest":"^29.7.0","jest-environment-jsdom":"^29.7.0","prettier":"^3.3.3","rimraf":"^6.0.1","rollup":"^4.27.3","rollup-plugin-dts":"^6.1.1","ts-jest":"^29.2.5","tslib":"^2.8.1","typescript":"^5.6.3"},"_id":"@cybanjar/intl-formatter@1.0.3","gitHead":"e47f91154c82bd1c2a48602a9c93a9596e267166","bugs":{"url":"https://github.com/cybanjar/intl-formatter/issues"},"homepage":"https://github.com/cybanjar/intl-formatter#readme","_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-IBbfYtU0QFmmoBKuao2zfwgIpslejP5i8iH6U1Eb4rD5XJU1nnixuKC5criLxZnKzGEx/zrCes6PMkAqD/LGzA==","shasum":"d7b1916de4142b2128c27a0d84cb19f258e7115e","tarball":"https://registry.npmjs.org/@cybanjar/intl-formatter/-/intl-formatter-1.0.3.tgz","fileCount":22,"unpackedSize":67266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAazpumyv+SDb5hETD9ik7o/Nunk8SgTZ08hEOuor6lIAiAQW4RCGrNF9x/kIfDtDTVM+XkfkE2thrJRb0/tJwaETg=="}]},"_npmUser":{"name":"cybanjar","email":"cybanjar@gmail.com"},"directories":{},"maintainers":[{"name":"cybanjar","email":"cybanjar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/intl-formatter_1.0.3_1732896506816_0.5973578522194045"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-28T15:04:57.505Z","modified":"2024-11-29T16:08:27.136Z","1.0.1":"2024-11-28T15:04:57.803Z","1.0.2":"2024-11-28T16:11:56.212Z","1.0.3":"2024-11-29T16:08:26.990Z"},"bugs":{"url":"https://github.com/cybanjar/intl-formatter/issues"},"author":{"name":"Syamsul Amin"},"license":"ISC","homepage":"https://github.com/cybanjar/intl-formatter#readme","keywords":["intl","number","formatter","i18n","internationalization","localization"],"repository":{"type":"git","url":"git+https://github.com/cybanjar/intl-formatter.git"},"description":"A flexible number formatting library using Intl.NumberFormat with fallbacks","maintainers":[{"name":"cybanjar","email":"cybanjar@gmail.com"}],"readme":"# IntlFormatter\n\nA flexible and robust number formatting library that provides a consistent interface for formatting numbers across different locales and formats. It gracefully handles browser compatibility issues and provides fallbacks for unsupported features.\n\n## Installation\n\n```bash\nnpm install @cybanjar/intl-formatter\n```\n\n## Basic Usage\n\n```typescript\nimport { IntlFormatter } from 'intl-formatter';\n// Create a formatter instance with default options\nconst formatter = new IntlFormatter();\n// Basic number formatting\nformatter.format(1234.567); // \"1,234.57\"\nformatter.format(1234.56, { maximumFractionDigits: 0 }); // Expected: \"1,235\"\n// Currency formatting\nformatter.formatCurrency(1234.567, { currency: 'USD' }); // \"$1,234.57\"\n// Percentage formatting\nformatter.formatPercent(0.1234); // \"12.3%\"\n```\n\n## Features\n\n- **Locale and Format Fallbacks**: Automatically falls back to a more basic format if the locale and format are not supported.\n- **Flexible Options**: Provides a wide range of options to customize the formatting style and precision.\n- **Browser Compatibility**: Uses Intl.NumberFormat under the hood, ensuring compatibility with modern browsers.    \n\n\n## Available Formats\n\n- **Currency**: Formats a number as a currency string.\n- **Decimal**: Formats a number as a decimal string.\n- **Percent**: Formats a number as a percentage string.\n- **Scientific**: Formats a number in scientific notation.\n- **Unit**: Formats a number as a unit string.\n- **Custom**: Formats a number as a custom string.\n\n## Available Units\n\n- **Mass**: Formats a number as a mass unit (e.g. grams, kilograms).\n- **Time**: Formats a number as a time unit (e.g. seconds, minutes, hours).\n- **Length**: Formats a number as a length unit (e.g. meters, kilometers).\n- **Volume**: Formats a number as a volume unit (e.g. liters, milliliters).\n- **Speed**: Formats a number as a speed unit (e.g. meters per second, kilometers per hour).\n- **Temperature**: Formats a number as a temperature unit (e.g. Celsius, Fahrenheit).\n\n## Format currency\n\n```typescript\nconst formatter = new IntlFormatter();\nformatter.formatCurrency(1234.567, { currency: 'USD' }); // \"$1,234.57\"\n```\n\n## Format percent\n\n```typescript\nformatter.formatPercent(0.1234); // \"12.3%\"\n```\n\n## Format unit\n\n```typescript\nformatter.formatUnit(1234.567, { unit: 'meter' }); // \"1,234.57 m\"\n```\n\n## Format custom\n\n```typescript\nformatter.formatCustom(1234.567, (formattedValue) => `${formattedValue} meters`); // \"1,234.57 meters\"\n```\n\n## Format range\n\n```typescript\nformatter.formatRange(1234.567, 1234.567); // \"1,234.57 - 1,234.57\"\n```\n\n## Format compact\n\n```typescript\nformatter.formatCompact(1234.567); // \"1.23K\"\n```\n\n## Format scientific\n\n```typescript\nformatter.formatScientific(1234.567); // \"1.234567E3\"\n```\n\n## Unit Long and Narrow Form \n\n```typescript\nformatter.getUnitLongForm('meter'); // \"meter\"\nformatter.getUnitNarrowForm('meter'); // \"m\"\n```\n\n\n\n## Available Options\n\n| Option | Type | Default | Description | Available Options |\n|--------|------|---------|-------------|-------------------|\n| `locale` | string | `navigator.language` or 'en-US' | The locale to use for formatting | Any valid locale string (e.g. 'en-US', 'fr-FR', 'de-DE') |\n| `style` | string | 'decimal' | The formatting style | 'decimal', 'currency', 'percent', 'unit' |\n| `notation` | string | 'standard' | The notation to use | 'standard', 'scientific', 'engineering', 'compact' |\n| `minimumFractionDigits` | number | 0 | Minimum number of fraction digits to use | 0-20 |\n| `maximumFractionDigits` | number | 2 | Maximum number of fraction digits to use | 0-20 |\n| `minimumSignificantDigits` | number | undefined | Minimum number of significant digits | 1-21 |\n| `maximumSignificantDigits` | number | undefined | Maximum number of significant digits | 1-21 |\n| `useGrouping` | boolean \\| string | true | Whether to use grouping separators | true, false, 'always', 'auto', 'min2' |\n| `roundingMode` | string | 'halfEven' | The rounding mode to use | 'ceil', 'floor', 'expand', 'trunc', 'halfCeil', 'halfFloor', 'halfExpand', 'halfTrunc', 'halfEven' |\n| `currency` | string | undefined | The currency code | Any valid ISO 4217 currency code (e.g. 'USD', 'EUR', 'JPY') |\n| `currencyDisplay` | string | 'symbol' | How to display the currency | 'symbol', 'narrowSymbol', 'code', 'name' |\n| `currencySign` | string | undefined | The currency sign to use | 'standard', 'accounting' |\n| `unit` | string | undefined | The unit to use for unit formatting | Any valid unit identifier (e.g. 'meter', 'liter', 'celsius') |\n| `unitDisplay` | string | 'short' | How to display the unit | 'short', 'long', 'narrow' |\n| `signDisplay` | string | 'auto' | When to display the sign | 'auto', 'never', 'always', 'exceptZero' |\n| `compactDisplay` | string | 'short' | Compact notation display style | 'short', 'long' |\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}