@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 CHANGED
@@ -46,7 +46,13 @@ if (isPrune) {
46
46
  log(blue(cacheFolder));
47
47
 
48
48
  try {
49
- const {duplicates, empty, entries, longLinesFiles} = await pruneCache(
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
  ]);
@@ -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
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k03mad/ip2geo",
3
- "version": "9.7.0",
3
+ "version": "10.0.0",
4
4
  "description": "GeoIP library",
5
5
  "maintainers": [
6
6
  "Kirill Molchanov <k03.mad@gmail.com"