A parser & formatter for ICU NumberFormat skeleton strings & patterns

Usage no npm install needed!

<script type="module">
  import messageformatNumberSkeleton from 'https://cdn.skypack.dev/@messageformat/number-skeleton';



Tools for working with ICU NumberFormat skeletons and patterns.

import {
  Skeleton, // TS only
  Unit // TS only
} from '@messageformat/number-skeleton';

The package is released as an ES module only. If using from a CommonJS context, you may need to import() it, or use a module loader like esm.

Uses Intl.NumberFormat internally, including features provided by the Unified API Proposal.


Class Description
NumberFormatError Base class for errors. In addition to a code and a human-friendly message, may also includes the token stem as well as other fields.


Function Description
getNumberFormatter(locales, skeleton, currency, onError) Returns a number formatter function for the given locales and number skeleton
getNumberFormatterSource(locales, skeleton, currency, onError) Returns a string of JavaScript source that evaluates to a number formatter function with the same (value: number) => string signature as the function returned by getNumberFormatter().
parseNumberPattern(src, currency, onError) Parse an ICU NumberFormatter pattern string into a Skeleton structure.
parseNumberSkeleton(src, onError) Parse an ICU NumberFormatter skeleton string into a Skeleton structure.


Interface Description
Skeleton An object representation of a parsed string skeleton, with token values grouped by type.

Type Aliases

Type Alias Description
Unit Measurement units defined by the Unicode CLDR

Messageformat is an OpenJS Foundation project, and we follow its Code of Conduct.

OpenJS Foundation