Skip to main content
findCapitalByProvince returns the capital city of an Iranian province given its Persian name.

Function

Behaviour

  1. Normalize the input via toPersianChars — Arabic-keyboard ك/ي are tolerated.
  2. Look up in IRAN_STATES (a Map<string, string>).
  3. Return the capital, or throw PersianToolsError("findCapitalByProvince", "no province found") if unknown.
Return type is string. The function throws on unknown input; it does not return undefined. Wrap calls in try/catch or pre-validate against the keys.

Pitfalls

  • Throws on unknown province.
  • Input must be Persian. Latin transliterations like "Tehran" won’t match.
  • Equality is exact after toPersianChars — extra whitespace, ZWNJ, or diacritics will miss. Normalize upstream if input is user-typed.
  • To list all provinces for autocomplete, iterate Array.from(IRAN_STATES.keys()).

Composition

Source

src/modules/findCapitalByProvince/index.ts, states.ts · Tests: test/findCapitalByProvince.spec.ts