(desired: string, supported: string)
| 168 | } |
| 169 | |
| 170 | function findMatchingDistanceImpl(desired: string, supported: string): number { |
| 171 | const desiredLocale = new Intl.Locale(desired).maximize() |
| 172 | const supportedLocale = new Intl.Locale(supported).maximize() |
| 173 | const desiredLSR: LSR = { |
| 174 | language: desiredLocale.language, |
| 175 | script: desiredLocale.script || '', |
| 176 | region: desiredLocale.region || '', |
| 177 | } |
| 178 | const supportedLSR: LSR = { |
| 179 | language: supportedLocale.language, |
| 180 | script: supportedLocale.script || '', |
| 181 | region: supportedLocale.region || '', |
| 182 | } |
| 183 | let matchingDistance = 0 |
| 184 | |
| 185 | const data = processData() |
| 186 | |
| 187 | if (desiredLSR.language !== supportedLSR.language) { |
| 188 | matchingDistance += findMatchingDistanceForLSR( |
| 189 | { |
| 190 | language: desiredLocale.language, |
| 191 | script: '', |
| 192 | region: '', |
| 193 | }, |
| 194 | { |
| 195 | language: supportedLocale.language, |
| 196 | script: '', |
| 197 | region: '', |
| 198 | }, |
| 199 | data |
| 200 | ) |
| 201 | } |
| 202 | |
| 203 | if (desiredLSR.script !== supportedLSR.script) { |
| 204 | matchingDistance += findMatchingDistanceForLSR( |
| 205 | { |
| 206 | language: desiredLocale.language, |
| 207 | script: desiredLSR.script, |
| 208 | region: '', |
| 209 | }, |
| 210 | { |
| 211 | language: supportedLocale.language, |
| 212 | script: supportedLSR.script, |
| 213 | region: '', |
| 214 | }, |
| 215 | data |
| 216 | ) |
| 217 | } |
| 218 | |
| 219 | if (desiredLSR.region !== supportedLSR.region) { |
| 220 | matchingDistance += findMatchingDistanceForLSR( |
| 221 | desiredLSR, |
| 222 | supportedLSR, |
| 223 | data |
| 224 | ) |
| 225 | } |
| 226 | |
| 227 | return matchingDistance |
nothing calls this directly
no test coverage detected