@webiny/i18n 6.3.0 → 6.4.0-beta.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.
@@ -1,47 +1,39 @@
1
- import lodashTrim from "lodash/trim.js";
2
- const processTextPart = (part, values, modifiers) => {
3
- if (part.startsWith("{") === false) {
4
- return part;
5
- }
6
- const parts = lodashTrim(part, "{}").split("|");
7
- const [variable, modifier] = parts;
8
- const keys = Object.keys(values);
9
- if (!keys.includes(variable)) {
10
- return `{${variable}}`;
11
- }
12
- const output = {
13
- value: values[variable]
14
- };
15
- if (modifier) {
16
- const parameters = modifier.split(":");
17
- const name = parameters.shift();
18
- if (!name) {
19
- return output.value;
1
+ import trim from "lodash/trim.js";
2
+ const processTextPart = (part, values, modifiers)=>{
3
+ if (false === part.startsWith("{")) return part;
4
+ const parts = trim(part, "{}").split("|");
5
+ const [variable, modifier] = parts;
6
+ const keys = Object.keys(values);
7
+ if (!keys.includes(variable)) return `{${variable}}`;
8
+ const output = {
9
+ value: values[variable]
10
+ };
11
+ if (modifier) {
12
+ const parameters = modifier.split(":");
13
+ const name = parameters.shift();
14
+ if (!name) return output.value;
15
+ if (modifiers[name]) {
16
+ const modifier = modifiers[name];
17
+ output.value = modifier.execute(output.value, parameters);
18
+ }
20
19
  }
21
- if (modifiers[name]) {
22
- const modifier = modifiers[name];
23
- output.value = modifier.execute(output.value, parameters);
24
- }
25
- }
26
- return output.value;
20
+ return output.value;
27
21
  };
28
22
  const processor = {
29
- name: "default",
30
- canExecute(data) {
31
- for (const key in data.values) {
32
- const value = data.values[key];
33
- if (typeof value === "string" || typeof value === "number" || value === null || value instanceof Date) {
34
- continue;
35
- }
36
- return false;
23
+ name: "default",
24
+ canExecute (data) {
25
+ for(const key in data.values){
26
+ const value = data.values[key];
27
+ if ("string" != typeof value && "number" != typeof value && null !== value && !(value instanceof Date)) return false;
28
+ }
29
+ return true;
30
+ },
31
+ execute (data) {
32
+ const parts = data.translation.split(/({.*?})/);
33
+ return parts.reduce((carry, part)=>carry + processTextPart(part, data.values, data.i18n.modifiers), "");
37
34
  }
38
- return true;
39
- },
40
- execute(data) {
41
- const parts = data.translation.split(/({.*?})/);
42
- return parts.reduce((carry, part) => carry + processTextPart(part, data.values, data.i18n.modifiers), "");
43
- }
44
35
  };
45
- export default processor;
36
+ const processors_default = processor;
37
+ export default processors_default;
46
38
 
47
39
  //# sourceMappingURL=default.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["lodashTrim","processTextPart","part","values","modifiers","startsWith","parts","split","variable","modifier","keys","Object","includes","output","value","parameters","name","shift","execute","processor","canExecute","data","key","Date","translation","reduce","carry","i18n"],"sources":["default.ts"],"sourcesContent":["import lodashTrim from \"lodash/trim.js\";\nimport type { Modifier, Processor } from \"~/types.js\";\n\nconst processTextPart = (\n part: string,\n values: Record<string, any>,\n modifiers: Record<string, Modifier>\n): string => {\n if (part.startsWith(\"{\") === false) {\n return part;\n }\n\n const parts = lodashTrim(part, \"{}\").split(\"|\");\n\n const [variable, modifier] = parts;\n const keys = Object.keys(values);\n\n if (!keys.includes(variable)) {\n return `{${variable}}`;\n }\n\n const output = {\n value: values[variable]\n };\n\n if (modifier) {\n const parameters: string[] = modifier.split(\":\");\n const name = parameters.shift();\n if (!name) {\n return output.value;\n }\n if (modifiers[name]) {\n const modifier = modifiers[name];\n output.value = modifier.execute(output.value, parameters);\n }\n }\n\n return output.value;\n};\n\nconst processor: Processor = {\n name: \"default\",\n canExecute(data) {\n for (const key in data.values) {\n const value = data.values[key];\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n value === null ||\n value instanceof Date\n ) {\n continue;\n }\n return false;\n }\n\n return true;\n },\n execute(data) {\n const parts = data.translation.split(/({.*?})/);\n return parts.reduce(\n (carry, part) => carry + processTextPart(part, data.values, data.i18n.modifiers),\n \"\"\n );\n }\n};\n\nexport default processor;\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,gBAAgB;AAGvC,MAAMC,eAAe,GAAGA,CACpBC,IAAY,EACZC,MAA2B,EAC3BC,SAAmC,KAC1B;EACT,IAAIF,IAAI,CAACG,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;IAChC,OAAOH,IAAI;EACf;EAEA,MAAMI,KAAK,GAAGN,UAAU,CAACE,IAAI,EAAE,IAAI,CAAC,CAACK,KAAK,CAAC,GAAG,CAAC;EAE/C,MAAM,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAGH,KAAK;EAClC,MAAMI,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACP,MAAM,CAAC;EAEhC,IAAI,CAACO,IAAI,CAACE,QAAQ,CAACJ,QAAQ,CAAC,EAAE;IAC1B,OAAO,IAAIA,QAAQ,GAAG;EAC1B;EAEA,MAAMK,MAAM,GAAG;IACXC,KAAK,EAAEX,MAAM,CAACK,QAAQ;EAC1B,CAAC;EAED,IAAIC,QAAQ,EAAE;IACV,MAAMM,UAAoB,GAAGN,QAAQ,CAACF,KAAK,CAAC,GAAG,CAAC;IAChD,MAAMS,IAAI,GAAGD,UAAU,CAACE,KAAK,CAAC,CAAC;IAC/B,IAAI,CAACD,IAAI,EAAE;MACP,OAAOH,MAAM,CAACC,KAAK;IACvB;IACA,IAAIV,SAAS,CAACY,IAAI,CAAC,EAAE;MACjB,MAAMP,QAAQ,GAAGL,SAAS,CAACY,IAAI,CAAC;MAChCH,MAAM,CAACC,KAAK,GAAGL,QAAQ,CAACS,OAAO,CAACL,MAAM,CAACC,KAAK,EAAEC,UAAU,CAAC;IAC7D;EACJ;EAEA,OAAOF,MAAM,CAACC,KAAK;AACvB,CAAC;AAED,MAAMK,SAAoB,GAAG;EACzBH,IAAI,EAAE,SAAS;EACfI,UAAUA,CAACC,IAAI,EAAE;IACb,KAAK,MAAMC,GAAG,IAAID,IAAI,CAAClB,MAAM,EAAE;MAC3B,MAAMW,KAAK,GAAGO,IAAI,CAAClB,MAAM,CAACmB,GAAG,CAAC;MAC9B,IACI,OAAOR,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACdA,KAAK,YAAYS,IAAI,EACvB;QACE;MACJ;MACA,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf,CAAC;EACDL,OAAOA,CAACG,IAAI,EAAE;IACV,MAAMf,KAAK,GAAGe,IAAI,CAACG,WAAW,CAACjB,KAAK,CAAC,SAAS,CAAC;IAC/C,OAAOD,KAAK,CAACmB,MAAM,CACf,CAACC,KAAK,EAAExB,IAAI,KAAKwB,KAAK,GAAGzB,eAAe,CAACC,IAAI,EAAEmB,IAAI,CAAClB,MAAM,EAAEkB,IAAI,CAACM,IAAI,CAACvB,SAAS,CAAC,EAChF,EACJ,CAAC;EACL;AACJ,CAAC;AAED,eAAee,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"processors/default.js","sources":["../../src/processors/default.ts"],"sourcesContent":["import lodashTrim from \"lodash/trim.js\";\nimport type { Modifier, Processor } from \"~/types.js\";\n\nconst processTextPart = (\n part: string,\n values: Record<string, any>,\n modifiers: Record<string, Modifier>\n): string => {\n if (part.startsWith(\"{\") === false) {\n return part;\n }\n\n const parts = lodashTrim(part, \"{}\").split(\"|\");\n\n const [variable, modifier] = parts;\n const keys = Object.keys(values);\n\n if (!keys.includes(variable)) {\n return `{${variable}}`;\n }\n\n const output = {\n value: values[variable]\n };\n\n if (modifier) {\n const parameters: string[] = modifier.split(\":\");\n const name = parameters.shift();\n if (!name) {\n return output.value;\n }\n if (modifiers[name]) {\n const modifier = modifiers[name];\n output.value = modifier.execute(output.value, parameters);\n }\n }\n\n return output.value;\n};\n\nconst processor: Processor = {\n name: \"default\",\n canExecute(data) {\n for (const key in data.values) {\n const value = data.values[key];\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n value === null ||\n value instanceof Date\n ) {\n continue;\n }\n return false;\n }\n\n return true;\n },\n execute(data) {\n const parts = data.translation.split(/({.*?})/);\n return parts.reduce(\n (carry, part) => carry + processTextPart(part, data.values, data.i18n.modifiers),\n \"\"\n );\n }\n};\n\nexport default processor;\n"],"names":["processTextPart","part","values","modifiers","parts","lodashTrim","variable","modifier","keys","Object","output","parameters","name","processor","data","key","value","Date","carry"],"mappings":";AAGA,MAAMA,kBAAkB,CACpBC,MACAC,QACAC;IAEA,IAAIF,AAAyB,UAAzBA,KAAK,UAAU,CAAC,MAChB,OAAOA;IAGX,MAAMG,QAAQC,KAAWJ,MAAM,MAAM,KAAK,CAAC;IAE3C,MAAM,CAACK,UAAUC,SAAS,GAAGH;IAC7B,MAAMI,OAAOC,OAAO,IAAI,CAACP;IAEzB,IAAI,CAACM,KAAK,QAAQ,CAACF,WACf,OAAO,CAAC,CAAC,EAAEA,SAAS,CAAC,CAAC;IAG1B,MAAMI,SAAS;QACX,OAAOR,MAAM,CAACI,SAAS;IAC3B;IAEA,IAAIC,UAAU;QACV,MAAMI,aAAuBJ,SAAS,KAAK,CAAC;QAC5C,MAAMK,OAAOD,WAAW,KAAK;QAC7B,IAAI,CAACC,MACD,OAAOF,OAAO,KAAK;QAEvB,IAAIP,SAAS,CAACS,KAAK,EAAE;YACjB,MAAML,WAAWJ,SAAS,CAACS,KAAK;YAChCF,OAAO,KAAK,GAAGH,SAAS,OAAO,CAACG,OAAO,KAAK,EAAEC;QAClD;IACJ;IAEA,OAAOD,OAAO,KAAK;AACvB;AAEA,MAAMG,YAAuB;IACzB,MAAM;IACN,YAAWC,IAAI;QACX,IAAK,MAAMC,OAAOD,KAAK,MAAM,CAAE;YAC3B,MAAME,QAAQF,KAAK,MAAM,CAACC,IAAI;YAC9B,IACI,AAAiB,YAAjB,OAAOC,SACP,AAAiB,YAAjB,OAAOA,SACPA,AAAU,SAAVA,UACAA,CAAAA,iBAAiBC,IAAG,GAIxB,OAAO;QACX;QAEA,OAAO;IACX;IACA,SAAQH,IAAI;QACR,MAAMV,QAAQU,KAAK,WAAW,CAAC,KAAK,CAAC;QACrC,OAAOV,MAAM,MAAM,CACf,CAACc,OAAOjB,OAASiB,QAAQlB,gBAAgBC,MAAMa,KAAK,MAAM,EAAEA,KAAK,IAAI,CAAC,SAAS,GAC/E;IAER;AACJ;AAEA,2BAAeD"}
package/types.js CHANGED
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=types.js.map
package/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type I18N from \"./I18n.js\";\nimport type { ReactElement } from \"react\";\n\nexport interface I18NDataValues {\n [key: string]: any;\n}\nexport interface I18NData {\n translation: string;\n base: string;\n namespace: string;\n values: I18NDataValues;\n i18n: I18N;\n}\n\nexport interface ModifierOptions {\n i18n: I18N;\n}\n/**\n * @description I18N Modifier - used for modifying text dynamically.\n */\nexport interface Modifier {\n name: string;\n execute: (...args: any[]) => string;\n}\n\nexport type ProcessorResult = string | ReactElement;\n/**\n * @description I18N Processor - used for outputting text.\n */\nexport interface Processor {\n name: string;\n canExecute: (data: I18NData) => boolean;\n execute: (data: I18NData) => ProcessorResult;\n}\n\nexport interface NumberFormat {\n decimal: string;\n thousand: string;\n precision: number;\n}\n\nexport interface PriceFormat {\n symbol: string;\n format: string;\n decimal: string;\n thousand: string;\n precision: number;\n}\n\nexport interface Formats {\n date: string;\n time: string;\n datetime: string;\n price: PriceFormat;\n number: NumberFormat;\n}\n\nexport interface Translator {\n (base: any): any;\n}\n\nexport interface Translations {\n [key: string]: string;\n}\n"],"mappings":"","ignoreList":[]}