Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
File size: 2,080 Bytes
61d29fc | 1 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | /**
* US State name to 2-letter code mapping
*/
export const STATE_NAME_TO_CODE: Record<string, string> = {
'Alabama': 'AL',
'Alaska': 'AK',
'Arizona': 'AZ',
'Arkansas': 'AR',
'California': 'CA',
'Colorado': 'CO',
'Connecticut': 'CT',
'Delaware': 'DE',
'Florida': 'FL',
'Georgia': 'GA',
'Hawaii': 'HI',
'Idaho': 'ID',
'Illinois': 'IL',
'Indiana': 'IN',
'Iowa': 'IA',
'Kansas': 'KS',
'Kentucky': 'KY',
'Louisiana': 'LA',
'Maine': 'ME',
'Maryland': 'MD',
'Massachusetts': 'MA',
'Michigan': 'MI',
'Minnesota': 'MN',
'Mississippi': 'MS',
'Missouri': 'MO',
'Montana': 'MT',
'Nebraska': 'NE',
'Nevada': 'NV',
'New Hampshire': 'NH',
'New Jersey': 'NJ',
'New Mexico': 'NM',
'New York': 'NY',
'North Carolina': 'NC',
'North Dakota': 'ND',
'Ohio': 'OH',
'Oklahoma': 'OK',
'Oregon': 'OR',
'Pennsylvania': 'PA',
'Rhode Island': 'RI',
'South Carolina': 'SC',
'South Dakota': 'SD',
'Tennessee': 'TN',
'Texas': 'TX',
'Utah': 'UT',
'Vermont': 'VT',
'Virginia': 'VA',
'Washington': 'WA',
'West Virginia': 'WV',
'Wisconsin': 'WI',
'Wyoming': 'WY',
'District of Columbia': 'DC',
'Puerto Rico': 'PR'
}
/**
* Convert a full state name to its 2-letter code
* @param stateName - Full state name (e.g., "Massachusetts")
* @returns 2-letter state code (e.g., "MA") or the original string if not found
*/
export function stateNameToCode(stateName: string): string {
// If it's already a 2-letter code, return as-is
if (stateName && stateName.length === 2 && stateName === stateName.toUpperCase()) {
return stateName
}
// Try exact match
if (STATE_NAME_TO_CODE[stateName]) {
return STATE_NAME_TO_CODE[stateName]
}
// Try case-insensitive match
const normalizedName = Object.keys(STATE_NAME_TO_CODE).find(
key => key.toLowerCase() === stateName.toLowerCase()
)
if (normalizedName) {
return STATE_NAME_TO_CODE[normalizedName]
}
// Return original if not found
console.warn(`State name "${stateName}" not found in mapping`)
return stateName
}
|