clarion-shared-types
v1.0.79
Published
Shared pure TypeScript types for the Clarion **admin** web frontend (`clarion-admin`, Angular). Frontend-safe: no NestJS / class-validator / runtime framework dependencies.
Readme
clarion-shared-types
Shared pure TypeScript types for the Clarion admin web frontend
(clarion-admin, Angular). Frontend-safe: no NestJS / class-validator / runtime
framework dependencies.
Country & Currency (multi-country foundation)
Platform-level, Angular-safe primitives for country-aware admin forms, pickers,
billing and maps. Mirrors the backend grm-shared-library country module so the
same codes and configuration are used end to end.
Supported countries (ISO 3166-1 alpha-2):
| Code | Country | Calling code | Currency | Symbol | Decimals | Timezone | Locale |
|------|----------|--------------|----------|--------|----------|------------------------|---------|
| KE | Kenya | +254 | KES | KSh | 2 | Africa/Nairobi | en-KE |
| UG | Uganda | +256 | UGX | USh | 0 | Africa/Kampala | en-UG |
| TZ | Tanzania | +255 | TZS | TSh | 0 | Africa/Dar_es_Salaam | en-TZ |
Supported currencies (ISO 4217): KES, UGX, TZS.
Importing
Everything is re-exported from the package root:
import {
CountryCode,
CurrencyCode,
CallingCode,
SupportedCountryConfig,
SupportedCurrencyConfig,
SUPPORTED_COUNTRIES, // readonly SupportedCountryConfig[] — ideal for *ngFor pickers
SUPPORTED_COUNTRIES_BY_CODE, // Record<CountryCode, SupportedCountryConfig>
SUPPORTED_CURRENCIES,
SUPPORTED_CURRENCIES_BY_CODE,
DEFAULT_COUNTRY_CODE, // CountryCode.KE
DEFAULT_CURRENCY_CODE, // CurrencyCode.KES
getSupportedCountryConfig,
getSupportedCurrencyConfig,
getCurrencyForCountry,
getCallingCodeForCountry,
getCountryByCallingCode,
isSupportedCountryCode,
isSupportedCurrencyCode,
} from 'clarion-shared-types';
// Country picker options
SUPPORTED_COUNTRIES.map((c) => ({ label: c.name, value: c.code }));Note:
SUPPORTED_COUNTRIESis an array (picker-friendly). Prefer the array or the helper functions over indexingSUPPORTED_COUNTRIES_BY_CODEdirectly, to stay compatible with the admin'snoPropertyAccessFromIndexSignaturesetting.
Backward compatibility
Kenya (KE / KES) is the default market. Use DEFAULT_COUNTRY_CODE /
DEFAULT_CURRENCY_CODE wherever a country/currency is not explicit. Existing
admin flows are unaffected.
Scope
Primitives only. The country picker UI, country-scoped admin forms and country detection are delivered in later phases and should build on these types.
Tests
npm test # compiles src/modules/country and runs the country/currency suite