@eternl/formats 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,23 +5,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.formatDisplayCompact = exports.formatDisplayPercent = exports.formatDisplayCurrency = exports.formatDisplayNumber = void 0;
7
7
  const big_js_1 = __importDefault(require("big.js"));
8
+ const constants_1 = require("./constants");
9
+ const errors_1 = require("./errors");
8
10
  const numeric_1 = require("./internal/numeric");
9
11
  const intl_cache_1 = require("./internal/intl-cache");
10
- const errors_1 = require("./errors");
11
- const constants_1 = require("./constants");
12
12
  const types_1 = require("./types");
13
- const DEFAULT_COMPACT_THRESHOLDS = {
13
+ const defaultCompactThresholds = {
14
14
  K: new big_js_1.default(1000),
15
15
  M: new big_js_1.default(1000000),
16
16
  B: new big_js_1.default(1000000000),
17
17
  T: new big_js_1.default(1000000000000)
18
18
  };
19
- const DEFAULT_COMPACT_SUFFIXES = {
19
+ const defaultCompactSuffixes = {
20
20
  K: 'K',
21
21
  M: 'M',
22
22
  B: 'B',
23
23
  T: 'T'
24
24
  };
25
+ const compactThresholdCache = new WeakMap();
25
26
  const resolveSignKind = (isNegative, isZero, signDisplay) => {
26
27
  const mode = signDisplay ?? types_1.SIGN_DISPLAYS.auto;
27
28
  switch (mode) {
@@ -47,35 +48,48 @@ const resolveCurrencyToken = (template, options) => {
47
48
  }
48
49
  return { value: code, fromCustom: false };
49
50
  };
50
- const resolveCompact = (value, options) => {
51
- if (!options.compact) {
51
+ const getNormalizedThreshold = (options, unit) => {
52
+ const overrides = options.compactThresholds;
53
+ if (!overrides || overrides[unit] === undefined) {
54
+ return undefined;
55
+ }
56
+ let cache = compactThresholdCache.get(options);
57
+ if (!cache) {
58
+ cache = new Map();
59
+ compactThresholdCache.set(options, cache);
60
+ }
61
+ let normalized = cache.get(unit);
62
+ if (!normalized) {
63
+ normalized = (0, numeric_1.normalizeNumeric)(overrides[unit], true);
64
+ cache.set(unit, normalized);
65
+ }
66
+ return normalized;
67
+ };
68
+ const resolveCompact = (value, options, enabled) => {
69
+ if (!enabled) {
52
70
  return { value };
53
71
  }
54
72
  const abs = value.abs();
55
- let chosen;
56
73
  for (const unit of constants_1.COMPACT_ORDER) {
57
- const overrideThreshold = options.compactThresholds?.[unit];
58
- const threshold = overrideThreshold !== undefined
59
- ? (0, numeric_1.normalizeNumeric)(overrideThreshold)
60
- : DEFAULT_COMPACT_THRESHOLDS[unit];
74
+ const overrideThreshold = getNormalizedThreshold(options, unit);
75
+ const threshold = overrideThreshold ?? getDefaultCompactThreshold(unit);
61
76
  if (abs.gte(threshold)) {
62
- chosen = unit;
63
- break;
77
+ const suffix = options.compactSuffixes?.[unit] ?? getDefaultCompactSuffix(unit);
78
+ const scaled = threshold.eq(0) ? value : value.div(threshold);
79
+ return { value: scaled, suffix };
64
80
  }
65
81
  }
66
- if (!chosen) {
67
- return { value };
68
- }
69
- const threshold = options.compactThresholds?.[chosen]
70
- ? (0, numeric_1.normalizeNumeric)(options.compactThresholds[chosen])
71
- : DEFAULT_COMPACT_THRESHOLDS[chosen];
72
- const suffix = options.compactSuffixes?.[chosen] ?? DEFAULT_COMPACT_SUFFIXES[chosen];
73
- const scaled = threshold.eq(0) ? value : value.div(threshold);
74
- return { value: scaled, suffix };
82
+ return { value };
83
+ };
84
+ const getDefaultCompactThreshold = (unit) => {
85
+ return defaultCompactThresholds[unit];
75
86
  };
76
- const buildNumberFormatOptions = (options) => {
87
+ const getDefaultCompactSuffix = (unit) => {
88
+ return defaultCompactSuffixes[unit];
89
+ };
90
+ const buildNumberFormatOptions = (options, style) => {
77
91
  const nfOptions = {
78
- style: options.style,
92
+ style,
79
93
  useGrouping: options.useGrouping !== false
80
94
  };
81
95
  if (options.signDisplay && options.signDisplay !== types_1.SIGN_DISPLAYS.negative) {
@@ -87,14 +101,14 @@ const buildNumberFormatOptions = (options) => {
87
101
  if (options.maxDecimals !== undefined) {
88
102
  nfOptions.maximumFractionDigits = options.maxDecimals;
89
103
  }
90
- if (options.style === constants_1.STYLE_CURRENCY && options.currencyCode) {
104
+ if (style === constants_1.STYLE_CURRENCY && options.currencyCode) {
91
105
  nfOptions.currency = options.currencyCode;
92
106
  nfOptions.currencyDisplay = options.useSymbol === false ? 'code' : 'symbol';
93
107
  }
94
108
  return nfOptions;
95
109
  };
96
- const formatFromPattern = (options, integerPart, fractionPart, sign, suffix) => {
97
- const nfOptions = buildNumberFormatOptions(options);
110
+ const formatFromPattern = (options, style, integerPart, fractionPart, sign, suffix) => {
111
+ const nfOptions = buildNumberFormatOptions(options, style);
98
112
  const pattern = (0, intl_cache_1.getNumberFormatPattern)(options.locale, nfOptions);
99
113
  const parts = sign === constants_1.DISPLAY_SIGN_MINUS ? pattern.negative : pattern.positive;
100
114
  const useGrouping = options.useGrouping !== false;
@@ -171,43 +185,30 @@ const formatFromPattern = (options, integerPart, fractionPart, sign, suffix) =>
171
185
  }
172
186
  return result;
173
187
  };
174
- const resolveDisplayOptions = (options, style) => {
188
+ const resolveDisplayStyle = (options, overrideStyle) => {
175
189
  if (!options.locale) {
176
190
  throw (0, errors_1.toError)(errors_1.FormatError.MissingLocale);
177
191
  }
192
+ const style = overrideStyle ?? options.style ?? constants_1.STYLE_DECIMAL;
178
193
  if (style === constants_1.STYLE_CURRENCY && !options.currencyCode) {
179
194
  throw (0, errors_1.toError)(errors_1.FormatError.MissingCurrencyCode);
180
195
  }
181
- return {
182
- ...options,
183
- style
184
- };
196
+ return style;
185
197
  };
186
- const formatDisplayInternal = (value, options, style) => {
187
- const resolved = resolveDisplayOptions(options, style);
188
- const baseValue = style === constants_1.STYLE_PERCENT
189
- ? (0, numeric_1.normalizeNumeric)(value).times(100)
190
- : (0, numeric_1.normalizeNumeric)(value);
191
- const { value: compactValue, suffix } = resolveCompact(baseValue, resolved);
192
- const numericParts = (0, numeric_1.computeNumericParts)(compactValue, resolved);
193
- const sign = resolveSignKind(numericParts.isNegative, numericParts.isZero, resolved.signDisplay);
194
- return formatFromPattern(resolved, numericParts.integer, numericParts.fraction, sign, suffix);
195
- };
196
- const formatDisplayNumber = (value, options) => {
197
- const style = options.style ?? constants_1.STYLE_DECIMAL;
198
- return formatDisplayInternal(value, { ...options, style }, style);
198
+ const formatDisplayInternal = (value, options, styleOverride, forceCompact) => {
199
+ const style = resolveDisplayStyle(options, styleOverride);
200
+ const base = (0, numeric_1.normalizeNumeric)(value);
201
+ const percentAdjusted = style === constants_1.STYLE_PERCENT ? base.times(100) : base;
202
+ const { value: scaled, suffix } = resolveCompact(percentAdjusted, options, forceCompact ?? options.compact === true);
203
+ const numericParts = (0, numeric_1.computeNumericParts)(scaled, options);
204
+ const sign = resolveSignKind(numericParts.isNegative, numericParts.isZero, options.signDisplay);
205
+ return formatFromPattern(options, style, numericParts.integer, numericParts.fraction, sign, suffix);
199
206
  };
207
+ const formatDisplayNumber = (value, options) => formatDisplayInternal(value, options);
200
208
  exports.formatDisplayNumber = formatDisplayNumber;
201
- const formatDisplayCurrency = (value, options) => {
202
- return formatDisplayInternal(value, { ...options, style: constants_1.STYLE_CURRENCY }, constants_1.STYLE_CURRENCY);
203
- };
209
+ const formatDisplayCurrency = (value, options) => formatDisplayInternal(value, options, constants_1.STYLE_CURRENCY);
204
210
  exports.formatDisplayCurrency = formatDisplayCurrency;
205
- const formatDisplayPercent = (value, options) => {
206
- return formatDisplayInternal(value, { ...options, style: constants_1.STYLE_PERCENT }, constants_1.STYLE_PERCENT);
207
- };
211
+ const formatDisplayPercent = (value, options) => formatDisplayInternal(value, options, constants_1.STYLE_PERCENT);
208
212
  exports.formatDisplayPercent = formatDisplayPercent;
209
- const formatDisplayCompact = (value, options) => {
210
- const style = options.style ?? constants_1.STYLE_DECIMAL;
211
- return formatDisplayInternal(value, { ...options, compact: true, style }, style);
212
- };
213
+ const formatDisplayCompact = (value, options) => formatDisplayInternal(value, options, undefined, true);
213
214
  exports.formatDisplayCompact = formatDisplayCompact;
@@ -7,6 +7,7 @@ exports.applyGrouping = exports.bigToDecimalString = exports.computeNumericParts
7
7
  const big_js_1 = __importDefault(require("big.js"));
8
8
  const constants_1 = require("../constants");
9
9
  const errors_1 = require("../errors");
10
+ const BIG_ZERO = new big_js_1.default(0);
10
11
  const ROUNDING_MODE_MAP = {
11
12
  roundDown: big_js_1.default.roundDown,
12
13
  roundHalfUp: big_js_1.default.roundHalfUp,
@@ -31,24 +32,27 @@ const assertPositiveInteger = (value, label) => {
31
32
  }
32
33
  return value;
33
34
  };
34
- const normalizeNumeric = (value) => {
35
+ const isZeroString = (input) => {
36
+ return /^[-+]?0+(?:\.0+)?$/.test(input);
37
+ };
38
+ const normalizeNumeric = (value, clone = false) => {
35
39
  if (value instanceof big_js_1.default) {
36
- if (!value.c) {
37
- return new big_js_1.default(constants_1.DECIMAL_ZERO);
38
- }
39
- return new big_js_1.default(value.toString());
40
+ return clone ? new big_js_1.default(value) : value;
40
41
  }
41
42
  if (typeof value === 'number') {
42
43
  if (!Number.isFinite(value)) {
43
44
  throw (0, errors_1.toRangeError)(errors_1.FormatError.NumericValueNonFinite);
44
45
  }
45
- return new big_js_1.default(value);
46
+ return value === 0 ? BIG_ZERO : new big_js_1.default(value);
46
47
  }
47
48
  if (typeof value === 'string') {
48
49
  const trimmed = value.trim();
49
50
  if (!trimmed) {
50
51
  throw (0, errors_1.toRangeError)(errors_1.FormatError.NumericStringEmpty);
51
52
  }
53
+ if (isZeroString(trimmed)) {
54
+ return BIG_ZERO;
55
+ }
52
56
  return new big_js_1.default(trimmed);
53
57
  }
54
58
  throw (0, errors_1.toTypeError)(errors_1.FormatError.UnsupportedNumericInput);
@@ -79,8 +83,7 @@ const computeNumericParts = (value, options = {}) => {
79
83
  }
80
84
  let bigValue = (0, exports.normalizeNumeric)(value);
81
85
  if (precision !== undefined) {
82
- const precise = bigValue.toPrecision(precision, roundingMode);
83
- bigValue = new big_js_1.default(precise);
86
+ bigValue = bigValue.prec(precision, roundingMode);
84
87
  }
85
88
  if (maxDecimals !== undefined) {
86
89
  bigValue = bigValue.round(maxDecimals, roundingMode);
@@ -117,7 +120,7 @@ exports.computeNumericParts = computeNumericParts;
117
120
  const bigToDecimalString = (value) => {
118
121
  const coefficient = (value.c ?? [0]);
119
122
  const exponent = value.e ?? 0;
120
- const sign = value.s < 0 ? constants_1.DEFAULT_SIGN_MINUS : '';
123
+ const sign = value.s < 0 ? constants_1.DEFAULT_SIGN_MINUS : constants_1.DECIMAL_EMPTY;
121
124
  if (coefficient.every((digit) => digit === 0)) {
122
125
  return constants_1.DECIMAL_ZERO;
123
126
  }
@@ -125,7 +128,7 @@ const bigToDecimalString = (value) => {
125
128
  const decimalIndex = exponent + 1;
126
129
  if (decimalIndex <= 0) {
127
130
  const zeros = constants_1.DECIMAL_ZERO.repeat(Math.abs(decimalIndex));
128
- return `${sign}${constants_1.DECIMAL_ZERO}${constants_1.DECIMAL_DOT}${zeros}${digits}`.replace(/\.$/, '');
131
+ return `${sign}${constants_1.DECIMAL_ZERO}${constants_1.DECIMAL_DOT}${zeros}${digits}`.replace(/\.$/, constants_1.DECIMAL_EMPTY);
129
132
  }
130
133
  if (decimalIndex >= digits.length) {
131
134
  const zeros = constants_1.DECIMAL_ZERO.repeat(decimalIndex - digits.length);
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,aAAa,EACd,MAAkC,SAAS,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAkB,aAAa,CAAC,OAAO,CAAA;AACjE,MAAM,CAAC,MAAM,cAAc,GAAiB,aAAa,CAAC,QAAQ,CAAA;AAClE,MAAM,CAAC,MAAM,aAAa,GAAkB,aAAa,CAAC,OAAO,CAAA;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAM;IAE9B,KAAK,EAAuB,OAAO;IACnC,IAAI,EAAwB,MAAM;IAClC,IAAI,EAAwB,MAAM;CAE1B,CAAA;AAIV,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAA;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAI,aAAa,CAAC,IAAI,CAAA;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAI,aAAa,CAAC,IAAI,CAAA;AAEpD,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,GAAG,aAAa,CAAC,CAAC,OAAO,EAAmB,CAAA;AAEzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAI,GAAG,CAAA;AAErC,MAAM,CAAC,MAAM,YAAY,GAAS,GAAG,CAAA;AACrC,MAAM,CAAC,MAAM,aAAa,GAAQ,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,WAAW,GAAU,GAAG,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,aAAa,EACd,MAAkC,SAAS,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAkB,aAAa,CAAC,OAAO,CAAA;AACjE,MAAM,CAAC,MAAM,cAAc,GAAiB,aAAa,CAAC,QAAQ,CAAA;AAClE,MAAM,CAAC,MAAM,aAAa,GAAkB,aAAa,CAAC,OAAO,CAAA;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAM;IAE9B,KAAK,EAAuB,OAAO;IACnC,IAAI,EAAwB,MAAM;IAClC,IAAI,EAAwB,MAAM;CAE1B,CAAA;AAIV,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAA;AACrD,MAAM,CAAC,MAAM,iBAAiB,GAAI,aAAa,CAAC,IAAI,CAAA;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAI,aAAa,CAAC,IAAI,CAAA;AAEpD,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,GAAG,aAAa,CAAC,CAAC,OAAO,EAAmB,CAAA;AAEzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAI,GAAG,CAAA;AAErC,MAAM,CAAC,MAAM,YAAY,GAAS,GAAG,CAAA;AACrC,MAAM,CAAC,MAAM,aAAa,GAAQ,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,WAAW,GAAU,GAAG,CAAA"}
@@ -1,21 +1,22 @@
1
1
  import Big from 'big.js';
2
+ import { COMPACT_ORDER, DEFAULT_SIGN_MINUS, DEFAULT_SIGN_PLUS, DISPLAY_SIGN_MINUS, DISPLAY_SIGN_NONE, DISPLAY_SIGN_PLUS, STYLE_CURRENCY, STYLE_DECIMAL, STYLE_PERCENT } from './constants';
3
+ import { FormatError, toError } from './errors';
2
4
  import { applyGrouping, computeNumericParts, normalizeNumeric } from './internal/numeric';
3
5
  import { getNumberFormatPattern } from './internal/intl-cache';
4
- import { FormatError, toError } from './errors';
5
- import { COMPACT_ORDER, DEFAULT_SIGN_MINUS, DEFAULT_SIGN_PLUS, DISPLAY_SIGN_MINUS, DISPLAY_SIGN_NONE, DISPLAY_SIGN_PLUS, STYLE_CURRENCY, STYLE_DECIMAL, STYLE_PERCENT } from './constants';
6
6
  import { SIGN_DISPLAYS } from './types';
7
- const DEFAULT_COMPACT_THRESHOLDS = {
7
+ const defaultCompactThresholds = {
8
8
  K: new Big(1000),
9
9
  M: new Big(1000000),
10
10
  B: new Big(1000000000),
11
11
  T: new Big(1000000000000)
12
12
  };
13
- const DEFAULT_COMPACT_SUFFIXES = {
13
+ const defaultCompactSuffixes = {
14
14
  K: 'K',
15
15
  M: 'M',
16
16
  B: 'B',
17
17
  T: 'T'
18
18
  };
19
+ const compactThresholdCache = new WeakMap();
19
20
  const resolveSignKind = (isNegative, isZero, signDisplay) => {
20
21
  const mode = signDisplay ?? SIGN_DISPLAYS.auto;
21
22
  switch (mode) {
@@ -41,35 +42,48 @@ const resolveCurrencyToken = (template, options) => {
41
42
  }
42
43
  return { value: code, fromCustom: false };
43
44
  };
44
- const resolveCompact = (value, options) => {
45
- if (!options.compact) {
45
+ const getNormalizedThreshold = (options, unit) => {
46
+ const overrides = options.compactThresholds;
47
+ if (!overrides || overrides[unit] === undefined) {
48
+ return undefined;
49
+ }
50
+ let cache = compactThresholdCache.get(options);
51
+ if (!cache) {
52
+ cache = new Map();
53
+ compactThresholdCache.set(options, cache);
54
+ }
55
+ let normalized = cache.get(unit);
56
+ if (!normalized) {
57
+ normalized = normalizeNumeric(overrides[unit], true);
58
+ cache.set(unit, normalized);
59
+ }
60
+ return normalized;
61
+ };
62
+ const resolveCompact = (value, options, enabled) => {
63
+ if (!enabled) {
46
64
  return { value };
47
65
  }
48
66
  const abs = value.abs();
49
- let chosen;
50
67
  for (const unit of COMPACT_ORDER) {
51
- const overrideThreshold = options.compactThresholds?.[unit];
52
- const threshold = overrideThreshold !== undefined
53
- ? normalizeNumeric(overrideThreshold)
54
- : DEFAULT_COMPACT_THRESHOLDS[unit];
68
+ const overrideThreshold = getNormalizedThreshold(options, unit);
69
+ const threshold = overrideThreshold ?? getDefaultCompactThreshold(unit);
55
70
  if (abs.gte(threshold)) {
56
- chosen = unit;
57
- break;
71
+ const suffix = options.compactSuffixes?.[unit] ?? getDefaultCompactSuffix(unit);
72
+ const scaled = threshold.eq(0) ? value : value.div(threshold);
73
+ return { value: scaled, suffix };
58
74
  }
59
75
  }
60
- if (!chosen) {
61
- return { value };
62
- }
63
- const threshold = options.compactThresholds?.[chosen]
64
- ? normalizeNumeric(options.compactThresholds[chosen])
65
- : DEFAULT_COMPACT_THRESHOLDS[chosen];
66
- const suffix = options.compactSuffixes?.[chosen] ?? DEFAULT_COMPACT_SUFFIXES[chosen];
67
- const scaled = threshold.eq(0) ? value : value.div(threshold);
68
- return { value: scaled, suffix };
76
+ return { value };
77
+ };
78
+ const getDefaultCompactThreshold = (unit) => {
79
+ return defaultCompactThresholds[unit];
69
80
  };
70
- const buildNumberFormatOptions = (options) => {
81
+ const getDefaultCompactSuffix = (unit) => {
82
+ return defaultCompactSuffixes[unit];
83
+ };
84
+ const buildNumberFormatOptions = (options, style) => {
71
85
  const nfOptions = {
72
- style: options.style,
86
+ style,
73
87
  useGrouping: options.useGrouping !== false
74
88
  };
75
89
  if (options.signDisplay && options.signDisplay !== SIGN_DISPLAYS.negative) {
@@ -81,14 +95,14 @@ const buildNumberFormatOptions = (options) => {
81
95
  if (options.maxDecimals !== undefined) {
82
96
  nfOptions.maximumFractionDigits = options.maxDecimals;
83
97
  }
84
- if (options.style === STYLE_CURRENCY && options.currencyCode) {
98
+ if (style === STYLE_CURRENCY && options.currencyCode) {
85
99
  nfOptions.currency = options.currencyCode;
86
100
  nfOptions.currencyDisplay = options.useSymbol === false ? 'code' : 'symbol';
87
101
  }
88
102
  return nfOptions;
89
103
  };
90
- const formatFromPattern = (options, integerPart, fractionPart, sign, suffix) => {
91
- const nfOptions = buildNumberFormatOptions(options);
104
+ const formatFromPattern = (options, style, integerPart, fractionPart, sign, suffix) => {
105
+ const nfOptions = buildNumberFormatOptions(options, style);
92
106
  const pattern = getNumberFormatPattern(options.locale, nfOptions);
93
107
  const parts = sign === DISPLAY_SIGN_MINUS ? pattern.negative : pattern.positive;
94
108
  const useGrouping = options.useGrouping !== false;
@@ -165,40 +179,27 @@ const formatFromPattern = (options, integerPart, fractionPart, sign, suffix) =>
165
179
  }
166
180
  return result;
167
181
  };
168
- const resolveDisplayOptions = (options, style) => {
182
+ const resolveDisplayStyle = (options, overrideStyle) => {
169
183
  if (!options.locale) {
170
184
  throw toError(FormatError.MissingLocale);
171
185
  }
186
+ const style = overrideStyle ?? options.style ?? STYLE_DECIMAL;
172
187
  if (style === STYLE_CURRENCY && !options.currencyCode) {
173
188
  throw toError(FormatError.MissingCurrencyCode);
174
189
  }
175
- return {
176
- ...options,
177
- style
178
- };
179
- };
180
- const formatDisplayInternal = (value, options, style) => {
181
- const resolved = resolveDisplayOptions(options, style);
182
- const baseValue = style === STYLE_PERCENT
183
- ? normalizeNumeric(value).times(100)
184
- : normalizeNumeric(value);
185
- const { value: compactValue, suffix } = resolveCompact(baseValue, resolved);
186
- const numericParts = computeNumericParts(compactValue, resolved);
187
- const sign = resolveSignKind(numericParts.isNegative, numericParts.isZero, resolved.signDisplay);
188
- return formatFromPattern(resolved, numericParts.integer, numericParts.fraction, sign, suffix);
189
- };
190
- export const formatDisplayNumber = (value, options) => {
191
- const style = options.style ?? STYLE_DECIMAL;
192
- return formatDisplayInternal(value, { ...options, style }, style);
193
- };
194
- export const formatDisplayCurrency = (value, options) => {
195
- return formatDisplayInternal(value, { ...options, style: STYLE_CURRENCY }, STYLE_CURRENCY);
196
- };
197
- export const formatDisplayPercent = (value, options) => {
198
- return formatDisplayInternal(value, { ...options, style: STYLE_PERCENT }, STYLE_PERCENT);
190
+ return style;
199
191
  };
200
- export const formatDisplayCompact = (value, options) => {
201
- const style = options.style ?? STYLE_DECIMAL;
202
- return formatDisplayInternal(value, { ...options, compact: true, style }, style);
192
+ const formatDisplayInternal = (value, options, styleOverride, forceCompact) => {
193
+ const style = resolveDisplayStyle(options, styleOverride);
194
+ const base = normalizeNumeric(value);
195
+ const percentAdjusted = style === STYLE_PERCENT ? base.times(100) : base;
196
+ const { value: scaled, suffix } = resolveCompact(percentAdjusted, options, forceCompact ?? options.compact === true);
197
+ const numericParts = computeNumericParts(scaled, options);
198
+ const sign = resolveSignKind(numericParts.isNegative, numericParts.isZero, options.signDisplay);
199
+ return formatFromPattern(options, style, numericParts.integer, numericParts.fraction, sign, suffix);
203
200
  };
201
+ export const formatDisplayNumber = (value, options) => formatDisplayInternal(value, options);
202
+ export const formatDisplayCurrency = (value, options) => formatDisplayInternal(value, options, STYLE_CURRENCY);
203
+ export const formatDisplayPercent = (value, options) => formatDisplayInternal(value, options, STYLE_PERCENT);
204
+ export const formatDisplayCompact = (value, options) => formatDisplayInternal(value, options, undefined, true);
204
205
  //# sourceMappingURL=display.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/display.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import Big from 'big.js';
2
2
  import { DECIMAL_DOT, DECIMAL_EMPTY, DECIMAL_ZERO, DEFAULT_SIGN_MINUS } from '../constants';
3
3
  import { FormatError, toRangeError, toTypeError } from '../errors';
4
+ const BIG_ZERO = new Big(0);
4
5
  const ROUNDING_MODE_MAP = {
5
6
  roundDown: Big.roundDown,
6
7
  roundHalfUp: Big.roundHalfUp,
@@ -25,24 +26,27 @@ const assertPositiveInteger = (value, label) => {
25
26
  }
26
27
  return value;
27
28
  };
28
- export const normalizeNumeric = (value) => {
29
+ const isZeroString = (input) => {
30
+ return /^[-+]?0+(?:\.0+)?$/.test(input);
31
+ };
32
+ export const normalizeNumeric = (value, clone = false) => {
29
33
  if (value instanceof Big) {
30
- if (!value.c) {
31
- return new Big(DECIMAL_ZERO);
32
- }
33
- return new Big(value.toString());
34
+ return clone ? new Big(value) : value;
34
35
  }
35
36
  if (typeof value === 'number') {
36
37
  if (!Number.isFinite(value)) {
37
38
  throw toRangeError(FormatError.NumericValueNonFinite);
38
39
  }
39
- return new Big(value);
40
+ return value === 0 ? BIG_ZERO : new Big(value);
40
41
  }
41
42
  if (typeof value === 'string') {
42
43
  const trimmed = value.trim();
43
44
  if (!trimmed) {
44
45
  throw toRangeError(FormatError.NumericStringEmpty);
45
46
  }
47
+ if (isZeroString(trimmed)) {
48
+ return BIG_ZERO;
49
+ }
46
50
  return new Big(trimmed);
47
51
  }
48
52
  throw toTypeError(FormatError.UnsupportedNumericInput);
@@ -71,8 +75,7 @@ export const computeNumericParts = (value, options = {}) => {
71
75
  }
72
76
  let bigValue = normalizeNumeric(value);
73
77
  if (precision !== undefined) {
74
- const precise = bigValue.toPrecision(precision, roundingMode);
75
- bigValue = new Big(precise);
78
+ bigValue = bigValue.prec(precision, roundingMode);
76
79
  }
77
80
  if (maxDecimals !== undefined) {
78
81
  bigValue = bigValue.round(maxDecimals, roundingMode);
@@ -108,7 +111,7 @@ export const computeNumericParts = (value, options = {}) => {
108
111
  export const bigToDecimalString = (value) => {
109
112
  const coefficient = (value.c ?? [0]);
110
113
  const exponent = value.e ?? 0;
111
- const sign = value.s < 0 ? DEFAULT_SIGN_MINUS : '';
114
+ const sign = value.s < 0 ? DEFAULT_SIGN_MINUS : DECIMAL_EMPTY;
112
115
  if (coefficient.every((digit) => digit === 0)) {
113
116
  return DECIMAL_ZERO;
114
117
  }
@@ -116,7 +119,7 @@ export const bigToDecimalString = (value) => {
116
119
  const decimalIndex = exponent + 1;
117
120
  if (decimalIndex <= 0) {
118
121
  const zeros = DECIMAL_ZERO.repeat(Math.abs(decimalIndex));
119
- return `${sign}${DECIMAL_ZERO}${DECIMAL_DOT}${zeros}${digits}`.replace(/\.$/, '');
122
+ return `${sign}${DECIMAL_ZERO}${DECIMAL_DOT}${zeros}${digits}`.replace(/\.$/, DECIMAL_EMPTY);
120
123
  }
121
124
  if (decimalIndex >= digits.length) {
122
125
  const zeros = DECIMAL_ZERO.repeat(decimalIndex - digits.length);
@@ -1 +1 @@
1
- {"version":3,"file":"numeric.js","sourceRoot":"","sources":["../../../src/internal/numeric.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numeric.js","sourceRoot":"","sources":["../../../src/internal/numeric.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,aAAa,GAAM;IAC9B,OAAO,EAAsB,SAAS;IACtC,QAAQ,EAAqB,UAAU;IACvC,OAAO,EAAsB,SAAS;CAC9B,CAAA;AAIV,MAAM,CAAC,MAAM,aAAa,GAAM;IAC9B,IAAI,EAAyB,MAAM;IACnC,MAAM,EAAuB,QAAQ;IACrC,UAAU,EAAmB,YAAY;IACzC,KAAK,EAAwB,OAAO;IACpC,QAAQ,EAAqB,UAAU;CAC/B,CAAA;AAIV,MAAM,CAAC,MAAM,aAAa,GAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,aAAa,GAAM;IAE9B,OAAO,EAAqB,SAAS;IACrC,QAAQ,EAAoB,UAAU;IACtC,OAAO,EAAqB,SAAS;CAE7B,CAAA;AAIV,MAAM,CAAC,MAAM,aAAa,GAAM;IAE9B,IAAI,EAAwB,MAAM;IAClC,MAAM,EAAsB,QAAQ;IACpC,UAAU,EAAkB,YAAY;IACxC,KAAK,EAAuB,OAAO;IACnC,QAAQ,EAAoB,UAAU;CAE9B,CAAA;AAIV,MAAM,CAAC,MAAM,aAAa,GAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { CompactUnit, NumberStyle } from './types';
1
+ import { type CompactUnit, type NumberStyle } from './types';
2
2
  export declare const STYLE_DECIMAL: NumberStyle;
3
3
  export declare const STYLE_CURRENCY: NumberStyle;
4
4
  export declare const STYLE_PERCENT: NumberStyle;
@@ -1,9 +1,5 @@
1
- import type { DisplayNumberOptions, NumericLike } from './types';
1
+ import { type DisplayNumberOptions, type NumericLike } from './types';
2
2
  export declare const formatDisplayNumber: (value: NumericLike, options: DisplayNumberOptions) => string;
3
- export declare const formatDisplayCurrency: (value: NumericLike, options: DisplayNumberOptions & {
4
- currencyCode: string;
5
- }) => string;
3
+ export declare const formatDisplayCurrency: (value: NumericLike, options: DisplayNumberOptions) => string;
6
4
  export declare const formatDisplayPercent: (value: NumericLike, options: DisplayNumberOptions) => string;
7
- export declare const formatDisplayCompact: (value: NumericLike, options: DisplayNumberOptions & {
8
- compact: true;
9
- }) => string;
5
+ export declare const formatDisplayCompact: (value: NumericLike, options: DisplayNumberOptions) => string;
@@ -12,7 +12,7 @@ export interface GroupingConfig {
12
12
  primary: number;
13
13
  secondary?: number;
14
14
  }
15
- export declare const normalizeNumeric: (value: NumericLike) => Big;
15
+ export declare const normalizeNumeric: (value: NumericLike, clone?: boolean) => Big;
16
16
  export declare const toFixedNoSci: (value: Big, fractionDigits?: number, roundingMode?: RoundingMode) => string;
17
17
  export declare const computeNumericParts: (value: NumericLike, options?: CommonNumberOptions) => NumericParts;
18
18
  export declare const bigToDecimalString: (value: Big) => string;
@@ -1,5 +1,5 @@
1
- import type Big from 'big.js';
2
- export type NumericLike = number | string | Big;
1
+ import { BigSource } from 'big.js';
2
+ export type NumericLike = BigSource;
3
3
  export type RoundingMode = 'roundDown' | 'roundHalfUp' | 'roundHalfEven' | 'roundUp';
4
4
  export declare const NUMBER_STYLES: {
5
5
  readonly decimal: "decimal";
@@ -31,7 +31,7 @@ export interface DisplayNumberOptions extends CommonNumberOptions {
31
31
  useSymbol?: boolean;
32
32
  customSymbols?: Record<string, string>;
33
33
  compact?: boolean;
34
- compactThresholds?: Partial<Record<CompactUnit, NumericLike>>;
34
+ compactThresholds?: Partial<Record<CompactUnit, BigSource>>;
35
35
  compactSuffixes?: Partial<Record<CompactUnit, string>>;
36
36
  signDisplay?: SignDisplay;
37
37
  useGrouping?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eternl/formats",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Locale-aware display and CSV formatting helpers for numeric data.",
5
5
  "type": "module",
6
6
  "main": "dist/cjs/index.js",
@@ -19,7 +19,7 @@
19
19
  "scripts": {
20
20
  "build": "npm run clean && tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json",
21
21
  "clean": "rimraf dist",
22
- "lint": "eslint . --fix",
22
+ "lint": "eslint .",
23
23
  "typecheck": "tsc --noEmit",
24
24
  "build:eslint-plugin": "tsc -p tools/eslint-plugin-padding/tsconfig.json",
25
25
  "test": "vitest run",