text-to-map 1.1.9 → 1.1.11

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.
@@ -47,6 +47,7 @@ const importDataToDb = (data) => __awaiter(void 0, void 0, void 0, function* ()
47
47
  }
48
48
  yield insertStreetsFromDbf(data);
49
49
  });
50
+ const attempts = 5;
50
51
  export const downloadAndImportStreets = (options = {}) => __awaiter(void 0, void 0, void 0, function* () {
51
52
  yield runSyncPart(SyncPart.Streets, [SyncPart.AddressPoints], () => __awaiter(void 0, void 0, void 0, function* () {
52
53
  console.log("Starting to download and import streets. This takes up to 1 hour.");
@@ -68,14 +69,35 @@ export const downloadAndImportStreets = (options = {}) => __awaiter(void 0, void
68
69
  console.log(`Total of ${done} links to ZIP files already stored.`);
69
70
  // get all links not yet stored
70
71
  const newLinks = allDatasetFeedLinks.filter((link) => !syncedStreetLinks.has(link));
72
+ let delay = 0;
71
73
  console.log(`Loading ${newLinks.length} new links to ZIP files.`);
72
74
  for (const link of newLinks) {
73
- const zipLink = yield getLatestUrlFromAtomFeed(link);
74
- const dbfObject = yield downloadZipAndParseDbfFile(zipLink, done, completeOptions);
75
- yield importDataToDb(dbfObject);
76
- yield setStreetAsSynced(link);
77
- done++;
78
- console.log(`Loaded links: ${done}/${allDatasetFeedLinks.length}`);
75
+ for (let i = 0; i < attempts; i++) {
76
+ try {
77
+ const zipLink = yield getLatestUrlFromAtomFeed(link);
78
+ const dbfObject = yield downloadZipAndParseDbfFile(zipLink, done, completeOptions);
79
+ yield importDataToDb(dbfObject);
80
+ yield setStreetAsSynced(link);
81
+ done++;
82
+ console.log(`Loaded links: ${done}/${allDatasetFeedLinks.length}`);
83
+ yield wait(delay);
84
+ break;
85
+ }
86
+ catch (error) {
87
+ if (i < attempts - 1) {
88
+ delay += 100; // if error occured, it is likely to repeat so we wait a bit longer
89
+ const waitTime = (i + 1) * 3;
90
+ console.error(`Error connecting to CUZK servers, retrying in ${waitTime} seconds...`);
91
+ yield wait(waitTime * 1000);
92
+ }
93
+ else {
94
+ throw error;
95
+ }
96
+ }
97
+ }
79
98
  }
80
99
  }));
81
100
  });
101
+ const wait = (ms) => __awaiter(void 0, void 0, void 0, function* () {
102
+ yield new Promise((resolve) => setTimeout(resolve, ms));
103
+ });
package/package.json CHANGED
@@ -53,7 +53,7 @@
53
53
  },
54
54
  "name": "text-to-map",
55
55
  "description": "Text To Map usiluje o lepší, strojově zpracovatelné využití částí vyhlášek s výčtem ulic a dalších lokací. Jde o rozšiřitelnou sadu konceptů a nástrojů, které zajistí hladký převod výčtu ulic a jejich rozsahů v lidsky srozumitelném jazyce do strojově zpracovatelného, uchopitelného formátu.",
56
- "version": "1.1.9",
56
+ "version": "1.1.11",
57
57
  "main": "dist/index.js",
58
58
  "types": "dist/index.d.ts",
59
59
  "files": [