- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
30 lines
950 B
JavaScript
30 lines
950 B
JavaScript
import getCountryByNationalNumber from './getCountryByNationalNumber.js'
|
|
|
|
const USE_NON_GEOGRAPHIC_COUNTRY_CODE = false
|
|
|
|
// Returns the exact country for the `nationalNumber`
|
|
// that belongs to the specified "country calling code".
|
|
export default function getCountryByCallingCode(callingCode, {
|
|
nationalNumber: nationalPhoneNumber,
|
|
metadata
|
|
}) {
|
|
/* istanbul ignore if */
|
|
if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {
|
|
if (metadata.isNonGeographicCallingCode(callingCode)) {
|
|
return '001'
|
|
}
|
|
}
|
|
const possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)
|
|
if (!possibleCountries) {
|
|
return
|
|
}
|
|
// If there's just one country corresponding to the country code,
|
|
// then just return it, without further phone number digits validation.
|
|
if (possibleCountries.length === 1) {
|
|
return possibleCountries[0]
|
|
}
|
|
return getCountryByNationalNumber(nationalPhoneNumber, {
|
|
countries: possibleCountries,
|
|
metadata: metadata.metadata
|
|
})
|
|
} |