locize-cli 7.15.1 → 7.15.2
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/CHANGELOG.md +4 -0
- package/download.js +39 -4
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
Project versioning adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
Change log format is based on [Keep a Changelog](http://keepachangelog.com/).
|
|
7
7
|
|
|
8
|
+
## [7.15.2](https://github.com/locize/locize-cli/compare/v7.15.1...v7.15.2) - 2023-01-06
|
|
9
|
+
|
|
10
|
+
- optimize --skip-empty false handling for download command
|
|
11
|
+
|
|
8
12
|
## [7.15.1](https://github.com/locize/locize-cli/compare/v7.15.0...v7.15.1) - 2023-12-19
|
|
9
13
|
|
|
10
14
|
- refactor retriable requests handling
|
package/download.js
CHANGED
|
@@ -151,6 +151,43 @@ const handleError = (err, cb) => {
|
|
|
151
151
|
if (cb) cb(err);
|
|
152
152
|
};
|
|
153
153
|
|
|
154
|
+
const filterDownloads = (opt, downloads) => {
|
|
155
|
+
if (opt.skipEmpty) return downloads.filter((d) => d.size > 2);
|
|
156
|
+
if (downloads.length < 1) return downloads;
|
|
157
|
+
|
|
158
|
+
const allNamespaces = [];
|
|
159
|
+
const downloadMap = {};
|
|
160
|
+
downloads.forEach((d) => {
|
|
161
|
+
const splitted = d.key.split('/');
|
|
162
|
+
const p = splitted[d.isPrivate ? 1 : 0];
|
|
163
|
+
const v = splitted[d.isPrivate ? 2 : 1];
|
|
164
|
+
const l = splitted[d.isPrivate ? 3 : 2];
|
|
165
|
+
const n = splitted[d.isPrivate ? 4 : 3];
|
|
166
|
+
downloadMap[p] = downloadMap[p] || {};
|
|
167
|
+
downloadMap[p][v] = downloadMap[p][v] || {};
|
|
168
|
+
downloadMap[p][v][l] = downloadMap[p][v][l] || {};
|
|
169
|
+
downloadMap[p][v][l][n] = d;
|
|
170
|
+
if (allNamespaces.indexOf(n) < 0) allNamespaces.push(n);
|
|
171
|
+
});
|
|
172
|
+
Object.keys(downloadMap).forEach((projectId) => {
|
|
173
|
+
Object.keys(downloadMap[projectId]).forEach((version) => {
|
|
174
|
+
Object.keys(downloadMap[projectId][version]).forEach((language) => {
|
|
175
|
+
allNamespaces.forEach((namespace) => {
|
|
176
|
+
if (!downloadMap[projectId][version][language][namespace]) {
|
|
177
|
+
downloads.push({
|
|
178
|
+
url: `${opt.apiPath}/${projectId}/${version}/${language}/${namespace}`,
|
|
179
|
+
key: `${projectId}/${version}/${language}/${namespace}`,
|
|
180
|
+
lastModified: '1960-01-01T00:00:00.000Z',
|
|
181
|
+
size: 0
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
return downloads;
|
|
189
|
+
};
|
|
190
|
+
|
|
154
191
|
const download = (opt, cb) => {
|
|
155
192
|
opt.format = opt.format || 'json';
|
|
156
193
|
if (!reversedFileExtensionsMap[opt.format]) {
|
|
@@ -203,20 +240,18 @@ const download = (opt, cb) => {
|
|
|
203
240
|
'Authorization': opt.apiKey
|
|
204
241
|
} : undefined
|
|
205
242
|
}, (err, res, obj) => {
|
|
206
|
-
obj = obj || [];
|
|
207
243
|
if (res && res.status === 401) {
|
|
208
244
|
opt.apiKey = null;
|
|
209
245
|
request(url, {
|
|
210
246
|
method: 'get',
|
|
211
247
|
}, (err, res, obj) => {
|
|
212
|
-
obj = obj || [];
|
|
213
|
-
if (opt.skipEmpty) obj = obj.filter((d) => d.size > 2);
|
|
248
|
+
obj = filterDownloads(opt, obj || []);
|
|
214
249
|
handleDownload(opt, url, err, res, obj, cb);
|
|
215
250
|
});
|
|
216
251
|
return;
|
|
217
252
|
}
|
|
218
253
|
|
|
219
|
-
|
|
254
|
+
obj = filterDownloads(opt, obj || []);
|
|
220
255
|
handleDownload(opt, url, err, res, obj, cb);
|
|
221
256
|
});
|
|
222
257
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "locize-cli",
|
|
3
|
-
"version": "7.15.
|
|
3
|
+
"version": "7.15.2",
|
|
4
4
|
"description": "locize cli to import locales",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.0/xlsx-0.20.0.tgz"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"eslint": "8.
|
|
37
|
+
"eslint": "8.56.0",
|
|
38
38
|
"gh-release": "7.0.2",
|
|
39
39
|
"pkg": "5.8.1"
|
|
40
40
|
},
|