-
Notifications
You must be signed in to change notification settings - Fork 600
/
Copy pathnumber-runtime.js
87 lines (74 loc) · 3.08 KB
/
number-runtime.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
define([
"./common/runtime-key",
"./common/create-error/unsupported-feature",
"./common/validate/parameter-presence",
"./common/validate/parameter-type/number",
"./common/validate/parameter-type/string",
"./core-runtime",
"./number/format",
"./number/formatter-fn",
"./number/parse",
"./number/parser-fn",
"./number/to-parts-formatter-fn",
"./util/loose-matching",
"./util/number/round",
"./util/remove-literal-quotes"
], function( runtimeKey, createErrorUnsupportedFeature, validateParameterPresence,
validateParameterTypeNumber, validateParameterTypeString, Globalize, numberFormat,
numberFormatterFn, numberParse, numberParserFn, numberToPartsFormatterFn, looseMatching,
numberRound, removeLiteralQuotes ) {
Globalize._createErrorUnsupportedFeature = createErrorUnsupportedFeature;
Globalize._looseMatching = looseMatching;
Globalize._numberFormat = numberFormat;
Globalize._numberFormatterFn = numberFormatterFn;
Globalize._numberParse = numberParse;
Globalize._numberParserFn = numberParserFn;
Globalize._numberRound = numberRound;
Globalize._numberToPartsFormatterFn = numberToPartsFormatterFn;
Globalize._removeLiteralQuotes = removeLiteralQuotes;
Globalize._validateParameterPresence = validateParameterPresence;
Globalize._validateParameterTypeNumber = validateParameterTypeNumber;
Globalize._validateParameterTypeString = validateParameterTypeString;
// Stamp runtimeKey and return cached fn.
// Note, this function isn't made common to all formatters and parsers, because in practice this is
// only used (at the moment) for numberFormatter used by unitFormatter.
// TODO: Move this function into a common place when this is used by different formatters.
function cached( runtimeKey ) {
Globalize[ runtimeKey ].runtimeKey = runtimeKey;
return Globalize[ runtimeKey ];
}
Globalize.numberFormatter =
Globalize.prototype.numberFormatter = function( options ) {
options = options || {};
return cached( runtimeKey( "numberFormatter", this._locale, [ options ] ) );
};
Globalize.numberToPartsFormatter =
Globalize.prototype.numberToPartsFormatter = function( options ) {
options = options || {};
return cached( runtimeKey( "numberToPartsFormatter", this._locale, [ options ] ) );
};
Globalize.numberParser =
Globalize.prototype.numberParser = function( options ) {
options = options || {};
return Globalize[ runtimeKey( "numberParser", this._locale, [ options ] ) ];
};
Globalize.formatNumber =
Globalize.prototype.formatNumber = function( value, options ) {
validateParameterPresence( value, "value" );
validateParameterTypeNumber( value, "value" );
return this.numberFormatter( options )( value );
};
Globalize.formatNumberToParts =
Globalize.prototype.formatNumberToParts = function( value, options ) {
validateParameterPresence( value, "value" );
validateParameterTypeNumber( value, "value" );
return this.numberFormatter( options )( value );
};
Globalize.parseNumber =
Globalize.prototype.parseNumber = function( value, options ) {
validateParameterPresence( value, "value" );
validateParameterTypeString( value, "value" );
return this.numberParser( options )( value );
};
return Globalize;
});