@ttoss/i18n-cli 0.7.27 → 0.7.28
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/dist/index.js +43 -44
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -27,20 +27,20 @@ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
|
27
27
|
}) : target, mod));
|
|
28
28
|
|
|
29
29
|
// src/index.ts
|
|
30
|
+
var import_node_fs = __toESM(require("fs"));
|
|
31
|
+
var import_node_path = __toESM(require("path"));
|
|
30
32
|
var import_cli_lib = require("@formatjs/cli-lib");
|
|
31
33
|
var import_fast_glob = __toESM(require("fast-glob"));
|
|
32
|
-
var fs = __toESM(require("fs"));
|
|
33
34
|
var import_minimist = __toESM(require("minimist"));
|
|
34
|
-
var path = __toESM(require("path"));
|
|
35
35
|
var DEFAULT_DIR = "i18n";
|
|
36
|
-
var EXTRACT_DIR =
|
|
37
|
-
var EXTRACT_FILE =
|
|
38
|
-
var COMPILE_DIR =
|
|
39
|
-
var MISSING_DIR =
|
|
40
|
-
var UNUSED_DIR =
|
|
36
|
+
var EXTRACT_DIR = import_node_path.default.join(DEFAULT_DIR, "lang");
|
|
37
|
+
var EXTRACT_FILE = import_node_path.default.join(EXTRACT_DIR, "en.json");
|
|
38
|
+
var COMPILE_DIR = import_node_path.default.join(DEFAULT_DIR, "compiled");
|
|
39
|
+
var MISSING_DIR = import_node_path.default.join(DEFAULT_DIR, "missing");
|
|
40
|
+
var UNUSED_DIR = import_node_path.default.join(DEFAULT_DIR, "unused");
|
|
41
41
|
var argv = (0, import_minimist.default)(process.argv.slice(2));
|
|
42
42
|
var getTtossExtractedTranslations = async () => {
|
|
43
|
-
const packageJsonAsString = await
|
|
43
|
+
const packageJsonAsString = await import_node_fs.default.promises.readFile(import_node_path.default.join(process.cwd(), "package.json"));
|
|
44
44
|
const packageJson = JSON.parse(packageJsonAsString.toString());
|
|
45
45
|
const ttossDependencies = Object.keys({
|
|
46
46
|
...packageJson.dependencies,
|
|
@@ -55,17 +55,15 @@ var getTtossExtractedTranslations = async () => {
|
|
|
55
55
|
const ttossExtractedTranslations = {};
|
|
56
56
|
for (const dependency of ttossDependencies) {
|
|
57
57
|
try {
|
|
58
|
-
const dependencyPathFromCwd =
|
|
59
|
-
const requirePath =
|
|
58
|
+
const dependencyPathFromCwd = import_node_path.default.join(process.cwd(), "node_modules", dependency);
|
|
59
|
+
const requirePath = import_node_path.default.join(dependencyPathFromCwd, EXTRACT_FILE);
|
|
60
60
|
const extractedTranslations = require(requirePath);
|
|
61
|
-
const extractedTranslationsWithModule = Object.keys(extractedTranslations).reduce((
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
[key]
|
|
65
|
-
...extractedTranslations[key],
|
|
66
|
-
module: dependency
|
|
67
|
-
}
|
|
61
|
+
const extractedTranslationsWithModule = Object.keys(extractedTranslations).reduce((accumulator, key) => {
|
|
62
|
+
accumulator[key] = {
|
|
63
|
+
module: dependency,
|
|
64
|
+
...extractedTranslations[key]
|
|
68
65
|
};
|
|
66
|
+
return accumulator;
|
|
69
67
|
}, {});
|
|
70
68
|
Object.assign(ttossExtractedTranslations, extractedTranslationsWithModule);
|
|
71
69
|
} catch {
|
|
@@ -74,7 +72,7 @@ var getTtossExtractedTranslations = async () => {
|
|
|
74
72
|
}
|
|
75
73
|
return ttossExtractedTranslations;
|
|
76
74
|
};
|
|
77
|
-
|
|
75
|
+
var executeI18nCli = async () => {
|
|
78
76
|
const pattern = argv.pattern || "src/**/*.{ts,tsx}";
|
|
79
77
|
const ignore = argv.ignore || ["src/**/*.test.{ts,tsx}", "src/**/*.d.ts"];
|
|
80
78
|
const extractedDataAsString = await (0, import_cli_lib.extract)(import_fast_glob.default.sync(pattern, {
|
|
@@ -93,12 +91,12 @@ var getTtossExtractedTranslations = async () => {
|
|
|
93
91
|
...parsedExtractedData,
|
|
94
92
|
...ttossExtractedTranslations
|
|
95
93
|
};
|
|
96
|
-
return JSON.stringify(finalExtractedData2,
|
|
94
|
+
return JSON.stringify(finalExtractedData2, void 0, 2);
|
|
97
95
|
})();
|
|
98
|
-
await
|
|
96
|
+
await import_node_fs.default.promises.mkdir(EXTRACT_DIR, {
|
|
99
97
|
recursive: true
|
|
100
98
|
});
|
|
101
|
-
await
|
|
99
|
+
await import_node_fs.default.promises.writeFile(EXTRACT_FILE, finalExtractedData);
|
|
102
100
|
if (argv["no-compile"]) {
|
|
103
101
|
return;
|
|
104
102
|
}
|
|
@@ -106,7 +104,7 @@ var getTtossExtractedTranslations = async () => {
|
|
|
106
104
|
cwd: EXTRACT_DIR,
|
|
107
105
|
absolute: true
|
|
108
106
|
});
|
|
109
|
-
await
|
|
107
|
+
await import_node_fs.default.promises.mkdir(COMPILE_DIR, {
|
|
110
108
|
recursive: true
|
|
111
109
|
});
|
|
112
110
|
for (const translation of translations) {
|
|
@@ -115,13 +113,13 @@ var getTtossExtractedTranslations = async () => {
|
|
|
115
113
|
ast: true
|
|
116
114
|
});
|
|
117
115
|
if (filename) {
|
|
118
|
-
await
|
|
116
|
+
await import_node_fs.default.promises.writeFile(import_node_path.default.join(COMPILE_DIR, filename), compiledDataAsString);
|
|
119
117
|
}
|
|
120
118
|
}
|
|
121
|
-
await
|
|
119
|
+
await import_node_fs.default.promises.mkdir(MISSING_DIR, {
|
|
122
120
|
recursive: true
|
|
123
121
|
});
|
|
124
|
-
await
|
|
122
|
+
await import_node_fs.default.promises.mkdir(UNUSED_DIR, {
|
|
125
123
|
recursive: true
|
|
126
124
|
});
|
|
127
125
|
for (const translation of translations) {
|
|
@@ -130,49 +128,50 @@ var getTtossExtractedTranslations = async () => {
|
|
|
130
128
|
continue;
|
|
131
129
|
}
|
|
132
130
|
const extractedTranslations = JSON.parse(finalExtractedData);
|
|
133
|
-
const
|
|
134
|
-
encoding: "
|
|
131
|
+
const object = JSON.parse(import_node_fs.default.readFileSync(translation, {
|
|
132
|
+
encoding: "utf8"
|
|
135
133
|
}));
|
|
136
|
-
const missingTranslations = Object.keys(extractedTranslations).reduce((
|
|
137
|
-
if (!
|
|
138
|
-
|
|
134
|
+
const missingTranslations = Object.keys(extractedTranslations).reduce((accumulator, key) => {
|
|
135
|
+
if (!object[key]) {
|
|
136
|
+
accumulator[key] = extractedTranslations[key];
|
|
139
137
|
}
|
|
140
|
-
return
|
|
138
|
+
return accumulator;
|
|
141
139
|
},
|
|
142
140
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
143
141
|
{});
|
|
144
|
-
const unusedTranslations = Object.keys(
|
|
142
|
+
const unusedTranslations = Object.keys(object).reduce((accumulator, key) => {
|
|
145
143
|
if (!extractedTranslations[key]) {
|
|
146
|
-
|
|
144
|
+
accumulator[key] = object[key];
|
|
147
145
|
}
|
|
148
|
-
return
|
|
146
|
+
return accumulator;
|
|
149
147
|
},
|
|
150
148
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
151
149
|
{});
|
|
152
|
-
const
|
|
153
|
-
if (
|
|
154
|
-
|
|
150
|
+
const withoutUnnecessaryTranslations = Object.keys(object).reduce((accumulator, key) => {
|
|
151
|
+
if (object[key] !== unusedTranslations[key]) {
|
|
152
|
+
accumulator[key] = object[key];
|
|
155
153
|
}
|
|
156
|
-
return
|
|
154
|
+
return accumulator;
|
|
157
155
|
},
|
|
158
156
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
159
157
|
{});
|
|
160
158
|
if (filename) {
|
|
161
|
-
await
|
|
159
|
+
await import_node_fs.default.promises.writeFile(import_node_path.default.join(MISSING_DIR, filename), JSON.stringify(missingTranslations, void 0, 2));
|
|
162
160
|
try {
|
|
163
|
-
const existentUnusedJsonAsString = await
|
|
161
|
+
const existentUnusedJsonAsString = await import_node_fs.default.promises.readFile(import_node_path.default.join(UNUSED_DIR, filename));
|
|
164
162
|
if (existentUnusedJsonAsString) {
|
|
165
163
|
const existentUnusedJson = JSON.parse(existentUnusedJsonAsString.toString());
|
|
166
164
|
const updatedUnusedTranslations = {
|
|
167
165
|
...existentUnusedJson,
|
|
168
166
|
...unusedTranslations
|
|
169
167
|
};
|
|
170
|
-
await
|
|
168
|
+
await import_node_fs.default.promises.writeFile(import_node_path.default.join(UNUSED_DIR, filename), JSON.stringify(updatedUnusedTranslations, void 0, 2));
|
|
171
169
|
}
|
|
172
170
|
} catch {
|
|
173
|
-
await
|
|
171
|
+
await import_node_fs.default.promises.writeFile(import_node_path.default.join(UNUSED_DIR, filename), JSON.stringify(unusedTranslations, void 0, 2));
|
|
174
172
|
}
|
|
175
|
-
await
|
|
173
|
+
await import_node_fs.default.promises.writeFile(import_node_path.default.join(EXTRACT_DIR, filename), JSON.stringify(withoutUnnecessaryTranslations, void 0, 2));
|
|
176
174
|
}
|
|
177
175
|
}
|
|
178
|
-
}
|
|
176
|
+
};
|
|
177
|
+
executeI18nCli();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttoss/i18n-cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.28",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "ttoss",
|
|
6
6
|
"contributors": [
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@types/minimist": "^1.2.5",
|
|
28
28
|
"ts-node": "^10.9.2",
|
|
29
29
|
"tsup": "^8.3.5",
|
|
30
|
-
"@ttoss/config": "^1.35.
|
|
30
|
+
"@ttoss/config": "^1.35.3"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public",
|