katanakit-js 2.2.1 → 2.12.9
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 +72 -437
- package/dist/adapters/astro/astro.service.d.ts +103 -15
- package/dist/adapters/astro/astro.service.d.ts.map +1 -1
- package/dist/adapters/astro/astro.service.js +145 -75
- package/dist/adapters/astro/astro.service.js.map +1 -1
- package/dist/adapters/astro/index.d.ts +1 -1
- package/dist/adapters/astro/index.d.ts.map +1 -1
- package/dist/adapters/astro/index.js +1 -1
- package/dist/adapters/astro/index.js.map +1 -1
- package/dist/adapters/astro/rss.service.d.ts +85 -105
- package/dist/adapters/astro/rss.service.d.ts.map +1 -1
- package/dist/adapters/astro/rss.service.js +172 -168
- package/dist/adapters/astro/rss.service.js.map +1 -1
- package/dist/adapters/astro/seo.service.d.ts +10 -0
- package/dist/adapters/astro/seo.service.d.ts.map +1 -0
- package/dist/adapters/astro/seo.service.js +3 -0
- package/dist/adapters/astro/seo.service.js.map +1 -0
- package/dist/adapters/express/app.d.ts +30 -1
- package/dist/adapters/express/app.d.ts.map +1 -1
- package/dist/adapters/express/app.js +31 -3
- package/dist/adapters/express/app.js.map +1 -1
- package/dist/adapters/express/index.d.ts +2 -2
- package/dist/adapters/express/index.d.ts.map +1 -1
- package/dist/adapters/express/index.js +2 -2
- package/dist/adapters/express/index.js.map +1 -1
- package/dist/adapters/express/main.js +2 -2
- package/dist/adapters/express/main.js.map +1 -1
- package/dist/adapters/express/products.controller.d.ts +67 -8
- package/dist/adapters/express/products.controller.d.ts.map +1 -1
- package/dist/adapters/express/products.controller.js +105 -49
- package/dist/adapters/express/products.controller.js.map +1 -1
- package/dist/adapters/express/server.d.ts +37 -13
- package/dist/adapters/express/server.d.ts.map +1 -1
- package/dist/adapters/express/server.js +118 -53
- package/dist/adapters/express/server.js.map +1 -1
- package/dist/adapters/nuxt/nuxt.service.d.ts +8 -6
- package/dist/adapters/nuxt/nuxt.service.d.ts.map +1 -1
- package/dist/adapters/nuxt/nuxt.service.js +34 -10
- package/dist/adapters/nuxt/nuxt.service.js.map +1 -1
- package/dist/adapters/vue/vue.service.d.ts +5 -2
- package/dist/adapters/vue/vue.service.d.ts.map +1 -1
- package/dist/adapters/vue/vue.service.js +41 -7
- package/dist/adapters/vue/vue.service.js.map +1 -1
- package/dist/config/index.d.ts +2 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/seo-meta.types.d.ts +177 -0
- package/dist/config/seo-meta.types.d.ts.map +1 -0
- package/dist/config/seo-meta.types.js +11 -0
- package/dist/config/seo-meta.types.js.map +1 -0
- package/dist/config/seo.service.d.ts +41 -58
- package/dist/config/seo.service.d.ts.map +1 -1
- package/dist/config/seo.service.js +468 -136
- package/dist/config/seo.service.js.map +1 -1
- package/dist/config/site.config.d.ts +10 -50
- package/dist/config/site.config.d.ts.map +1 -1
- package/dist/config/site.config.js +8 -36
- package/dist/config/site.config.js.map +1 -1
- package/dist/core/index.d.ts +1 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/services/dates.service.d.ts +149 -22
- package/dist/core/services/dates.service.d.ts.map +1 -1
- package/dist/core/services/dates.service.js +201 -54
- package/dist/core/services/dates.service.js.map +1 -1
- package/dist/core/services/error.service.d.ts +32 -20
- package/dist/core/services/error.service.d.ts.map +1 -1
- package/dist/core/services/error.service.js +44 -32
- package/dist/core/services/error.service.js.map +1 -1
- package/dist/core/services/formatter.service.d.ts +245 -35
- package/dist/core/services/formatter.service.d.ts.map +1 -1
- package/dist/core/services/formatter.service.js +281 -57
- package/dist/core/services/formatter.service.js.map +1 -1
- package/dist/core/services/generator.service.d.ts +115 -26
- package/dist/core/services/generator.service.d.ts.map +1 -1
- package/dist/core/services/generator.service.js +191 -56
- package/dist/core/services/generator.service.js.map +1 -1
- package/dist/core/services/geometry.service.d.ts +369 -39
- package/dist/core/services/geometry.service.d.ts.map +1 -1
- package/dist/core/services/geometry.service.js +424 -66
- package/dist/core/services/geometry.service.js.map +1 -1
- package/dist/core/services/http.service.d.ts +244 -21
- package/dist/core/services/http.service.d.ts.map +1 -1
- package/dist/core/services/http.service.js +419 -98
- package/dist/core/services/http.service.js.map +1 -1
- package/dist/core/services/logger.service.d.ts +95 -29
- package/dist/core/services/logger.service.d.ts.map +1 -1
- package/dist/core/services/logger.service.js +167 -41
- package/dist/core/services/logger.service.js.map +1 -1
- package/dist/core/services/reactive.service.d.ts +146 -19
- package/dist/core/services/reactive.service.d.ts.map +1 -1
- package/dist/core/services/reactive.service.js +278 -137
- package/dist/core/services/reactive.service.js.map +1 -1
- package/dist/core/services/timing.service.d.ts +142 -20
- package/dist/core/services/timing.service.d.ts.map +1 -1
- package/dist/core/services/timing.service.js +324 -185
- package/dist/core/services/timing.service.js.map +1 -1
- package/dist/core/services/utils.service.d.ts +228 -43
- package/dist/core/services/utils.service.d.ts.map +1 -1
- package/dist/core/services/utils.service.js +305 -125
- package/dist/core/services/utils.service.js.map +1 -1
- package/dist/infrastructure/dom/dom.service.d.ts +307 -44
- package/dist/infrastructure/dom/dom.service.d.ts.map +1 -1
- package/dist/infrastructure/dom/dom.service.js +408 -129
- package/dist/infrastructure/dom/dom.service.js.map +1 -1
- package/dist/infrastructure/index.d.ts +0 -3
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +0 -3
- package/dist/infrastructure/index.js.map +1 -1
- package/dist/infrastructure/observer/observer.service.d.ts +124 -31
- package/dist/infrastructure/observer/observer.service.d.ts.map +1 -1
- package/dist/infrastructure/observer/observer.service.js +227 -131
- package/dist/infrastructure/observer/observer.service.js.map +1 -1
- package/dist/infrastructure/sensors/sensors.service.d.ts +154 -22
- package/dist/infrastructure/sensors/sensors.service.d.ts.map +1 -1
- package/dist/infrastructure/sensors/sensors.service.js +264 -112
- package/dist/infrastructure/sensors/sensors.service.js.map +1 -1
- package/dist/infrastructure/storage/storage.service.d.ts +123 -45
- package/dist/infrastructure/storage/storage.service.d.ts.map +1 -1
- package/dist/infrastructure/storage/storage.service.js +236 -66
- package/dist/infrastructure/storage/storage.service.js.map +1 -1
- package/dist/infrastructure/theme/theme.service.d.ts +93 -29
- package/dist/infrastructure/theme/theme.service.d.ts.map +1 -1
- package/dist/infrastructure/theme/theme.service.js +198 -96
- package/dist/infrastructure/theme/theme.service.js.map +1 -1
- package/dist/infrastructure/viewport/viewport.service.d.ts +233 -35
- package/dist/infrastructure/viewport/viewport.service.d.ts.map +1 -1
- package/dist/infrastructure/viewport/viewport.service.js +358 -139
- package/dist/infrastructure/viewport/viewport.service.js.map +1 -1
- package/dist/infrastructure/worker/worker.service.d.ts +84 -38
- package/dist/infrastructure/worker/worker.service.d.ts.map +1 -1
- package/dist/infrastructure/worker/worker.service.js +234 -133
- package/dist/infrastructure/worker/worker.service.js.map +1 -1
- package/dist/prisma/index.d.ts +2 -0
- package/dist/prisma/index.d.ts.map +1 -0
- package/dist/prisma/index.js +2 -0
- package/dist/prisma/index.js.map +1 -0
- package/dist/prisma/schema.json +11 -33
- package/dist/prisma/use-prisma.d.ts +68 -0
- package/dist/prisma/use-prisma.d.ts.map +1 -0
- package/dist/prisma/use-prisma.js +82 -0
- package/dist/prisma/use-prisma.js.map +1 -0
- package/dist/types/index.d.ts +20 -12
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +124 -125
- package/CHANGELOG.md +0 -101
|
@@ -1,36 +1,246 @@
|
|
|
1
|
-
import type { CurrencyFormatOptions,
|
|
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
|
-
export declare
|
|
1
|
+
import type { CurrencyFormatOptions, Locale } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Pure number formatter over `Intl.NumberFormat`.
|
|
4
|
+
* Stateless — safe to call from any environment.
|
|
5
|
+
*
|
|
6
|
+
* @param value - The number to format.
|
|
7
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
8
|
+
* @param digits - Maximum and minimum fraction digits. Defaults to `2`.
|
|
9
|
+
* @returns The formatted number string.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { useFormatNumber } from "katanakit-js";
|
|
14
|
+
*
|
|
15
|
+
* useFormatNumber(1234.5, "en", 2); // "1,234.50"
|
|
16
|
+
* useFormatNumber(1234.5, "de", 2); // "1.234,50"
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function useFormatNumber(value: number, locale?: Locale, digits?: number): string;
|
|
20
|
+
/**
|
|
21
|
+
* Pure: locale-aware upper case (trims whitespace).
|
|
22
|
+
*
|
|
23
|
+
* @param text - The string to transform.
|
|
24
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
25
|
+
* @returns The upper-cased, trimmed string.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { useUpperCase } from "katanakit-js";
|
|
30
|
+
*
|
|
31
|
+
* useUpperCase("hello"); // "HELLO"
|
|
32
|
+
* useUpperCase("straße", "de"); // "STRASSE"
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function useUpperCase(text: string, locale?: Locale): string;
|
|
36
|
+
/**
|
|
37
|
+
* Pure: locale-aware lower case (trims whitespace).
|
|
38
|
+
*
|
|
39
|
+
* @param text - The string to transform.
|
|
40
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
41
|
+
* @returns The lower-cased, trimmed string.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { useLowerCase } from "katanakit-js";
|
|
46
|
+
*
|
|
47
|
+
* useLowerCase("HELLO"); // "hello"
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function useLowerCase(text: string, locale?: Locale): string;
|
|
51
|
+
/**
|
|
52
|
+
* Pure: capitalizes the first character; leaves the rest unchanged.
|
|
53
|
+
*
|
|
54
|
+
* @param text - The string to capitalize.
|
|
55
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
56
|
+
* @returns The string with its first character upper-cased.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { useCapitalize } from "katanakit-js";
|
|
61
|
+
*
|
|
62
|
+
* useCapitalize("hello world"); // "Hello world"
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function useCapitalize(text: string, locale?: Locale): string;
|
|
66
|
+
/**
|
|
67
|
+
* Pure: formats an amount as currency.
|
|
68
|
+
*
|
|
69
|
+
* `taxes` accepts either a percentage (`21` → 21%) or a decimal fraction
|
|
70
|
+
* (`0.21` → 21%). Values `> 1` are treated as percentages; values in `(0, 1]`
|
|
71
|
+
* as fractions. Prefer an explicit fraction when you need a rate ≤ 1%.
|
|
72
|
+
*
|
|
73
|
+
* @param options - Currency formatting options.
|
|
74
|
+
* @returns The formatted currency string.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* import { useFormatCurrency } from "katanakit-js";
|
|
79
|
+
*
|
|
80
|
+
* useFormatCurrency({ amount: 100, currency: "USD" }); // "$100.00"
|
|
81
|
+
* useFormatCurrency({ amount: 100, taxes: 21 }); // "$121.00"
|
|
82
|
+
* useFormatCurrency({ amount: 100, taxes: 0.21, locale: "es" }); // "121,00 €"
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function useFormatCurrency(options: CurrencyFormatOptions): string;
|
|
86
|
+
/**
|
|
87
|
+
* Pure: pretty-print JSON (3-space indent).
|
|
88
|
+
*
|
|
89
|
+
* @param data - The value to serialize.
|
|
90
|
+
* @returns The indented JSON string.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```ts
|
|
94
|
+
* import { useJsonStringify } from "katanakit-js";
|
|
95
|
+
*
|
|
96
|
+
* useJsonStringify({ a: 1 });
|
|
97
|
+
* // '{\n "a": 1\n}'
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export declare function useJsonStringify(data: unknown): string;
|
|
101
|
+
/**
|
|
102
|
+
* Pure: parse JSON (throws on invalid input — same as `JSON.parse`).
|
|
103
|
+
*
|
|
104
|
+
* @param json - The JSON string to parse.
|
|
105
|
+
* @returns The parsed value typed as `T`.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* import { useJsonParse } from "katanakit-js";
|
|
110
|
+
*
|
|
111
|
+
* const obj = useJsonParse<{ a: number }>('{"a":1}');
|
|
112
|
+
* // { a: 1 }
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
export declare function useJsonParse<T = unknown>(json: string): T;
|
|
116
|
+
/**
|
|
117
|
+
* Pure: °F → °C (formatted).
|
|
118
|
+
*
|
|
119
|
+
* @param fahrenheit - Temperature in Fahrenheit.
|
|
120
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
121
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
122
|
+
* @returns The formatted Celsius string.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* import { useToCelsius } from "katanakit-js";
|
|
127
|
+
*
|
|
128
|
+
* useToCelsius(212); // "100.00"
|
|
129
|
+
* useToCelsius(32); // "0.00"
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare function useToCelsius(fahrenheit: number, locale?: Locale, digits?: number): string;
|
|
133
|
+
/**
|
|
134
|
+
* Pure: °C → °F (formatted).
|
|
135
|
+
*
|
|
136
|
+
* @param celsius - Temperature in Celsius.
|
|
137
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
138
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
139
|
+
* @returns The formatted Fahrenheit string.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```ts
|
|
143
|
+
* import { useToFahrenheit } from "katanakit-js";
|
|
144
|
+
*
|
|
145
|
+
* useToFahrenheit(100); // "212.00"
|
|
146
|
+
* useToFahrenheit(0); // "32.00"
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export declare function useToFahrenheit(celsius: number, locale?: Locale, digits?: number): string;
|
|
150
|
+
/**
|
|
151
|
+
* Pure: miles → kilometers (formatted). Round-trips with `useToMiles`.
|
|
152
|
+
*
|
|
153
|
+
* @param miles - Distance in miles.
|
|
154
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
155
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
156
|
+
* @returns The formatted kilometer string.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* import { useToKilometers } from "katanakit-js";
|
|
161
|
+
*
|
|
162
|
+
* useToKilometers(1); // "1.61"
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
export declare function useToKilometers(miles: number, locale?: Locale, digits?: number): string;
|
|
166
|
+
/**
|
|
167
|
+
* Pure: kilometers → miles (formatted). Round-trips with `useToKilometers`.
|
|
168
|
+
*
|
|
169
|
+
* @param km - Distance in kilometers.
|
|
170
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
171
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
172
|
+
* @returns The formatted mile string.
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```ts
|
|
176
|
+
* import { useToMiles } from "katanakit-js";
|
|
177
|
+
*
|
|
178
|
+
* useToMiles(1.60934); // "1.00"
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
export declare function useToMiles(km: number, locale?: Locale, digits?: number): string;
|
|
182
|
+
/**
|
|
183
|
+
* Pure: centimeters → inches (formatted).
|
|
184
|
+
*
|
|
185
|
+
* @param cm - Length in centimeters.
|
|
186
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
187
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
188
|
+
* @returns The formatted inch string.
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```ts
|
|
192
|
+
* import { useToInches } from "katanakit-js";
|
|
193
|
+
*
|
|
194
|
+
* useToInches(2.54); // "1.00"
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
export declare function useToInches(cm: number, locale?: Locale, digits?: number): string;
|
|
198
|
+
/**
|
|
199
|
+
* Pure: inches → centimeters (formatted).
|
|
200
|
+
*
|
|
201
|
+
* @param inches - Length in inches.
|
|
202
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
203
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
204
|
+
* @returns The formatted centimeter string.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```ts
|
|
208
|
+
* import { useToCm } from "katanakit-js";
|
|
209
|
+
*
|
|
210
|
+
* useToCm(1); // "2.54"
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
export declare function useToCm(inches: number, locale?: Locale, digits?: number): string;
|
|
214
|
+
/**
|
|
215
|
+
* Pure: pounds → kilograms (formatted).
|
|
216
|
+
*
|
|
217
|
+
* @param pounds - Weight in pounds.
|
|
218
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
219
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
220
|
+
* @returns The formatted kilogram string.
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```ts
|
|
224
|
+
* import { useToKilos } from "katanakit-js";
|
|
225
|
+
*
|
|
226
|
+
* useToKilos(1); // "0.45"
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
export declare function useToKilos(pounds: number, locale?: Locale, digits?: number): string;
|
|
230
|
+
/**
|
|
231
|
+
* Pure: kilograms → pounds (formatted).
|
|
232
|
+
*
|
|
233
|
+
* @param kilos - Weight in kilograms.
|
|
234
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
235
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
236
|
+
* @returns The formatted pound string.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```ts
|
|
240
|
+
* import { useToPounds } from "katanakit-js";
|
|
241
|
+
*
|
|
242
|
+
* useToPounds(1); // "2.20"
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
export declare function useToPounds(kilos: number, locale?: Locale, digits?: number): string;
|
|
36
246
|
//# sourceMappingURL=formatter.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"formatter.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAO1E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAKxF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAIzE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAMxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAEzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAE1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAE1F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAExF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEpF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEpF"}
|
|
@@ -1,64 +1,288 @@
|
|
|
1
|
+
/** International statute mile in kilometers (shared by both directions). */
|
|
2
|
+
const KM_PER_MILE = 1.60934;
|
|
3
|
+
const KG_PER_POUND = 0.453592;
|
|
4
|
+
const CM_PER_INCH = 2.54;
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
6
|
+
* Pure number formatter over `Intl.NumberFormat`.
|
|
7
|
+
* Stateless — safe to call from any environment.
|
|
8
|
+
*
|
|
9
|
+
* @param value - The number to format.
|
|
10
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
11
|
+
* @param digits - Maximum and minimum fraction digits. Defaults to `2`.
|
|
12
|
+
* @returns The formatted number string.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { useFormatNumber } from "katanakit-js";
|
|
17
|
+
*
|
|
18
|
+
* useFormatNumber(1234.5, "en", 2); // "1,234.50"
|
|
19
|
+
* useFormatNumber(1234.5, "de", 2); // "1.234,50"
|
|
20
|
+
* ```
|
|
3
21
|
*/
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
FormatterService.instance = new FormatterService();
|
|
10
|
-
}
|
|
11
|
-
return FormatterService.instance;
|
|
12
|
-
}
|
|
13
|
-
useFormatNumber = (value, locale = "en", digits = 2) => {
|
|
14
|
-
return new Intl.NumberFormat(locale, {
|
|
15
|
-
maximumFractionDigits: digits,
|
|
16
|
-
minimumFractionDigits: digits,
|
|
17
|
-
}).format(value);
|
|
18
|
-
};
|
|
19
|
-
useUpperCase = (text, locale = "en") => text.toLocaleUpperCase(locale).trim();
|
|
20
|
-
useLowerCase = (text, locale = "en") => text.toLocaleLowerCase(locale).trim();
|
|
21
|
-
useCapitalize = (text, locale = "en") => {
|
|
22
|
-
const trimmed = text.trim();
|
|
23
|
-
if (!trimmed)
|
|
24
|
-
return "";
|
|
25
|
-
return trimmed.charAt(0).toLocaleUpperCase(locale) + trimmed.slice(1);
|
|
26
|
-
};
|
|
27
|
-
useFormatCurrency = (options) => {
|
|
28
|
-
const { amount, currency = "USD", taxes = 0, locale = "en" } = options;
|
|
29
|
-
// `taxes` may be a percentage (21) or a decimal fraction (0.21).
|
|
30
|
-
const taxRate = taxes > 1 ? taxes / 100 : taxes;
|
|
31
|
-
const total = amount * (1 + taxRate);
|
|
32
|
-
return new Intl.NumberFormat(locale, { style: "currency", currency }).format(total);
|
|
33
|
-
};
|
|
34
|
-
useJsonStringify = (data) => JSON.stringify(data, null, 3);
|
|
35
|
-
useJsonParse = (json) => JSON.parse(json);
|
|
22
|
+
export function useFormatNumber(value, locale = "en", digits = 2) {
|
|
23
|
+
return new Intl.NumberFormat(locale, {
|
|
24
|
+
maximumFractionDigits: digits,
|
|
25
|
+
minimumFractionDigits: digits,
|
|
26
|
+
}).format(value);
|
|
36
27
|
}
|
|
37
28
|
/**
|
|
38
|
-
*
|
|
29
|
+
* Pure: locale-aware upper case (trims whitespace).
|
|
30
|
+
*
|
|
31
|
+
* @param text - The string to transform.
|
|
32
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
33
|
+
* @returns The upper-cased, trimmed string.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { useUpperCase } from "katanakit-js";
|
|
38
|
+
*
|
|
39
|
+
* useUpperCase("hello"); // "HELLO"
|
|
40
|
+
* useUpperCase("straße", "de"); // "STRASSE"
|
|
41
|
+
* ```
|
|
39
42
|
*/
|
|
40
|
-
export
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
export function useUpperCase(text, locale = "en") {
|
|
44
|
+
return text.toLocaleUpperCase(locale).trim();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Pure: locale-aware lower case (trims whitespace).
|
|
48
|
+
*
|
|
49
|
+
* @param text - The string to transform.
|
|
50
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
51
|
+
* @returns The lower-cased, trimmed string.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* import { useLowerCase } from "katanakit-js";
|
|
56
|
+
*
|
|
57
|
+
* useLowerCase("HELLO"); // "hello"
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function useLowerCase(text, locale = "en") {
|
|
61
|
+
return text.toLocaleLowerCase(locale).trim();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Pure: capitalizes the first character; leaves the rest unchanged.
|
|
65
|
+
*
|
|
66
|
+
* @param text - The string to capitalize.
|
|
67
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
68
|
+
* @returns The string with its first character upper-cased.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { useCapitalize } from "katanakit-js";
|
|
73
|
+
*
|
|
74
|
+
* useCapitalize("hello world"); // "Hello world"
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export function useCapitalize(text, locale = "en") {
|
|
78
|
+
const trimmed = text.trim();
|
|
79
|
+
if (!trimmed)
|
|
80
|
+
return "";
|
|
81
|
+
return trimmed.charAt(0).toLocaleUpperCase(locale) + trimmed.slice(1);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Pure: formats an amount as currency.
|
|
85
|
+
*
|
|
86
|
+
* `taxes` accepts either a percentage (`21` → 21%) or a decimal fraction
|
|
87
|
+
* (`0.21` → 21%). Values `> 1` are treated as percentages; values in `(0, 1]`
|
|
88
|
+
* as fractions. Prefer an explicit fraction when you need a rate ≤ 1%.
|
|
89
|
+
*
|
|
90
|
+
* @param options - Currency formatting options.
|
|
91
|
+
* @returns The formatted currency string.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import { useFormatCurrency } from "katanakit-js";
|
|
96
|
+
*
|
|
97
|
+
* useFormatCurrency({ amount: 100, currency: "USD" }); // "$100.00"
|
|
98
|
+
* useFormatCurrency({ amount: 100, taxes: 21 }); // "$121.00"
|
|
99
|
+
* useFormatCurrency({ amount: 100, taxes: 0.21, locale: "es" }); // "121,00 €"
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export function useFormatCurrency(options) {
|
|
103
|
+
const { amount, currency = "USD", taxes = 0, locale = "en" } = options;
|
|
104
|
+
const taxRate = taxes > 1 ? taxes / 100 : taxes;
|
|
105
|
+
const total = amount * (1 + taxRate);
|
|
106
|
+
return new Intl.NumberFormat(locale, { style: "currency", currency }).format(total);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Pure: pretty-print JSON (3-space indent).
|
|
110
|
+
*
|
|
111
|
+
* @param data - The value to serialize.
|
|
112
|
+
* @returns The indented JSON string.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* import { useJsonStringify } from "katanakit-js";
|
|
117
|
+
*
|
|
118
|
+
* useJsonStringify({ a: 1 });
|
|
119
|
+
* // '{\n "a": 1\n}'
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export function useJsonStringify(data) {
|
|
123
|
+
return JSON.stringify(data, null, 3);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Pure: parse JSON (throws on invalid input — same as `JSON.parse`).
|
|
127
|
+
*
|
|
128
|
+
* @param json - The JSON string to parse.
|
|
129
|
+
* @returns The parsed value typed as `T`.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* import { useJsonParse } from "katanakit-js";
|
|
134
|
+
*
|
|
135
|
+
* const obj = useJsonParse<{ a: number }>('{"a":1}');
|
|
136
|
+
* // { a: 1 }
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export function useJsonParse(json) {
|
|
140
|
+
return JSON.parse(json);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Pure: °F → °C (formatted).
|
|
144
|
+
*
|
|
145
|
+
* @param fahrenheit - Temperature in Fahrenheit.
|
|
146
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
147
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
148
|
+
* @returns The formatted Celsius string.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* import { useToCelsius } from "katanakit-js";
|
|
153
|
+
*
|
|
154
|
+
* useToCelsius(212); // "100.00"
|
|
155
|
+
* useToCelsius(32); // "0.00"
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export function useToCelsius(fahrenheit, locale = "en", digits = 2) {
|
|
159
|
+
return useFormatNumber((fahrenheit - 32) / 1.8, locale, digits);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Pure: °C → °F (formatted).
|
|
163
|
+
*
|
|
164
|
+
* @param celsius - Temperature in Celsius.
|
|
165
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
166
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
167
|
+
* @returns The formatted Fahrenheit string.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* import { useToFahrenheit } from "katanakit-js";
|
|
172
|
+
*
|
|
173
|
+
* useToFahrenheit(100); // "212.00"
|
|
174
|
+
* useToFahrenheit(0); // "32.00"
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
export function useToFahrenheit(celsius, locale = "en", digits = 2) {
|
|
178
|
+
return useFormatNumber(celsius * 1.8 + 32, locale, digits);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Pure: miles → kilometers (formatted). Round-trips with `useToMiles`.
|
|
182
|
+
*
|
|
183
|
+
* @param miles - Distance in miles.
|
|
184
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
185
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
186
|
+
* @returns The formatted kilometer string.
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```ts
|
|
190
|
+
* import { useToKilometers } from "katanakit-js";
|
|
191
|
+
*
|
|
192
|
+
* useToKilometers(1); // "1.61"
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
export function useToKilometers(miles, locale = "en", digits = 2) {
|
|
196
|
+
return useFormatNumber(miles * KM_PER_MILE, locale, digits);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Pure: kilometers → miles (formatted). Round-trips with `useToKilometers`.
|
|
200
|
+
*
|
|
201
|
+
* @param km - Distance in kilometers.
|
|
202
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
203
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
204
|
+
* @returns The formatted mile string.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```ts
|
|
208
|
+
* import { useToMiles } from "katanakit-js";
|
|
209
|
+
*
|
|
210
|
+
* useToMiles(1.60934); // "1.00"
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
export function useToMiles(km, locale = "en", digits = 2) {
|
|
214
|
+
return useFormatNumber(km / KM_PER_MILE, locale, digits);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Pure: centimeters → inches (formatted).
|
|
218
|
+
*
|
|
219
|
+
* @param cm - Length in centimeters.
|
|
220
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
221
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
222
|
+
* @returns The formatted inch string.
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```ts
|
|
226
|
+
* import { useToInches } from "katanakit-js";
|
|
227
|
+
*
|
|
228
|
+
* useToInches(2.54); // "1.00"
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
export function useToInches(cm, locale = "en", digits = 2) {
|
|
232
|
+
return useFormatNumber(cm / CM_PER_INCH, locale, digits);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Pure: inches → centimeters (formatted).
|
|
236
|
+
*
|
|
237
|
+
* @param inches - Length in inches.
|
|
238
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
239
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
240
|
+
* @returns The formatted centimeter string.
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```ts
|
|
244
|
+
* import { useToCm } from "katanakit-js";
|
|
245
|
+
*
|
|
246
|
+
* useToCm(1); // "2.54"
|
|
247
|
+
* ```
|
|
248
|
+
*/
|
|
249
|
+
export function useToCm(inches, locale = "en", digits = 2) {
|
|
250
|
+
return useFormatNumber(inches * CM_PER_INCH, locale, digits);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Pure: pounds → kilograms (formatted).
|
|
254
|
+
*
|
|
255
|
+
* @param pounds - Weight in pounds.
|
|
256
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
257
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
258
|
+
* @returns The formatted kilogram string.
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```ts
|
|
262
|
+
* import { useToKilos } from "katanakit-js";
|
|
263
|
+
*
|
|
264
|
+
* useToKilos(1); // "0.45"
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
export function useToKilos(pounds, locale = "en", digits = 2) {
|
|
268
|
+
return useFormatNumber(pounds * KG_PER_POUND, locale, digits);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Pure: kilograms → pounds (formatted).
|
|
272
|
+
*
|
|
273
|
+
* @param kilos - Weight in kilograms.
|
|
274
|
+
* @param locale - BCP 47 locale tag. Defaults to `"en"`.
|
|
275
|
+
* @param digits - Fraction digits. Defaults to `2`.
|
|
276
|
+
* @returns The formatted pound string.
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```ts
|
|
280
|
+
* import { useToPounds } from "katanakit-js";
|
|
281
|
+
*
|
|
282
|
+
* useToPounds(1); // "2.20"
|
|
283
|
+
* ```
|
|
284
|
+
*/
|
|
285
|
+
export function useToPounds(kilos, locale = "en", digits = 2) {
|
|
286
|
+
return useFormatNumber(kilos / KG_PER_POUND, locale, digits);
|
|
60
287
|
}
|
|
61
|
-
// Singleton instances and destructured exports.
|
|
62
|
-
export const { useToCelsius, useToFahrenheit, useToKilometers, useToMiles, useToInches, useToCm, useToKilos, useToPounds, } = ConverterService.getInstance();
|
|
63
|
-
export const { useFormatCurrency, useFormatNumber, useJsonStringify, useJsonParse, useUpperCase, useLowerCase, useCapitalize, } = FormatterService.getInstance();
|
|
64
288
|
//# sourceMappingURL=formatter.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.service.js","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatter.service.js","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"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"}
|