@formatjs/intl-localematcher 0.2.22 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,CAoDrB"}
1
+ {"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,CA2DrB"}
@@ -11,14 +11,18 @@ var utils_1 = require("./utils");
11
11
  */
12
12
  function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
13
13
  var minimizedAvailableLocaleMap = {};
14
- availableLocales.forEach(function (l) { return (minimizedAvailableLocaleMap[l] = l); });
15
14
  var minimizedAvailableLocales = new Set();
16
15
  availableLocales.forEach(function (locale) {
17
16
  var minimizedLocale = new Intl.Locale(locale)
18
17
  .minimize()
19
18
  .toString();
19
+ var canonicalizedLocale = Intl.getCanonicalLocales(locale)[0] || locale;
20
20
  minimizedAvailableLocaleMap[minimizedLocale] = locale;
21
+ minimizedAvailableLocaleMap[locale] = locale;
22
+ minimizedAvailableLocaleMap[canonicalizedLocale] = locale;
21
23
  minimizedAvailableLocales.add(minimizedLocale);
24
+ minimizedAvailableLocales.add(locale);
25
+ minimizedAvailableLocales.add(canonicalizedLocale);
22
26
  });
23
27
  var foundLocale;
24
28
  for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
@@ -46,9 +50,11 @@ function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
46
50
  // Lookup algo on maximized locale
47
51
  foundLocale = (0, BestAvailableLocale_1.BestAvailableLocale)(minimizedAvailableLocales, maximizedRequestedLocale);
48
52
  }
53
+ if (!foundLocale) {
54
+ return { locale: getDefaultLocale() };
55
+ }
49
56
  return {
50
- locale: (foundLocale && minimizedAvailableLocaleMap[foundLocale]) ||
51
- getDefaultLocale(),
57
+ locale: minimizedAvailableLocaleMap[foundLocale] || foundLocale,
52
58
  };
53
59
  }
54
60
  exports.BestFitMatcher = BestFitMatcher;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist
3
+ * @param locales
4
+ */
5
+ export declare function CanonicalizeLocaleList(locales?: string | string[]): string[];
6
+ //# sourceMappingURL=CanonicalizeLocaleList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanonicalizeLocaleList.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/abstract/CanonicalizeLocaleList.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAG5E"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CanonicalizeLocaleList = void 0;
4
+ /**
5
+ * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist
6
+ * @param locales
7
+ */
8
+ function CanonicalizeLocaleList(locales) {
9
+ // TODO
10
+ return Intl.getCanonicalLocales(locales);
11
+ }
12
+ exports.CanonicalizeLocaleList = CanonicalizeLocaleList;
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;CACjC;AAED,wBAAgB,KAAK,CACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR;AAED,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;CACjC;AAED,wBAAgB,KAAK,CACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR;AAED,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAA"}
package/index.js CHANGED
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResolveLocale = exports.LookupSupportedLocales = exports.match = void 0;
4
+ var CanonicalizeLocaleList_1 = require("./abstract/CanonicalizeLocaleList");
4
5
  var ResolveLocale_1 = require("./abstract/ResolveLocale");
5
6
  function match(requestedLocales, availableLocales, defaultLocale, opts) {
6
7
  var locales = availableLocales.reduce(function (all, l) {
7
8
  all.add(l);
8
9
  return all;
9
10
  }, new Set());
10
- return (0, ResolveLocale_1.ResolveLocale)(locales, requestedLocales, {
11
+ return (0, ResolveLocale_1.ResolveLocale)(locales, (0, CanonicalizeLocaleList_1.CanonicalizeLocaleList)(requestedLocales), {
11
12
  localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',
12
13
  }, [], {}, function () { return defaultLocale; }).locale;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,CAoDrB"}
1
+ {"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,CA2DrB"}
@@ -8,14 +8,18 @@ import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';
8
8
  */
9
9
  export function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
10
10
  var minimizedAvailableLocaleMap = {};
11
- availableLocales.forEach(function (l) { return (minimizedAvailableLocaleMap[l] = l); });
12
11
  var minimizedAvailableLocales = new Set();
13
12
  availableLocales.forEach(function (locale) {
14
13
  var minimizedLocale = new Intl.Locale(locale)
15
14
  .minimize()
16
15
  .toString();
16
+ var canonicalizedLocale = Intl.getCanonicalLocales(locale)[0] || locale;
17
17
  minimizedAvailableLocaleMap[minimizedLocale] = locale;
18
+ minimizedAvailableLocaleMap[locale] = locale;
19
+ minimizedAvailableLocaleMap[canonicalizedLocale] = locale;
18
20
  minimizedAvailableLocales.add(minimizedLocale);
21
+ minimizedAvailableLocales.add(locale);
22
+ minimizedAvailableLocales.add(canonicalizedLocale);
19
23
  });
20
24
  var foundLocale;
21
25
  for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
@@ -43,8 +47,10 @@ export function BestFitMatcher(availableLocales, requestedLocales, getDefaultLoc
43
47
  // Lookup algo on maximized locale
44
48
  foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
45
49
  }
50
+ if (!foundLocale) {
51
+ return { locale: getDefaultLocale() };
52
+ }
46
53
  return {
47
- locale: (foundLocale && minimizedAvailableLocaleMap[foundLocale]) ||
48
- getDefaultLocale(),
54
+ locale: minimizedAvailableLocaleMap[foundLocale] || foundLocale,
49
55
  };
50
56
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist
3
+ * @param locales
4
+ */
5
+ export declare function CanonicalizeLocaleList(locales?: string | string[]): string[];
6
+ //# sourceMappingURL=CanonicalizeLocaleList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanonicalizeLocaleList.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-localematcher/abstract/CanonicalizeLocaleList.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAG5E"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist
3
+ * @param locales
4
+ */
5
+ export function CanonicalizeLocaleList(locales) {
6
+ // TODO
7
+ return Intl.getCanonicalLocales(locales);
8
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;CACjC;AAED,wBAAgB,KAAK,CACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR;AAED,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;CACjC;AAED,wBAAgB,KAAK,CACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR;AAED,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAA"}
package/lib/index.js CHANGED
@@ -1,10 +1,11 @@
1
+ import { CanonicalizeLocaleList } from './abstract/CanonicalizeLocaleList';
1
2
  import { ResolveLocale } from './abstract/ResolveLocale';
2
3
  export function match(requestedLocales, availableLocales, defaultLocale, opts) {
3
4
  var locales = availableLocales.reduce(function (all, l) {
4
5
  all.add(l);
5
6
  return all;
6
7
  }, new Set());
7
- return ResolveLocale(locales, requestedLocales, {
8
+ return ResolveLocale(locales, CanonicalizeLocaleList(requestedLocales), {
8
9
  localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',
9
10
  }, [], {}, function () { return defaultLocale; }).locale;
10
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formatjs/intl-localematcher",
3
- "version": "0.2.22",
3
+ "version": "0.2.23",
4
4
  "description": "Intl.LocaleMatcher ponyfill",
5
5
  "keywords": [
6
6
  "intl",