UNPKG

vladdress

Version:

Lightweight Street Address Parser Written in TypeScript

40 lines (39 loc) 1.79 kB
"use strict"; exports.__esModule = true; exports.getStateInfo = void 0; var properties_1 = require("../utils/properties"); var allStates = require("../data/states.json"); var strings_1 = require("../utils/strings"); function getStateInfo(input) { var _a, _b; var result = {}; if (input.length == 2 && (0, properties_1.getKeyByValue)(allStates, input.toUpperCase())) { result.stateAbbreviation = input.toUpperCase(); var key = (0, properties_1.getKeyByValue)(allStates, result.stateAbbreviation); if (key) { result.stateName = (0, strings_1.toTitleCase)(key); } } else { // Next check if the state string ends in state name or abbeviation // (state abbreviation must be preceded by a space to ensure accuracy) var lowerInput = input.toLowerCase(); for (var _i = 0, _c = Object.keys(allStates); _i < _c.length; _i++) { var state = _c[_i]; if (lowerInput.endsWith(state)) { result.stateName = (0, strings_1.toTitleCase)(state); result.stateAbbreviation = allStates[state]; result.trimmedString = (_a = (0, strings_1.replaceCaseInsensitive)(input, state)) === null || _a === void 0 ? void 0 : _a.trim(); break; } else if (lowerInput.endsWith(' ' + allStates[state].toLowerCase())) { result.stateAbbreviation = allStates[state]; result.stateName = (0, strings_1.toTitleCase)(state); result.trimmedString = (_b = (0, strings_1.replaceCaseInsensitive)(input, allStates[state])) === null || _b === void 0 ? void 0 : _b.trim(); break; } } } return result; } exports.getStateInfo = getStateInfo;