@melfore/clibelt 2.0.0 → 3.0.1

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.
package/README.md CHANGED
@@ -99,3 +99,5 @@ No configuration is required, just add to `package.json` script and run:
99
99
  ```shell
100
100
  npm run pwd2hash string_to_hash
101
101
  ```
102
+
103
+ test
@@ -34,11 +34,13 @@ var writeObjJson = function (filename, obj) {
34
34
  break;
35
35
  }
36
36
  if (data) {
37
- fs_1.default.writeFile(filename, data, function (err) {
38
- if (err)
39
- console.log(err);
37
+ try {
38
+ fs_1.default.writeFileSync(filename, data);
40
39
  console.log("Successfully written to file \"".concat(filename, "\""));
41
- });
40
+ }
41
+ catch (err) {
42
+ console.log(err);
43
+ }
42
44
  }
43
45
  };
44
46
  var tsName = function (code) {
@@ -50,11 +52,13 @@ var writeTs = function (filename, messages) {
50
52
  var output = messages.reduce(function (result, msg) {
51
53
  return result + "export const ".concat(tsName(msg.code), " = \"").concat(msg.code, "\";").concat(os_1.EOL);
52
54
  }, AUTOGENERATED_HEADER);
53
- fs_1.default.writeFile(filename, output, function (err) {
54
- if (err)
55
- console.log(err);
55
+ try {
56
+ fs_1.default.writeFileSync(filename, output);
56
57
  console.log("Successfully written to file \"".concat(filename, "\""));
57
- });
58
+ }
59
+ catch (err) {
60
+ console.log(err);
61
+ }
58
62
  };
59
63
  var writeKeys = function (key, translations, output) {
60
64
  translations.forEach(function (t) {
@@ -111,20 +115,83 @@ var writeNamespacesFile = function (namespaces) {
111
115
  }
112
116
  });
113
117
  };
118
+ var allLanguagesReport = function (data, languages) {
119
+ data.forEach(function (value) {
120
+ value.tr.forEach(function (i) {
121
+ languages.push(i.l);
122
+ });
123
+ if (value.overrides) {
124
+ value.overrides.forEach(function (i) {
125
+ i.tr.forEach(function (v) {
126
+ languages.push(v.l);
127
+ });
128
+ });
129
+ }
130
+ });
131
+ };
132
+ var report = function (data, languages) {
133
+ data.forEach(function (value) {
134
+ var _a;
135
+ var valueLanguages = [];
136
+ var valueLanguagesOverrites = [];
137
+ value.tr.forEach(function (i) {
138
+ valueLanguages.push(i.l);
139
+ });
140
+ (_a = value.overrides) === null || _a === void 0 ? void 0 : _a.forEach(function (i) {
141
+ i.tr.forEach(function (value) {
142
+ valueLanguagesOverrites.push(value.l);
143
+ });
144
+ var differentArrOverrides = languages.filter(function (x) { return !valueLanguagesOverrites.includes(x); });
145
+ if (differentArrOverrides[0]) {
146
+ console.log(" Code: ", "\x1b[31m" + value.code + "\x1b[0m", " Customer: ", "\x1b[31m" + i.customer + "\x1b[0m", " is missing the following languages: ", differentArrOverrides);
147
+ }
148
+ valueLanguagesOverrites = [];
149
+ });
150
+ var differentArr = languages.filter(function (x) { return !valueLanguages.includes(x); });
151
+ if (differentArr[0]) {
152
+ console.log(" Code: ", "\x1b[31m" + value.code + "\x1b[0m", " is missing the following languages: ", differentArr);
153
+ }
154
+ });
155
+ };
156
+ var getAllLanguagesUnique = function (languages) {
157
+ return languages.filter(function (value, index) { return languages.indexOf(value) === index; });
158
+ };
159
+ var multiFileReport = function (languages, namespaces) {
160
+ console.log();
161
+ console.log("-------REPORT-------");
162
+ var uniqueLang = getAllLanguagesUnique(languages);
163
+ for (var _i = 0, namespaces_1 = namespaces; _i < namespaces_1.length; _i++) {
164
+ var _a = namespaces_1[_i], messages = _a[1];
165
+ report(messages, uniqueLang);
166
+ }
167
+ console.log("All languages: ", uniqueLang);
168
+ };
169
+ var singleFileReport = function (message, languages) {
170
+ console.log();
171
+ console.log("-----REPORT-------");
172
+ var uniqueLang = getAllLanguagesUnique(languages);
173
+ report(message, uniqueLang);
174
+ console.log("All languages: ", uniqueLang);
175
+ };
114
176
  var checkNamespaces = function () {
115
177
  fs_1.default.mkdirSync(outTempDir, { recursive: true });
116
178
  fs_1.default.mkdirSync(outMsgDir, { recursive: true });
117
179
  fs_1.default.mkdirSync(outTsDir, { recursive: true });
118
180
  var namespaces = mal.namespaces ? Object.entries(mal.namespaces) : [];
181
+ var languages = [];
119
182
  if (namespaces.length > 0) {
120
- namespaces.forEach(function (_a) {
121
- var ns = _a[0], messages = _a[1];
183
+ for (var _i = 0, namespaces_2 = namespaces; _i < namespaces_2.length; _i++) {
184
+ var _a = namespaces_2[_i], ns = _a[0], messages = _a[1];
185
+ allLanguagesReport(messages, languages);
122
186
  splitMessages(messages, ns);
123
- });
187
+ }
188
+ multiFileReport(languages, namespaces);
124
189
  writeNamespacesFile(namespaces);
125
190
  }
126
191
  else {
192
+ allLanguagesReport(mal.messages, languages);
127
193
  splitMessages(mal.messages);
194
+ singleFileReport(mal.messages, languages);
128
195
  }
129
196
  };
130
197
  checkNamespaces();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@melfore/clibelt",
3
- "version": "2.0.0",
3
+ "version": "3.0.1",
4
4
  "homepage": "https://github.com/melfore/clibelt#readme",
5
5
  "description": "CLI belt: the Melfore tool belt",
6
6
  "repository": {