MCPcopy
hub / github.com/formatjs/formatjs / findMatchingDistanceImpl

Function findMatchingDistanceImpl

packages/intl-localematcher/abstract/utils.ts:170–228  ·  view source on GitHub ↗
(desired: string, supported: string)

Source from the content-addressed store, hash-verified

168}
169
170function 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

Callers

nothing calls this directly

Calls 3

processDataFunction · 0.85
maximizeMethod · 0.80

Tested by

no test coverage detected