@webalternatif/js-core 1.4.2 → 1.5.0

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.
@@ -53,20 +53,44 @@ var Translator = exports["default"] = /*#__PURE__*/function () {
53
53
  value:
54
54
  /**
55
55
  * @param {string} label
56
- * @param {string} [namespace]
57
56
  * @param {string} [lang]
57
+ * @param {string} [namespace='core']
58
58
  * @returns {string}
59
59
  */
60
- function translate(label, namespace, lang) {
60
+ function translate(label, lang) {
61
+ var namespace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'core';
61
62
  lang = undefined === lang ? this.getLang() : lang;
62
- namespace = undefined === namespace ? 'core' : namespace;
63
63
  var translationExists = undefined !== _classPrivateFieldGet(_mapping, this)[namespace] && undefined !== _classPrivateFieldGet(_mapping, this)[namespace][lang] && undefined !== _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
64
64
  if (translationExists) {
65
- var tr = _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
66
- return (0, _is.isFunction)(tr) ? tr() : tr;
65
+ var entry = _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
66
+ return _assertClassBrand(_Translator_brand, this, _resolve).call(this, entry);
67
67
  }
68
68
  return 'en' !== lang ? this.translate(label, namespace, 'en') : label;
69
69
  }
70
+
71
+ /**
72
+ * @param {string} label
73
+ * @param {string} from - Language from.
74
+ * @param {string} to - Language to.
75
+ * @param {string} [namespace='core']
76
+ */
77
+ }, {
78
+ key: "translateFrom",
79
+ value: function translateFrom(label, from, to) {
80
+ var _classPrivateFieldGet2;
81
+ var namespace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'core';
82
+ if (!label) return label;
83
+ var mapNs = (_classPrivateFieldGet2 = _classPrivateFieldGet(_mapping, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2[namespace];
84
+ if (!mapNs) return label;
85
+ var mapFrom = mapNs === null || mapNs === void 0 ? void 0 : mapNs[from];
86
+ var mapTo = mapNs === null || mapNs === void 0 ? void 0 : mapNs[to];
87
+ if (!mapFrom || !mapTo) return label;
88
+ var key = _assertClassBrand(_Translator_brand, this, _findKeyByValue).call(this, mapFrom, label);
89
+ if (!key) return label;
90
+ var entryTo = mapTo[key];
91
+ var resolvedTo = _assertClassBrand(_Translator_brand, this, _resolve).call(this, entryTo);
92
+ return resolvedTo !== null && resolvedTo !== void 0 ? resolvedTo : label;
93
+ }
70
94
  }, {
71
95
  key: "_",
72
96
  value: function _() {
@@ -108,4 +132,21 @@ function _setMapping(mapping) {
108
132
  _classPrivateFieldSet(_mapping, this, (0, _traversal.extend)(true, nsMapping, {
109
133
  core: (0, _traversal.extend)({}, nsMapping.core || {}, coreMapping)
110
134
  }));
135
+ }
136
+ function _findKeyByValue(entries, label) {
137
+ for (var key in entries) {
138
+ var resolved = _assertClassBrand(_Translator_brand, this, _resolve).call(this, entries[key]);
139
+ if (resolved === label) return key;
140
+ }
141
+ return null;
142
+ }
143
+ function _resolve(entry) {
144
+ if ((0, _is.isFunction)(entry)) {
145
+ try {
146
+ return entry();
147
+ } catch (e) {
148
+ return null;
149
+ }
150
+ }
151
+ return entry;
111
152
  }
@@ -51,20 +51,44 @@ var Translator = /*#__PURE__*/function () {
51
51
  value:
52
52
  /**
53
53
  * @param {string} label
54
- * @param {string} [namespace]
55
54
  * @param {string} [lang]
55
+ * @param {string} [namespace='core']
56
56
  * @returns {string}
57
57
  */
58
- function translate(label, namespace, lang) {
58
+ function translate(label, lang) {
59
+ var namespace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'core';
59
60
  lang = undefined === lang ? this.getLang() : lang;
60
- namespace = undefined === namespace ? 'core' : namespace;
61
61
  var translationExists = undefined !== _classPrivateFieldGet(_mapping, this)[namespace] && undefined !== _classPrivateFieldGet(_mapping, this)[namespace][lang] && undefined !== _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
62
62
  if (translationExists) {
63
- var tr = _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
64
- return isFunction(tr) ? tr() : tr;
63
+ var entry = _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
64
+ return _assertClassBrand(_Translator_brand, this, _resolve).call(this, entry);
65
65
  }
66
66
  return 'en' !== lang ? this.translate(label, namespace, 'en') : label;
67
67
  }
68
+
69
+ /**
70
+ * @param {string} label
71
+ * @param {string} from - Language from.
72
+ * @param {string} to - Language to.
73
+ * @param {string} [namespace='core']
74
+ */
75
+ }, {
76
+ key: "translateFrom",
77
+ value: function translateFrom(label, from, to) {
78
+ var _classPrivateFieldGet2;
79
+ var namespace = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'core';
80
+ if (!label) return label;
81
+ var mapNs = (_classPrivateFieldGet2 = _classPrivateFieldGet(_mapping, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2[namespace];
82
+ if (!mapNs) return label;
83
+ var mapFrom = mapNs === null || mapNs === void 0 ? void 0 : mapNs[from];
84
+ var mapTo = mapNs === null || mapNs === void 0 ? void 0 : mapNs[to];
85
+ if (!mapFrom || !mapTo) return label;
86
+ var key = _assertClassBrand(_Translator_brand, this, _findKeyByValue).call(this, mapFrom, label);
87
+ if (!key) return label;
88
+ var entryTo = mapTo[key];
89
+ var resolvedTo = _assertClassBrand(_Translator_brand, this, _resolve).call(this, entryTo);
90
+ return resolvedTo !== null && resolvedTo !== void 0 ? resolvedTo : label;
91
+ }
68
92
  }, {
69
93
  key: "_",
70
94
  value: function _() {
@@ -107,4 +131,21 @@ function _setMapping(mapping) {
107
131
  core: extend({}, nsMapping.core || {}, coreMapping)
108
132
  }));
109
133
  }
134
+ function _findKeyByValue(entries, label) {
135
+ for (var key in entries) {
136
+ var resolved = _assertClassBrand(_Translator_brand, this, _resolve).call(this, entries[key]);
137
+ if (resolved === label) return key;
138
+ }
139
+ return null;
140
+ }
141
+ function _resolve(entry) {
142
+ if (isFunction(entry)) {
143
+ try {
144
+ return entry();
145
+ } catch (e) {
146
+ return null;
147
+ }
148
+ }
149
+ return entry;
150
+ }
110
151
  export { Translator as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webalternatif/js-core",
3
- "version": "1.4.2",
3
+ "version": "1.5.0",
4
4
  "type": "module",
5
5
  "types": "types/index.d.ts",
6
6
  "main": "dist/cjs/index.js",
@@ -18,11 +18,18 @@ export default class Translator {
18
18
  constructor(mapping: TranslatorMapping, defaultLang?: string);
19
19
  /**
20
20
  * @param {string} label
21
- * @param {string} [namespace]
22
21
  * @param {string} [lang]
22
+ * @param {string} [namespace='core']
23
23
  * @returns {string}
24
24
  */
25
- translate(label: string, namespace?: string, lang?: string): string;
25
+ translate(label: string, lang?: string, namespace?: string): string;
26
+ /**
27
+ * @param {string} label
28
+ * @param {string} from - Language from.
29
+ * @param {string} to - Language to.
30
+ * @param {string} [namespace='core']
31
+ */
32
+ translateFrom(label: string, from: string, to: string, namespace?: string): any;
26
33
  _(...args: any[]): string;
27
34
  getLang(): string;
28
35
  setLang(lang: any): void;