UNPKG

@giancosta86/hermes

Version:
45 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LocaleLike = void 0; const proximity_1 = require("@rimbu/proximity"); var LocaleLike; (function (LocaleLike) { LocaleLike.languageFacets = [ "calendar", "caseFirst", "collation", "hourCycle", "numberingSystem", "numeric", "region", "script" ]; function createProximityContext() { return proximity_1.ProximityMap.createContext({ distanceFunction: LocaleLike.getDistance }); } LocaleLike.createProximityContext = createProximityContext; function toLocale(localeLike) { return localeLike instanceof Intl.Locale ? localeLike : new Intl.Locale(localeLike); } LocaleLike.toLocale = toLocale; function toLanguageTag(localeLike) { return localeLike instanceof Intl.Locale ? localeLike.toString() : localeLike; } LocaleLike.toLanguageTag = toLanguageTag; function getDistance(one, another) { const oneLocale = toLocale(one); const anotherLocale = toLocale(another); if (oneLocale.language != anotherLocale.language) { return Number.POSITIVE_INFINITY; } return LocaleLike.languageFacets.reduce((cumulated, facet) => oneLocale[facet] !== anotherLocale[facet] ? cumulated + 1 : cumulated, 0); } LocaleLike.getDistance = getDistance; })(LocaleLike || (exports.LocaleLike = LocaleLike = {})); //# sourceMappingURL=LocaleLike.js.map