@eternl/formats 0.5.0 → 0.6.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.
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/date.js +3 -4
- package/dist/cjs/display.js +3 -4
- package/dist/cjs/internal/locale.js +9 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/date.js +4 -5
- package/dist/esm/date.js.map +1 -1
- package/dist/esm/display.js +3 -4
- package/dist/esm/display.js.map +1 -1
- package/dist/esm/internal/locale.js +6 -0
- package/dist/esm/internal/locale.js.map +1 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/date.d.ts +1 -1
- package/dist/types/internal/locale.d.ts +1 -0
- package/dist/types/types.d.ts +2 -2
- package/package.json +2 -2
package/dist/cjs/constants.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DECIMAL_DOT = exports.DECIMAL_EMPTY = exports.DECIMAL_ZERO = exports.DEFAULT_SIGN_PLUS = exports.DEFAULT_SIGN_MINUS = exports.COMPACT_ORDER = exports.DISPLAY_SIGN_NONE = exports.DISPLAY_SIGN_PLUS = exports.DISPLAY_SIGN_MINUS = exports.DISPLAY_SIGNS = exports.STYLE_PERCENT = exports.STYLE_CURRENCY = exports.STYLE_DECIMAL = void 0;
|
|
3
|
+
exports.DECIMAL_DOT = exports.DECIMAL_EMPTY = exports.DECIMAL_ZERO = exports.DEFAULT_SIGN_PLUS = exports.DEFAULT_SIGN_MINUS = exports.COMPACT_ORDER = exports.DISPLAY_SIGN_NONE = exports.DISPLAY_SIGN_PLUS = exports.DISPLAY_SIGN_MINUS = exports.DISPLAY_SIGNS = exports.DEFAULT_LOCALE = exports.STYLE_PERCENT = exports.STYLE_CURRENCY = exports.STYLE_DECIMAL = void 0;
|
|
4
4
|
const types_1 = require("./types");
|
|
5
5
|
exports.STYLE_DECIMAL = types_1.NUMBER_STYLES.decimal;
|
|
6
6
|
exports.STYLE_CURRENCY = types_1.NUMBER_STYLES.currency;
|
|
7
7
|
exports.STYLE_PERCENT = types_1.NUMBER_STYLES.percent;
|
|
8
|
+
exports.DEFAULT_LOCALE = 'en-US';
|
|
8
9
|
exports.DISPLAY_SIGNS = {
|
|
9
10
|
minus: 'minus',
|
|
10
11
|
plus: 'plus',
|
package/dist/cjs/date.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.formatCsvDate = exports.formatDisplayDate = void 0;
|
|
4
4
|
const errors_1 = require("./errors");
|
|
5
5
|
const intl_cache_1 = require("./internal/intl-cache");
|
|
6
|
+
const locale_1 = require("./internal/locale");
|
|
6
7
|
const toDate = (value) => {
|
|
7
8
|
if (value instanceof Date) {
|
|
8
9
|
const timestamp = value.getTime();
|
|
@@ -35,11 +36,9 @@ const toDate = (value) => {
|
|
|
35
36
|
throw (0, errors_1.toTypeError)(errors_1.FormatError.UnsupportedDateInput);
|
|
36
37
|
};
|
|
37
38
|
const formatDisplayDate = (date, locale, options) => {
|
|
38
|
-
|
|
39
|
-
throw (0, errors_1.toError)(errors_1.FormatError.MissingLocale);
|
|
40
|
-
}
|
|
39
|
+
const resolvedLocale = (0, locale_1.resolveLocale)(locale);
|
|
41
40
|
const parsed = toDate(date);
|
|
42
|
-
const formatter = (0, intl_cache_1.getDateFormat)(
|
|
41
|
+
const formatter = (0, intl_cache_1.getDateFormat)(resolvedLocale, options);
|
|
43
42
|
return formatter.format(parsed);
|
|
44
43
|
};
|
|
45
44
|
exports.formatDisplayDate = formatDisplayDate;
|
package/dist/cjs/display.js
CHANGED
|
@@ -8,6 +8,7 @@ const big_js_1 = __importDefault(require("big.js"));
|
|
|
8
8
|
const constants_1 = require("./constants");
|
|
9
9
|
const errors_1 = require("./errors");
|
|
10
10
|
const numeric_1 = require("./internal/numeric");
|
|
11
|
+
const locale_1 = require("./internal/locale");
|
|
11
12
|
const intl_cache_1 = require("./internal/intl-cache");
|
|
12
13
|
const types_1 = require("./types");
|
|
13
14
|
const defaultCompactThresholds = {
|
|
@@ -109,7 +110,8 @@ const buildNumberFormatOptions = (options, style) => {
|
|
|
109
110
|
};
|
|
110
111
|
const formatFromPattern = (options, style, integerPart, fractionPart, sign, suffix) => {
|
|
111
112
|
const nfOptions = buildNumberFormatOptions(options, style);
|
|
112
|
-
const
|
|
113
|
+
const locale = (0, locale_1.resolveLocale)(options.locale);
|
|
114
|
+
const pattern = (0, intl_cache_1.getNumberFormatPattern)(locale, nfOptions);
|
|
113
115
|
const parts = sign === constants_1.DISPLAY_SIGN_MINUS ? pattern.negative : pattern.positive;
|
|
114
116
|
const useGrouping = options.useGrouping !== false;
|
|
115
117
|
const groupedInteger = (0, numeric_1.applyGrouping)(integerPart, {
|
|
@@ -186,9 +188,6 @@ const formatFromPattern = (options, style, integerPart, fractionPart, sign, suff
|
|
|
186
188
|
return result;
|
|
187
189
|
};
|
|
188
190
|
const resolveDisplayStyle = (options, overrideStyle) => {
|
|
189
|
-
if (!options.locale) {
|
|
190
|
-
throw (0, errors_1.toError)(errors_1.FormatError.MissingLocale);
|
|
191
|
-
}
|
|
192
191
|
const style = overrideStyle ?? options.style ?? constants_1.STYLE_DECIMAL;
|
|
193
192
|
if (style === constants_1.STYLE_CURRENCY && !options.currencyCode) {
|
|
194
193
|
throw (0, errors_1.toError)(errors_1.FormatError.MissingCurrencyCode);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveLocale = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const resolveLocale = (value) => {
|
|
6
|
+
const candidate = value?.trim();
|
|
7
|
+
return candidate && candidate.length > 0 ? candidate : constants_1.DEFAULT_LOCALE;
|
|
8
|
+
};
|
|
9
|
+
exports.resolveLocale = resolveLocale;
|
package/dist/esm/constants.js
CHANGED
|
@@ -2,6 +2,7 @@ import { COMPACT_UNITS, NUMBER_STYLES } from './types';
|
|
|
2
2
|
export const STYLE_DECIMAL = NUMBER_STYLES.decimal;
|
|
3
3
|
export const STYLE_CURRENCY = NUMBER_STYLES.currency;
|
|
4
4
|
export const STYLE_PERCENT = NUMBER_STYLES.percent;
|
|
5
|
+
export const DEFAULT_LOCALE = 'en-US';
|
|
5
6
|
export const DISPLAY_SIGNS = {
|
|
6
7
|
minus: 'minus',
|
|
7
8
|
plus: 'plus',
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"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,cAAc,GAAK,OAAO,CAAA;AAEvC,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"}
|
package/dist/esm/date.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { FormatError,
|
|
1
|
+
import { FormatError, toRangeError, toTypeError } from './errors';
|
|
2
2
|
import { getDateFormat } from './internal/intl-cache';
|
|
3
|
+
import { resolveLocale } from './internal/locale';
|
|
3
4
|
const toDate = (value) => {
|
|
4
5
|
if (value instanceof Date) {
|
|
5
6
|
const timestamp = value.getTime();
|
|
@@ -32,11 +33,9 @@ const toDate = (value) => {
|
|
|
32
33
|
throw toTypeError(FormatError.UnsupportedDateInput);
|
|
33
34
|
};
|
|
34
35
|
export const formatDisplayDate = (date, locale, options) => {
|
|
35
|
-
|
|
36
|
-
throw toError(FormatError.MissingLocale);
|
|
37
|
-
}
|
|
36
|
+
const resolvedLocale = resolveLocale(locale);
|
|
38
37
|
const parsed = toDate(date);
|
|
39
|
-
const formatter = getDateFormat(
|
|
38
|
+
const formatter = getDateFormat(resolvedLocale, options);
|
|
40
39
|
return formatter.format(parsed);
|
|
41
40
|
};
|
|
42
41
|
export const formatCsvDate = (date) => {
|
package/dist/esm/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/date.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/date.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/display.js
CHANGED
|
@@ -2,6 +2,7 @@ import Big from 'big.js';
|
|
|
2
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
3
|
import { FormatError, toError } from './errors';
|
|
4
4
|
import { applyGrouping, computeNumericParts, normalizeNumeric } from './internal/numeric';
|
|
5
|
+
import { resolveLocale } from './internal/locale';
|
|
5
6
|
import { getNumberFormatPattern } from './internal/intl-cache';
|
|
6
7
|
import { SIGN_DISPLAYS } from './types';
|
|
7
8
|
const defaultCompactThresholds = {
|
|
@@ -103,7 +104,8 @@ const buildNumberFormatOptions = (options, style) => {
|
|
|
103
104
|
};
|
|
104
105
|
const formatFromPattern = (options, style, integerPart, fractionPart, sign, suffix) => {
|
|
105
106
|
const nfOptions = buildNumberFormatOptions(options, style);
|
|
106
|
-
const
|
|
107
|
+
const locale = resolveLocale(options.locale);
|
|
108
|
+
const pattern = getNumberFormatPattern(locale, nfOptions);
|
|
107
109
|
const parts = sign === DISPLAY_SIGN_MINUS ? pattern.negative : pattern.positive;
|
|
108
110
|
const useGrouping = options.useGrouping !== false;
|
|
109
111
|
const groupedInteger = applyGrouping(integerPart, {
|
|
@@ -180,9 +182,6 @@ const formatFromPattern = (options, style, integerPart, fractionPart, sign, suff
|
|
|
180
182
|
return result;
|
|
181
183
|
};
|
|
182
184
|
const resolveDisplayStyle = (options, overrideStyle) => {
|
|
183
|
-
if (!options.locale) {
|
|
184
|
-
throw toError(FormatError.MissingLocale);
|
|
185
|
-
}
|
|
186
185
|
const style = overrideStyle ?? options.style ?? STYLE_DECIMAL;
|
|
187
186
|
if (style === STYLE_CURRENCY && !options.currencyCode) {
|
|
188
187
|
throw toError(FormatError.MissingCurrencyCode);
|
package/dist/esm/display.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/display.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAyB,QAAQ,CAAA;AAC3C,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAkC,aAAa,CAAA;AAChD,OAAO,EACL,WAAW,EACX,OAAO,EACR,MAAkC,UAAU,CAAA;AAC7C,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EACjB,MAAkC,oBAAoB,CAAA;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/display.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../src/internal/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAU,cAAc,CAAA;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAM,CAAC,KAAc,EAAU,EAAE;IAEzD,MAAM,SAAS,GAAe,KAAK,EAAE,IAAI,EAAE,CAAA;IAE3C,OAAO,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAA;AACvE,CAAC,CAAA"}
|
|
@@ -2,6 +2,7 @@ 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;
|
|
5
|
+
export declare const DEFAULT_LOCALE = "en-US";
|
|
5
6
|
export declare const DISPLAY_SIGNS: {
|
|
6
7
|
readonly minus: "minus";
|
|
7
8
|
readonly plus: "plus";
|
package/dist/types/date.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const formatDisplayDate: (date: Date | number | string, locale
|
|
1
|
+
export declare const formatDisplayDate: (date: Date | number | string, locale?: string, options?: Intl.DateTimeFormatOptions) => string;
|
|
2
2
|
export declare const formatCsvDate: (date: Date | number | string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const resolveLocale: (value?: string) => string;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface CommonNumberOptions {
|
|
|
25
25
|
trimTrailingZeros?: boolean;
|
|
26
26
|
}
|
|
27
27
|
export interface DisplayNumberOptions extends CommonNumberOptions {
|
|
28
|
-
locale
|
|
28
|
+
locale?: string;
|
|
29
29
|
style?: NumberStyle;
|
|
30
30
|
currencyCode?: string;
|
|
31
31
|
useSymbol?: boolean;
|
|
@@ -47,6 +47,6 @@ export interface CsvColumnSpec<T = any> {
|
|
|
47
47
|
formatter?: (value: unknown) => string;
|
|
48
48
|
}
|
|
49
49
|
export interface FormatDisplayParams {
|
|
50
|
-
locale
|
|
50
|
+
locale?: string;
|
|
51
51
|
options: Intl.NumberFormatOptions;
|
|
52
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eternl/formats",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.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",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/big.js": "6.2.2",
|
|
41
|
-
"@types/node": "22.18.
|
|
41
|
+
"@types/node": "22.18.9",
|
|
42
42
|
"@typescript-eslint/parser": "8.46.0",
|
|
43
43
|
"@typescript-eslint/utils": "8.46.0",
|
|
44
44
|
"eslint": "9.37.0",
|