@temboplus/frontend-core 0.2.5 → 0.2.6
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 +63 -14
- package/esm/src/data/countries.d.ts +12 -2
- package/esm/src/data/countries.js +496 -248
- package/esm/src/models/amount/amount.d.ts.map +1 -1
- package/esm/src/models/amount/amount.js +1 -1
- package/esm/src/models/bank/bank.d.ts +127 -0
- package/esm/src/models/bank/bank.d.ts.map +1 -1
- package/esm/src/models/bank/bank.js +264 -7
- package/esm/src/models/bank/index.d.ts +0 -1
- package/esm/src/models/bank/index.d.ts.map +1 -1
- package/esm/src/models/bank/index.js +0 -1
- package/esm/src/models/country/country.d.ts +162 -24
- package/esm/src/models/country/country.d.ts.map +1 -1
- package/esm/src/models/country/country.js +442 -42
- package/esm/src/models/country/index.d.ts +1 -1
- package/esm/src/models/country/index.d.ts.map +1 -1
- package/esm/src/models/country/index.js +1 -1
- package/esm/src/models/country/types.d.ts +53 -0
- package/esm/src/models/country/types.d.ts.map +1 -0
- package/esm/src/models/country/types.js +43 -0
- package/esm/src/models/currency/currency.d.ts +127 -4
- package/esm/src/models/currency/currency.d.ts.map +1 -1
- package/esm/src/models/currency/currency.js +229 -11
- package/esm/src/models/currency/index.d.ts +1 -1
- package/esm/src/models/currency/index.d.ts.map +1 -1
- package/esm/src/models/currency/index.js +1 -1
- package/esm/src/models/currency/types.d.ts +20 -0
- package/esm/src/models/currency/types.d.ts.map +1 -0
- package/esm/src/models/currency/types.js +13 -0
- package/esm/src/models/phone_number/global/phone_number.d.ts +3 -2
- package/esm/src/models/phone_number/global/phone_number.d.ts.map +1 -1
- package/esm/src/models/phone_number/global/service.d.ts +27 -20
- package/esm/src/models/phone_number/global/service.d.ts.map +1 -1
- package/esm/src/models/phone_number/global/service.js +61 -40
- package/package.json +1 -1
- package/script/src/data/countries.d.ts +12 -2
- package/script/src/data/countries.js +496 -248
- package/script/src/models/amount/amount.d.ts.map +1 -1
- package/script/src/models/amount/amount.js +4 -4
- package/script/src/models/bank/bank.d.ts +127 -0
- package/script/src/models/bank/bank.d.ts.map +1 -1
- package/script/src/models/bank/bank.js +273 -12
- package/script/src/models/bank/index.d.ts +0 -1
- package/script/src/models/bank/index.d.ts.map +1 -1
- package/script/src/models/bank/index.js +0 -1
- package/script/src/models/country/country.d.ts +162 -24
- package/script/src/models/country/country.d.ts.map +1 -1
- package/script/src/models/country/country.js +453 -49
- package/script/src/models/country/index.d.ts +1 -1
- package/script/src/models/country/index.d.ts.map +1 -1
- package/script/src/models/country/index.js +1 -1
- package/script/src/models/country/types.d.ts +53 -0
- package/script/src/models/country/types.d.ts.map +1 -0
- package/script/src/models/country/types.js +46 -0
- package/script/src/models/currency/currency.d.ts +127 -4
- package/script/src/models/currency/currency.d.ts.map +1 -1
- package/script/src/models/currency/currency.js +237 -15
- package/script/src/models/currency/index.d.ts +1 -1
- package/script/src/models/currency/index.d.ts.map +1 -1
- package/script/src/models/currency/index.js +1 -1
- package/script/src/models/currency/types.d.ts +20 -0
- package/script/src/models/currency/types.d.ts.map +1 -0
- package/script/src/models/currency/types.js +14 -0
- package/script/src/models/phone_number/global/phone_number.d.ts +3 -2
- package/script/src/models/phone_number/global/phone_number.d.ts.map +1 -1
- package/script/src/models/phone_number/global/service.d.ts +27 -20
- package/script/src/models/phone_number/global/service.d.ts.map +1 -1
- package/script/src/models/phone_number/global/service.js +61 -40
- package/esm/src/models/bank/service.d.ts +0 -106
- package/esm/src/models/bank/service.d.ts.map +0 -1
- package/esm/src/models/bank/service.js +0 -240
- package/esm/src/models/country/service.d.ts +0 -111
- package/esm/src/models/country/service.d.ts.map +0 -1
- package/esm/src/models/country/service.js +0 -366
- package/esm/src/models/currency/service.d.ts +0 -96
- package/esm/src/models/currency/service.d.ts.map +0 -1
- package/esm/src/models/currency/service.js +0 -194
- package/script/src/models/bank/service.d.ts +0 -106
- package/script/src/models/bank/service.d.ts.map +0 -1
- package/script/src/models/bank/service.js +0 -247
- package/script/src/models/country/service.d.ts +0 -111
- package/script/src/models/country/service.d.ts.map +0 -1
- package/script/src/models/country/service.js +0 -373
- package/script/src/models/currency/service.d.ts +0 -96
- package/script/src/models/currency/service.d.ts.map +0 -1
- package/script/src/models/currency/service.js +0 -201
package/README.md
CHANGED
|
@@ -101,6 +101,46 @@ if (phoneNumber.validate()) {
|
|
|
101
101
|
}
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
+
## Type-Safe String Literals
|
|
105
|
+
|
|
106
|
+
This library provides strongly-typed string literals for standardized codes:
|
|
107
|
+
|
|
108
|
+
* **Country Codes:**
|
|
109
|
+
* `ISO2CountryCode`: Two-letter country codes (e.g., "US", "GB", "DE")
|
|
110
|
+
* `ISO3CountryCode`: Three-letter country codes (e.g., "USA", "GBR", "DEU")
|
|
111
|
+
* `CountryCode`: A union type that accepts either ISO-2 or ISO-3 formats
|
|
112
|
+
|
|
113
|
+
* **Currency Codes:**
|
|
114
|
+
* `CurrencyCode`: Three-letter currency codes (e.g., "USD", "EUR", "JPY")
|
|
115
|
+
|
|
116
|
+
These types provide compile-time validation and auto-completion while having zero runtime overhead:
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
import {
|
|
120
|
+
ISO2CountryCode,
|
|
121
|
+
ISO3CountryCode,
|
|
122
|
+
CountryCode,
|
|
123
|
+
CurrencyCode
|
|
124
|
+
} from '@temboplus/frontend-core';
|
|
125
|
+
|
|
126
|
+
// Type-safe function parameters
|
|
127
|
+
function processTransaction(
|
|
128
|
+
amount: number,
|
|
129
|
+
currency: CurrencyCode,
|
|
130
|
+
country: CountryCode
|
|
131
|
+
) {
|
|
132
|
+
// Implementation
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Valid calls - compile-time checking ensures only valid codes are accepted
|
|
136
|
+
processTransaction(100, "USD", "US"); // ISO-2 country code
|
|
137
|
+
processTransaction(200, "EUR", "DEU"); // ISO-3 country code
|
|
138
|
+
|
|
139
|
+
// Invalid calls - caught by TypeScript at compile time
|
|
140
|
+
processTransaction(300, "XYZ", "US"); // Error: "XYZ" is not a valid CurrencyCode
|
|
141
|
+
processTransaction(400, "USD", "ZZZ"); // Error: "ZZZ" is not a valid CountryCode
|
|
142
|
+
```
|
|
143
|
+
|
|
104
144
|
## Static Data Access
|
|
105
145
|
|
|
106
146
|
Convenient static properties are available for accessing common data:
|
|
@@ -122,25 +162,20 @@ const caribbeanCountries = Country.getByRegion(SUB_REGION.CARIBBEAN);
|
|
|
122
162
|
const usd = Currency.USD;
|
|
123
163
|
const tzs = Currency.TANZANIAN_SHILLING;
|
|
124
164
|
|
|
165
|
+
// Access country's currency
|
|
166
|
+
const japan = Country.JP;
|
|
167
|
+
const yen = japan.getCurrency();
|
|
168
|
+
console.log(yen?.code); // "JPY"
|
|
169
|
+
|
|
170
|
+
// Find countries using a specific currency
|
|
171
|
+
const euroCountries = Country.getByCurrencyCode("EUR");
|
|
172
|
+
console.log(`${euroCountries.length} countries use the Euro`);
|
|
173
|
+
|
|
125
174
|
// Bank access
|
|
126
175
|
const crdb = Bank.CRDB;
|
|
127
176
|
const nmb = Bank.NMB;
|
|
128
177
|
```
|
|
129
178
|
|
|
130
|
-
## Detailed Model Documentation
|
|
131
|
-
|
|
132
|
-
* [PhoneNumber](./docs/phone_number.md)
|
|
133
|
-
* [Amount](./docs/amount.md)
|
|
134
|
-
* [Bank](./docs/bank.md)
|
|
135
|
-
* [Currency](./docs/currency.md)
|
|
136
|
-
* [Country](./docs/country.md)
|
|
137
|
-
|
|
138
|
-
## Installation
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
npm install @temboplus/frontend-core
|
|
142
|
-
```
|
|
143
|
-
|
|
144
179
|
## Phone Number Usage
|
|
145
180
|
|
|
146
181
|
```typescript
|
|
@@ -154,4 +189,18 @@ console.log(internationalPhone.getWithFormat(PhoneNumberFormat.INTERNATIONAL));
|
|
|
154
189
|
const tanzaniaPhone = TZPhoneNumber.from("0712345678");
|
|
155
190
|
console.log(tanzaniaPhone.getWithFormat(PhoneNumberFormat.INTERNATIONAL)); // +255 712 345 678
|
|
156
191
|
console.log(tanzaniaPhone.networkOperator.name); // "Yas"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Detailed Model Documentation
|
|
195
|
+
|
|
196
|
+
* [PhoneNumber](./docs/phone_number.md)
|
|
197
|
+
* [Amount](./docs/amount.md)
|
|
198
|
+
* [Bank](./docs/bank.md)
|
|
199
|
+
* [Currency](./docs/currency.md)
|
|
200
|
+
* [Country](./docs/country.md)
|
|
201
|
+
|
|
202
|
+
## Installation
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
npm install @temboplus/frontend-core
|
|
157
206
|
```
|
|
@@ -15,7 +15,7 @@ declare const _default: {
|
|
|
15
15
|
coverage: string;
|
|
16
16
|
contact_info: string;
|
|
17
17
|
notes: string;
|
|
18
|
-
countries: {
|
|
18
|
+
countries: ({
|
|
19
19
|
name: string;
|
|
20
20
|
name_official: string;
|
|
21
21
|
iso_2: string;
|
|
@@ -23,7 +23,17 @@ declare const _default: {
|
|
|
23
23
|
flag_emoji: string;
|
|
24
24
|
continent: string;
|
|
25
25
|
region: string;
|
|
26
|
-
|
|
26
|
+
currency_iso_code: string;
|
|
27
|
+
} | {
|
|
28
|
+
name: string;
|
|
29
|
+
name_official: string;
|
|
30
|
+
iso_2: string;
|
|
31
|
+
iso_3: string;
|
|
32
|
+
flag_emoji: string;
|
|
33
|
+
continent: string;
|
|
34
|
+
region: string;
|
|
35
|
+
currency_iso_code: null;
|
|
36
|
+
})[];
|
|
27
37
|
};
|
|
28
38
|
export default _default;
|
|
29
39
|
//# sourceMappingURL=countries.d.ts.map
|