@adriangalilea/utils 0.25.0 → 0.26.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/README.md +18 -22
- package/dist/browser.d.ts +1 -1
- package/dist/browser.js +1 -1
- package/dist/universal/currency/crypto-symbols.d.ts +3 -11
- package/dist/universal/currency/crypto-symbols.d.ts.map +1 -1
- package/dist/universal/currency/crypto-symbols.js +8 -11
- package/dist/universal/currency/crypto-symbols.js.map +1 -1
- package/dist/universal/currency/index.d.ts +15 -0
- package/dist/universal/currency/index.d.ts.map +1 -1
- package/dist/universal/currency/index.js +35 -0
- package/dist/universal/currency/index.js.map +1 -1
- package/dist/universal/format.d.ts +13 -37
- package/dist/universal/format.d.ts.map +1 -1
- package/dist/universal/format.js +29 -77
- package/dist/universal/format.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -77,30 +77,26 @@ currency.formatBasisPoints(50) // "50 bps"
|
|
|
77
77
|
|
|
78
78
|
### Format
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
Pure number formatting — named exports, tree-shakeable, zero currency baggage
|
|
81
|
+
(money formatting lives in the currency module, which owns the symbol/decimals
|
|
82
|
+
knowledge and its crypto-symbol dataset):
|
|
81
83
|
|
|
82
84
|
```typescript
|
|
83
|
-
import {
|
|
84
|
-
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
format.auto(100, 'EUR') // "€100.00"
|
|
99
|
-
|
|
100
|
-
// Percentages
|
|
101
|
-
format.percentage(12.3456) // "12.3%"
|
|
102
|
-
format.percentage(0.05) // "0.05%"
|
|
103
|
-
format.percentage(123.456) // "123%"
|
|
85
|
+
import { compact, percentage, withCommas } from '@adriangalilea/utils/format'
|
|
86
|
+
|
|
87
|
+
withCommas(1234567) // "1,234,567"
|
|
88
|
+
withCommas(1234.567, 2) // "1,234.57"
|
|
89
|
+
compact(1234567) // "1.2M"
|
|
90
|
+
compact(1234) // "1.2K"
|
|
91
|
+
percentage(12.3456) // "12.3%"
|
|
92
|
+
percentage(0.05) // "0.05%"
|
|
93
|
+
percentage(123.456) // "123%"
|
|
94
|
+
|
|
95
|
+
// Money — from currency, not format:
|
|
96
|
+
import { usd, btc, money } from '@adriangalilea/utils/currency'
|
|
97
|
+
usd(1234.56) // "$1234.56"
|
|
98
|
+
btc(0.00001234) // "0.00001234 ₿"
|
|
99
|
+
money(100, 'EUR') // "€100.00"
|
|
104
100
|
```
|
|
105
101
|
|
|
106
102
|
### CLI presentation (`cli`)
|
package/dist/browser.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* These utilities do not depend on Node.js APIs and can run in the browser.
|
|
4
4
|
*
|
|
5
5
|
* Usage in Next.js client components:
|
|
6
|
-
* import { log,
|
|
6
|
+
* import { log, compact, currency } from '@adriangalilea/utils/browser'
|
|
7
7
|
*/
|
|
8
8
|
export * from "./offensive.js";
|
|
9
9
|
export type { RuntimeCapabilities } from "./runtime.js";
|
package/dist/browser.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* These utilities do not depend on Node.js APIs and can run in the browser.
|
|
4
4
|
*
|
|
5
5
|
* Usage in Next.js client components:
|
|
6
|
-
* import { log,
|
|
6
|
+
* import { log, compact, currency } from '@adriangalilea/utils/browser'
|
|
7
7
|
*/
|
|
8
8
|
// Offensive programming - adapted for browser (throws instead of process.exit)
|
|
9
9
|
export * from "./offensive.js";
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Run 'npm run update-crypto' to refresh
|
|
6
|
-
*/
|
|
7
|
-
export declare const cryptoSymbols: Set<string>;
|
|
8
|
-
/**
|
|
9
|
-
* Check if a symbol is a known cryptocurrency
|
|
10
|
-
* @param symbol - The symbol to check (case-insensitive)
|
|
11
|
-
* @returns true if the symbol is in the crypto list
|
|
2
|
+
* Check if a symbol is a known cryptocurrency (case-insensitive).
|
|
3
|
+
* Backed by the CoinGecko list in crypto-symbols-data.ts —
|
|
4
|
+
* run 'npm run update-crypto' to refresh.
|
|
12
5
|
*
|
|
13
6
|
* @example
|
|
14
7
|
* isCryptoSymbol("BTC") // true
|
|
15
8
|
* isCryptoSymbol("btc") // true
|
|
16
|
-
* isCryptoSymbol("ETH") // true
|
|
17
9
|
* isCryptoSymbol("DOGE") // true
|
|
18
10
|
*/
|
|
19
11
|
export declare function isCryptoSymbol(symbol: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-symbols.d.ts","sourceRoot":"","sources":["../../../src/universal/currency/crypto-symbols.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto-symbols.d.ts","sourceRoot":"","sources":["../../../src/universal/currency/crypto-symbols.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGtD"}
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import { cryptoSymbolsData } from "./crypto-symbols-data.js";
|
|
2
|
+
// The Set builds on FIRST LOOKUP, not at import: the dataset is ~133KB and
|
|
3
|
+
// most consumers of the currency module never ask "is this crypto?". Laziness
|
|
4
|
+
// costs one `??=`; eagerness costs every import a startup parse of 8k symbols.
|
|
5
|
+
let cryptoSymbols;
|
|
2
6
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* Run 'npm run update-crypto' to refresh
|
|
7
|
-
*/
|
|
8
|
-
export const cryptoSymbols = new Set(cryptoSymbolsData);
|
|
9
|
-
/**
|
|
10
|
-
* Check if a symbol is a known cryptocurrency
|
|
11
|
-
* @param symbol - The symbol to check (case-insensitive)
|
|
12
|
-
* @returns true if the symbol is in the crypto list
|
|
7
|
+
* Check if a symbol is a known cryptocurrency (case-insensitive).
|
|
8
|
+
* Backed by the CoinGecko list in crypto-symbols-data.ts —
|
|
9
|
+
* run 'npm run update-crypto' to refresh.
|
|
13
10
|
*
|
|
14
11
|
* @example
|
|
15
12
|
* isCryptoSymbol("BTC") // true
|
|
16
13
|
* isCryptoSymbol("btc") // true
|
|
17
|
-
* isCryptoSymbol("ETH") // true
|
|
18
14
|
* isCryptoSymbol("DOGE") // true
|
|
19
15
|
*/
|
|
20
16
|
export function isCryptoSymbol(symbol) {
|
|
17
|
+
cryptoSymbols ??= new Set(cryptoSymbolsData);
|
|
21
18
|
return cryptoSymbols.has(symbol.toUpperCase());
|
|
22
19
|
}
|
|
23
20
|
//# sourceMappingURL=crypto-symbols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-symbols.js","sourceRoot":"","sources":["../../../src/universal/currency/crypto-symbols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"crypto-symbols.js","sourceRoot":"","sources":["../../../src/universal/currency/crypto-symbols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,2EAA2E;AAC3E,8EAA8E;AAC9E,+EAA+E;AAC/E,IAAI,aAAsC,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC5C,aAAa,KAAK,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC7C,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -42,6 +42,17 @@ export declare function percentageDiff(a: number, b: number): number;
|
|
|
42
42
|
export declare function basisPointsToPercent(bps: number): number;
|
|
43
43
|
export declare function percentToBasisPoints(percent: number): number;
|
|
44
44
|
export declare function formatBasisPoints(bps: number): string;
|
|
45
|
+
/** $1234.56 with optimal decimals; sign before the $. */
|
|
46
|
+
export declare function usd(value: number): string;
|
|
47
|
+
/** Bitcoin with optimal decimals: 0.00001234 ₿ */
|
|
48
|
+
export declare function btc(value: number): string;
|
|
49
|
+
/** Ethereum with optimal decimals: 0.123 Ξ */
|
|
50
|
+
export declare function eth(value: number): string;
|
|
51
|
+
/**
|
|
52
|
+
* Format a value in any currency: symbol before for fiat/stablecoins
|
|
53
|
+
* (`$12.34`), after for crypto (`0.5 ₿`), optimal decimals either way.
|
|
54
|
+
*/
|
|
55
|
+
export declare function money(value: number, currencyCode: string): string;
|
|
45
56
|
export declare const currency: {
|
|
46
57
|
getSymbol: typeof getSymbol;
|
|
47
58
|
getOptimalDecimals: typeof getOptimalDecimals;
|
|
@@ -57,6 +68,10 @@ export declare const currency: {
|
|
|
57
68
|
basisPointsToPercent: typeof basisPointsToPercent;
|
|
58
69
|
percentToBasisPoints: typeof percentToBasisPoints;
|
|
59
70
|
formatBasisPoints: typeof formatBasisPoints;
|
|
71
|
+
usd: typeof usd;
|
|
72
|
+
btc: typeof btc;
|
|
73
|
+
eth: typeof eth;
|
|
74
|
+
money: typeof money;
|
|
60
75
|
symbols: {
|
|
61
76
|
readonly BTC: "₿";
|
|
62
77
|
readonly XBT: "₿";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/currency/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,eAAe,GAAG,MAAM,CAAC;AAEjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GAClB,MAAM,CAgER;AA4CD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA2BhD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAatD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmB9C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAclD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkC5C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM3E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/universal/currency/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,eAAe,GAAG,MAAM,CAAC;AAEjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GAClB,MAAM,CAgER;AA4CD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA2BhD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAatD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmB9C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAclD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkC5C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM3E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAOD,yDAAyD;AACzD,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzC;AAED,kDAAkD;AAClD,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,8CAA8C;AAC9C,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBpB,CAAC"}
|
|
@@ -293,6 +293,37 @@ export function percentToBasisPoints(percent) {
|
|
|
293
293
|
export function formatBasisPoints(bps) {
|
|
294
294
|
return `${bps} bps`;
|
|
295
295
|
}
|
|
296
|
+
// ── money formatting ───────────────────────────────────────────────
|
|
297
|
+
// Lives HERE, not in universal/format: formatting money needs the symbol +
|
|
298
|
+
// optimal-decimals knowledge (and, transitively, the crypto dataset), and the
|
|
299
|
+
// pure format module must stay free of that weight.
|
|
300
|
+
/** $1234.56 with optimal decimals; sign before the $. */
|
|
301
|
+
export function usd(value) {
|
|
302
|
+
const decimals = getOptimalDecimals(value, "USD");
|
|
303
|
+
const formatted = Math.abs(value).toFixed(decimals);
|
|
304
|
+
return value < 0 ? `-$${formatted}` : `$${formatted}`;
|
|
305
|
+
}
|
|
306
|
+
/** Bitcoin with optimal decimals: 0.00001234 ₿ */
|
|
307
|
+
export function btc(value) {
|
|
308
|
+
return `${value.toFixed(getOptimalDecimals(value, "BTC"))} ₿`;
|
|
309
|
+
}
|
|
310
|
+
/** Ethereum with optimal decimals: 0.123 Ξ */
|
|
311
|
+
export function eth(value) {
|
|
312
|
+
return `${value.toFixed(getOptimalDecimals(value, "ETH"))} Ξ`;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Format a value in any currency: symbol before for fiat/stablecoins
|
|
316
|
+
* (`$12.34`), after for crypto (`0.5 ₿`), optimal decimals either way.
|
|
317
|
+
*/
|
|
318
|
+
export function money(value, currencyCode) {
|
|
319
|
+
const decimals = getOptimalDecimals(value, currencyCode);
|
|
320
|
+
const symbol = getSymbol(currencyCode);
|
|
321
|
+
const formatted = Math.abs(value).toFixed(decimals);
|
|
322
|
+
if (isFiat(currencyCode) || isStablecoin(currencyCode)) {
|
|
323
|
+
return value < 0 ? `-${symbol}${formatted}` : `${symbol}${formatted}`;
|
|
324
|
+
}
|
|
325
|
+
return value < 0 ? `-${formatted} ${symbol}` : `${formatted} ${symbol}`;
|
|
326
|
+
}
|
|
296
327
|
export const currency = {
|
|
297
328
|
getSymbol,
|
|
298
329
|
getOptimalDecimals,
|
|
@@ -308,6 +339,10 @@ export const currency = {
|
|
|
308
339
|
basisPointsToPercent,
|
|
309
340
|
percentToBasisPoints,
|
|
310
341
|
formatBasisPoints,
|
|
342
|
+
usd,
|
|
343
|
+
btc,
|
|
344
|
+
eth,
|
|
345
|
+
money,
|
|
311
346
|
symbols: CurrencySymbols,
|
|
312
347
|
};
|
|
313
348
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/universal/currency/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/universal/currency/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Pure number formatting. No currency coupling — money formatting (usd, btc,
|
|
3
|
+
* money(value, code), …) lives in ./currency, which owns the symbol/decimals
|
|
4
|
+
* knowledge and its 133KB crypto-symbol dataset. Keeping this module pure is
|
|
5
|
+
* what lets a browser bundle import `compact` without shipping that dataset.
|
|
6
|
+
*
|
|
7
|
+
* Named exports only (no namespace object): a namespace keeps every function
|
|
8
|
+
* — and its imports — alive in the bundle; named imports tree-shake.
|
|
3
9
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* Format a value as USD with optimal decimals
|
|
11
|
-
*/
|
|
12
|
-
usd(value: number): string;
|
|
13
|
-
/**
|
|
14
|
-
* Format a value as Bitcoin with optimal decimals
|
|
15
|
-
*/
|
|
16
|
-
btc(value: number): string;
|
|
17
|
-
/**
|
|
18
|
-
* Format a value as Ethereum with optimal decimals
|
|
19
|
-
*/
|
|
20
|
-
eth(value: number): string;
|
|
21
|
-
/**
|
|
22
|
-
* Auto format a value with the appropriate currency symbol and decimals
|
|
23
|
-
*/
|
|
24
|
-
auto(value: number, currencyCode: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* Format a percentage with smart decimal places
|
|
27
|
-
*/
|
|
28
|
-
percentage(value: number): string;
|
|
29
|
-
/**
|
|
30
|
-
* Format a value with thousands separators
|
|
31
|
-
*/
|
|
32
|
-
withCommas(value: number, decimals?: number): string;
|
|
33
|
-
/**
|
|
34
|
-
* Format a value in compact notation (1.2K, 3.4M, etc)
|
|
35
|
-
*/
|
|
36
|
-
compact(value: number): string;
|
|
37
|
-
}
|
|
38
|
-
export declare const format: FormatOps;
|
|
39
|
-
export {};
|
|
10
|
+
/** Compact notation: 1.2K, 3.4M, … (Intl, en). */
|
|
11
|
+
export declare function compact(value: number): string;
|
|
12
|
+
/** Percentage with smart decimals: 2 below 0.1, 0 at ≥100, else 1. */
|
|
13
|
+
export declare function percentage(value: number): string;
|
|
14
|
+
/** Thousands separators: 1,234,567.89 (optionally fixed decimals). */
|
|
15
|
+
export declare function withCommas(value: number, decimals?: number): string;
|
|
40
16
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/universal/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/universal/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kDAAkD;AAClD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnE"}
|
package/dist/universal/format.js
CHANGED
|
@@ -1,83 +1,35 @@
|
|
|
1
|
-
import { getOptimalDecimals, getSymbol, isFiat, isStablecoin, } from "./currency/index.js";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* Pure number formatting. No currency coupling — money formatting (usd, btc,
|
|
3
|
+
* money(value, code), …) lives in ./currency, which owns the symbol/decimals
|
|
4
|
+
* knowledge and its 133KB crypto-symbol dataset. Keeping this module pure is
|
|
5
|
+
* what lets a browser bundle import `compact` without shipping that dataset.
|
|
6
|
+
*
|
|
7
|
+
* Named exports only (no namespace object): a namespace keeps every function
|
|
8
|
+
* — and its imports — alive in the bundle; named imports tree-shake.
|
|
4
9
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const formatted = Math.abs(value).toFixed(decimals);
|
|
18
|
-
return value < 0 ? `-$${formatted}` : `$${formatted}`;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Format a value as Bitcoin with optimal decimals
|
|
22
|
-
*/
|
|
23
|
-
btc(value) {
|
|
24
|
-
const decimals = getOptimalDecimals(value, "BTC");
|
|
25
|
-
return `${value.toFixed(decimals)} ₿`;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Format a value as Ethereum with optimal decimals
|
|
29
|
-
*/
|
|
30
|
-
eth(value) {
|
|
31
|
-
const decimals = getOptimalDecimals(value, "ETH");
|
|
32
|
-
return `${value.toFixed(decimals)} Ξ`;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Auto format a value with the appropriate currency symbol and decimals
|
|
36
|
-
*/
|
|
37
|
-
auto(value, currencyCode) {
|
|
38
|
-
const decimals = getOptimalDecimals(value, currencyCode);
|
|
39
|
-
const symbol = getSymbol(currencyCode);
|
|
40
|
-
const formatted = Math.abs(value).toFixed(decimals);
|
|
41
|
-
// Put symbol before for fiat/stablecoins, after for crypto
|
|
42
|
-
if (isFiat(currencyCode) || isStablecoin(currencyCode)) {
|
|
43
|
-
return value < 0 ? `-${symbol}${formatted}` : `${symbol}${formatted}`;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
return value < 0 ? `-${formatted} ${symbol}` : `${formatted} ${symbol}`;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Format a percentage with smart decimal places
|
|
51
|
-
*/
|
|
52
|
-
percentage(value) {
|
|
53
|
-
let decimals = 1;
|
|
54
|
-
if (Math.abs(value) < 0.1) {
|
|
55
|
-
decimals = 2;
|
|
56
|
-
}
|
|
57
|
-
else if (Math.abs(value) >= 100) {
|
|
58
|
-
decimals = 0;
|
|
59
|
-
}
|
|
60
|
-
return `${value.toFixed(decimals)}%`;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Format a value with thousands separators
|
|
64
|
-
*/
|
|
65
|
-
withCommas(value, decimals) {
|
|
66
|
-
const fixed = decimals !== undefined ? value.toFixed(decimals) : value.toString();
|
|
67
|
-
const parts = fixed.split(".");
|
|
68
|
-
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
69
|
-
return parts.join(".");
|
|
10
|
+
/** Compact notation: 1.2K, 3.4M, … (Intl, en). */
|
|
11
|
+
export function compact(value) {
|
|
12
|
+
return new Intl.NumberFormat("en", {
|
|
13
|
+
notation: "compact",
|
|
14
|
+
maximumFractionDigits: 1,
|
|
15
|
+
}).format(value);
|
|
16
|
+
}
|
|
17
|
+
/** Percentage with smart decimals: 2 below 0.1, 0 at ≥100, else 1. */
|
|
18
|
+
export function percentage(value) {
|
|
19
|
+
let decimals = 1;
|
|
20
|
+
if (Math.abs(value) < 0.1) {
|
|
21
|
+
decimals = 2;
|
|
70
22
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
*/
|
|
74
|
-
compact(value) {
|
|
75
|
-
const formatter = new Intl.NumberFormat("en", {
|
|
76
|
-
notation: "compact",
|
|
77
|
-
maximumFractionDigits: 1,
|
|
78
|
-
});
|
|
79
|
-
return formatter.format(value);
|
|
23
|
+
else if (Math.abs(value) >= 100) {
|
|
24
|
+
decimals = 0;
|
|
80
25
|
}
|
|
26
|
+
return `${value.toFixed(decimals)}%`;
|
|
27
|
+
}
|
|
28
|
+
/** Thousands separators: 1,234,567.89 (optionally fixed decimals). */
|
|
29
|
+
export function withCommas(value, decimals) {
|
|
30
|
+
const fixed = decimals !== undefined ? value.toFixed(decimals) : value.toString();
|
|
31
|
+
const parts = fixed.split(".");
|
|
32
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
33
|
+
return parts.join(".");
|
|
81
34
|
}
|
|
82
|
-
export const format = new FormatOps();
|
|
83
35
|
//# sourceMappingURL=format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/universal/format.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/universal/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kDAAkD;AAClD,MAAM,UAAU,OAAO,CAAC,KAAa;IACpC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QAClC,QAAQ,EAAE,SAAS;QACnB,qBAAqB,EAAE,CAAC;KACxB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;QAC3B,QAAQ,GAAG,CAAC,CAAC;IACd,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;QACnC,QAAQ,GAAG,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,QAAiB;IAC1D,MAAM,KAAK,GACV,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adriangalilea/utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -170,5 +170,6 @@
|
|
|
170
170
|
"bugs": {
|
|
171
171
|
"url": "https://github.com/adriangalilea/ts-utils/issues"
|
|
172
172
|
},
|
|
173
|
-
"homepage": "https://github.com/adriangalilea/ts-utils#readme"
|
|
173
|
+
"homepage": "https://github.com/adriangalilea/ts-utils#readme",
|
|
174
|
+
"sideEffects": false
|
|
174
175
|
}
|