@k03mad/ip2geo 9.7.0 → 10.0.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.
- package/app/cli.js +9 -1
- package/app/helpers/cache.js +16 -1
- package/package.json +1 -1
package/app/cli.js
CHANGED
|
@@ -46,7 +46,13 @@ if (isPrune) {
|
|
|
46
46
|
log(blue(cacheFolder));
|
|
47
47
|
|
|
48
48
|
try {
|
|
49
|
-
const {
|
|
49
|
+
const {
|
|
50
|
+
different,
|
|
51
|
+
duplicates,
|
|
52
|
+
empty,
|
|
53
|
+
entries,
|
|
54
|
+
longLinesFiles,
|
|
55
|
+
} = await pruneCache(
|
|
50
56
|
cacheFolder,
|
|
51
57
|
DEFAULT_CACHE_FILE_SEPARATOR,
|
|
52
58
|
DEFAULT_CACHE_FILE_NEWLINE,
|
|
@@ -56,6 +62,8 @@ if (isPrune) {
|
|
|
56
62
|
'',
|
|
57
63
|
green(`Removed duplicate cache entries: ${bold(duplicates.length)}`),
|
|
58
64
|
...duplicates.map(elem => dim(`— ${elem}`)),
|
|
65
|
+
green(`Removed different cache entries: ${bold(different.length)}`),
|
|
66
|
+
...different.map(elem => dim(`— ${elem}`)),
|
|
59
67
|
green(`Removed empty cache entries: ${bold(empty.length)}`),
|
|
60
68
|
...empty.map(elem => dim(`— ${elem}`)),
|
|
61
69
|
]);
|
package/app/helpers/cache.js
CHANGED
|
@@ -191,6 +191,7 @@ export const pruneCache = async (cacheDir, cacheFileSeparator, cacheFileNewline)
|
|
|
191
191
|
);
|
|
192
192
|
|
|
193
193
|
const duplicates = new Set();
|
|
194
|
+
const different = new Set();
|
|
194
195
|
const empty = [];
|
|
195
196
|
const longLinesFiles = new Set();
|
|
196
197
|
let entries = 0;
|
|
@@ -216,7 +217,20 @@ export const pruneCache = async (cacheDir, cacheFileSeparator, cacheFileNewline)
|
|
|
216
217
|
});
|
|
217
218
|
|
|
218
219
|
const uniq = [...new Set(dataArrRemoveEmpty)]
|
|
219
|
-
.sort((a, b) => cacheLineToNum(a) - cacheLineToNum(b))
|
|
220
|
+
.sort((a, b) => cacheLineToNum(a) - cacheLineToNum(b))
|
|
221
|
+
.filter((elem, i, arr) => {
|
|
222
|
+
for (const [j, line] of arr.entries()) {
|
|
223
|
+
if (
|
|
224
|
+
i !== j
|
|
225
|
+
&& line.split(cacheFileSeparator)[0] === elem.split(cacheFileSeparator)[0]
|
|
226
|
+
) {
|
|
227
|
+
different.add(elem);
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return true;
|
|
233
|
+
});
|
|
220
234
|
|
|
221
235
|
const fileContent = uniq.join(cacheFileNewline).trim();
|
|
222
236
|
|
|
@@ -234,6 +248,7 @@ export const pruneCache = async (cacheDir, cacheFileSeparator, cacheFileNewline)
|
|
|
234
248
|
return {
|
|
235
249
|
entries,
|
|
236
250
|
duplicates: [...duplicates],
|
|
251
|
+
different: [...different],
|
|
237
252
|
empty,
|
|
238
253
|
longLinesFiles: [...longLinesFiles],
|
|
239
254
|
};
|