text-to-map 1.1.45 → 1.1.47
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/LICENSE +21 -21
- package/README.md +69 -69
- package/dist/bin/address-points.d.ts +1 -1
- package/dist/bin/address-points.js +16 -16
- package/dist/bin/cities.d.ts +1 -1
- package/dist/bin/cities.js +10 -10
- package/dist/bin/clear-all.d.ts +1 -1
- package/dist/bin/clear-all.js +13 -13
- package/dist/bin/constants.d.ts +2 -2
- package/dist/bin/constants.js +4 -4
- package/dist/bin/generate-syntax-diagrams.d.ts +1 -1
- package/dist/bin/generate-syntax-diagrams.js +20 -20
- package/dist/bin/init-db.d.ts +1 -1
- package/dist/bin/init-db.js +8 -8
- package/dist/bin/knex.d.ts +1 -1
- package/dist/bin/knex.js +10 -10
- package/dist/bin/parse-ordinance.d.ts +1 -1
- package/dist/bin/parse-ordinance.js +74 -74
- package/dist/bin/polygons.d.ts +1 -1
- package/dist/bin/polygons.js +27 -27
- package/dist/bin/regions.d.ts +1 -1
- package/dist/bin/regions.js +10 -10
- package/dist/bin/schools.d.ts +1 -1
- package/dist/bin/schools.js +10 -10
- package/dist/bin/streets.d.ts +1 -1
- package/dist/bin/streets.js +19 -19
- package/dist/bin/sync-all.d.ts +1 -1
- package/dist/bin/sync-all.js +4 -4
- package/dist/db/address-points.d.ts +59 -59
- package/dist/db/address-points.js +401 -399
- package/dist/db/cities.d.ts +7 -7
- package/dist/db/cities.js +95 -95
- package/dist/db/db.d.ts +37 -37
- package/dist/db/db.js +191 -191
- package/dist/db/founders.d.ts +14 -14
- package/dist/db/founders.js +461 -461
- package/dist/db/meta.d.ts +4 -4
- package/dist/db/meta.js +26 -26
- package/dist/db/migrations/20230704125715_initial.js +304 -304
- package/dist/db/migrations/20230731232915_city_positions.js +13 -13
- package/dist/db/migrations/20240106224603_city_polygon.js +11 -11
- package/dist/db/migrations/20240320200534_district_polygon.js +11 -11
- package/dist/db/migrations/20250316162700_kindergartens.js +12 -12
- package/dist/db/regions.d.ts +31 -31
- package/dist/db/regions.js +81 -81
- package/dist/db/schools.d.ts +7 -7
- package/dist/db/schools.js +95 -95
- package/dist/db/street-sync.d.ts +6 -6
- package/dist/db/street-sync.js +22 -22
- package/dist/db/sync-log.d.ts +9 -9
- package/dist/db/sync-log.js +66 -66
- package/dist/db/types.d.ts +59 -59
- package/dist/db/types.js +26 -26
- package/dist/index.d.ts +23 -23
- package/dist/index.js +32 -32
- package/dist/open-data-sync/address-points.d.ts +2 -2
- package/dist/open-data-sync/address-points.js +68 -68
- package/dist/open-data-sync/cities.d.ts +2 -2
- package/dist/open-data-sync/cities.js +32 -32
- package/dist/open-data-sync/common.d.ts +2 -2
- package/dist/open-data-sync/common.js +22 -22
- package/dist/open-data-sync/regions.d.ts +2 -2
- package/dist/open-data-sync/regions.js +37 -37
- package/dist/open-data-sync/schools.d.ts +3 -3
- package/dist/open-data-sync/schools.js +207 -207
- package/dist/open-data-sync/streets.d.ts +2 -2
- package/dist/open-data-sync/streets.js +132 -132
- package/dist/smd-to-csv/json-to-csv.d.ts +1 -1
- package/dist/smd-to-csv/json-to-csv.js +154 -154
- package/dist/smd-to-csv/ordinance-to-csv-rules.d.ts +1 -1
- package/dist/smd-to-csv/ordinance-to-csv-rules.js +23 -23
- package/dist/smd-to-csv/txt-to-json.d.ts +1 -1
- package/dist/smd-to-csv/txt-to-json.js +92 -92
- package/dist/souradnice.csv +6260 -6260
- package/dist/street-markdown/municipality.d.ts +11 -11
- package/dist/street-markdown/municipality.js +116 -116
- package/dist/street-markdown/polygons.d.ts +7 -7
- package/dist/street-markdown/polygons.js +261 -261
- package/dist/street-markdown/roman-numerals.d.ts +1 -1
- package/dist/street-markdown/roman-numerals.js +68 -68
- package/dist/street-markdown/smd-line-parser.d.ts +4 -4
- package/dist/street-markdown/smd-line-parser.js +40 -40
- package/dist/street-markdown/smd-parser.d.ts +23 -23
- package/dist/street-markdown/smd-parser.js +393 -393
- package/dist/street-markdown/smd.d.ts +24 -24
- package/dist/street-markdown/smd.js +440 -440
- package/dist/street-markdown/token-definition.d.ts +25 -25
- package/dist/street-markdown/token-definition.js +168 -168
- package/dist/street-markdown/types.d.ts +148 -148
- package/dist/street-markdown/types.js +13 -13
- package/dist/utils/atom.d.ts +2 -2
- package/dist/utils/atom.js +57 -57
- package/dist/utils/helpers.d.ts +28 -28
- package/dist/utils/helpers.js +176 -176
- package/dist/utils/jtsk2wgs84.d.ts +17 -17
- package/dist/utils/jtsk2wgs84.js +82 -82
- package/package.json +109 -109
package/dist/db/types.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
export var SchoolType;
|
|
2
|
-
(function (SchoolType) {
|
|
3
|
-
SchoolType[SchoolType["Kindergarten"] = 0] = "Kindergarten";
|
|
4
|
-
SchoolType[SchoolType["Elementary"] = 1] = "Elementary";
|
|
5
|
-
})(SchoolType || (SchoolType = {}));
|
|
6
|
-
export var MunicipalityType;
|
|
7
|
-
(function (MunicipalityType) {
|
|
8
|
-
MunicipalityType[MunicipalityType["City"] = 0] = "City";
|
|
9
|
-
MunicipalityType[MunicipalityType["District"] = 1] = "District";
|
|
10
|
-
MunicipalityType[MunicipalityType["Other"] = 2] = "Other";
|
|
11
|
-
})(MunicipalityType || (MunicipalityType = {}));
|
|
12
|
-
export const founderToMunicipality = (founder) => {
|
|
13
|
-
return {
|
|
14
|
-
type: founder.municipalityType,
|
|
15
|
-
code: founder.municipalityCode,
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export var SyncPart;
|
|
19
|
-
(function (SyncPart) {
|
|
20
|
-
SyncPart["AddressPoints"] = "address-points";
|
|
21
|
-
SyncPart["Schools"] = "schools";
|
|
22
|
-
SyncPart["Regions"] = "regions";
|
|
23
|
-
SyncPart["Streets"] = "streets";
|
|
24
|
-
SyncPart["Cities"] = "cities";
|
|
25
|
-
})(SyncPart || (SyncPart = {}));
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export var SchoolType;
|
|
2
|
+
(function (SchoolType) {
|
|
3
|
+
SchoolType[SchoolType["Kindergarten"] = 0] = "Kindergarten";
|
|
4
|
+
SchoolType[SchoolType["Elementary"] = 1] = "Elementary";
|
|
5
|
+
})(SchoolType || (SchoolType = {}));
|
|
6
|
+
export var MunicipalityType;
|
|
7
|
+
(function (MunicipalityType) {
|
|
8
|
+
MunicipalityType[MunicipalityType["City"] = 0] = "City";
|
|
9
|
+
MunicipalityType[MunicipalityType["District"] = 1] = "District";
|
|
10
|
+
MunicipalityType[MunicipalityType["Other"] = 2] = "Other";
|
|
11
|
+
})(MunicipalityType || (MunicipalityType = {}));
|
|
12
|
+
export const founderToMunicipality = (founder) => {
|
|
13
|
+
return {
|
|
14
|
+
type: founder.municipalityType,
|
|
15
|
+
code: founder.municipalityCode,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export var SyncPart;
|
|
19
|
+
(function (SyncPart) {
|
|
20
|
+
SyncPart["AddressPoints"] = "address-points";
|
|
21
|
+
SyncPart["Schools"] = "schools";
|
|
22
|
+
SyncPart["Regions"] = "regions";
|
|
23
|
+
SyncPart["Streets"] = "streets";
|
|
24
|
+
SyncPart["Cities"] = "cities";
|
|
25
|
+
})(SyncPart || (SyncPart = {}));
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNwQiwyREFBZ0IsQ0FBQTtJQUNoQix1REFBYyxDQUFBO0FBQ2hCLENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQjtBQTBCRCxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQzFCLHVEQUFJLENBQUE7SUFDSiwrREFBUSxDQUFBO0lBQ1IseURBQUssQ0FBQTtBQUNQLENBQUMsRUFKVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSTNCO0FBb0JELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBZ0IsRUFBZ0IsRUFBRTtJQUN0RSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7UUFDOUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7S0FDL0IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVFGLE1BQU0sQ0FBTixJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIsNENBQWdDLENBQUE7SUFDaEMsK0JBQW1CLENBQUE7SUFDbkIsK0JBQW1CLENBQUE7SUFDbkIsK0JBQW1CLENBQUE7SUFDbkIsNkJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLFFBQVEsS0FBUixRQUFRLFFBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZUNvbGxlY3Rpb24sIE11bHRpUG9seWdvbiwgUG9seWdvbiB9IGZyb20gXCJAdHVyZi9oZWxwZXJzXCI7XG5cbmV4cG9ydCBlbnVtIFNjaG9vbFR5cGUge1xuICBLaW5kZXJnYXJ0ZW4gPSAwLFxuICBFbGVtZW50YXJ5ID0gMSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hvb2xMb2NhdGlvbiB7XG4gIGlkPzogbnVtYmVyO1xuICBzY2hvb2xJem8/OiBudW1iZXI7XG4gIGFkZHJlc3NQb2ludElkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nob29sIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpem86IHN0cmluZztcbiAgcmVkaXpvOiBzdHJpbmc7XG4gIGNhcGFjaXR5OiBudW1iZXI7XG4gIHR5cGU6IFNjaG9vbFR5cGU7XG4gIGxvY2F0aW9uczogU2Nob29sTG9jYXRpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3VuZGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpY286IHN0cmluZztcbiAgb3JpZ2luYWxUeXBlPzogbnVtYmVyO1xuICBtdW5pY2lwYWxpdHlUeXBlOiBNdW5pY2lwYWxpdHlUeXBlO1xuICBtdW5pY2lwYWxpdHlDb2RlPzogbnVtYmVyO1xuICBzY2hvb2xzOiBTY2hvb2xbXTtcbn1cblxuZXhwb3J0IGVudW0gTXVuaWNpcGFsaXR5VHlwZSB7XG4gIENpdHksXG4gIERpc3RyaWN0LFxuICBPdGhlcixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XG4gIGxhdDogbnVtYmVyO1xuICBsbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdW5pY2lwYWxpdHkge1xuICB0eXBlOiBNdW5pY2lwYWxpdHlUeXBlO1xuICBjb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIE11bmljaXBhbGl0eVdpdGhQb3NpdGlvbiA9IE11bmljaXBhbGl0eSAmIFBvc2l0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlV2l0aFBvc2l0aW9uIHtcbiAgY29kZTogbnVtYmVyO1xuICBsYXQ6IG51bWJlcjtcbiAgbG5nOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBmb3VuZGVyVG9NdW5pY2lwYWxpdHkgPSAoZm91bmRlcjogRm91bmRlcik6IE11bmljaXBhbGl0eSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogZm91bmRlci5tdW5pY2lwYWxpdHlUeXBlLFxuICAgIGNvZGU6IGZvdW5kZXIubXVuaWNpcGFsaXR5Q29kZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJmU3RyZWV0IHtcbiAgS09EOiBzdHJpbmc7XG4gIE5BWkVWOiBzdHJpbmc7XG4gIE9CRUNfS09EOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFN5bmNQYXJ0IHtcbiAgQWRkcmVzc1BvaW50cyA9IFwiYWRkcmVzcy1wb2ludHNcIixcbiAgU2Nob29scyA9IFwic2Nob29sc1wiLFxuICBSZWdpb25zID0gXCJyZWdpb25zXCIsXG4gIFN0cmVldHMgPSBcInN0cmVldHNcIixcbiAgQ2l0aWVzID0gXCJjaXRpZXNcIixcbn1cblxuZXhwb3J0IHR5cGUgUG9seWdvbnNCeUNvZGVzID0gUmVjb3JkPFxuICBudW1iZXIsXG4gIEZlYXR1cmVDb2xsZWN0aW9uPFBvbHlnb24gfCBNdWx0aVBvbHlnb24+XG4+O1xuIl19
|
package/dist/index.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { clearDb, initDb } from "./db/db";
|
|
2
|
-
import { downloadAndImportAddressPoints } from "./open-data-sync/address-points";
|
|
3
|
-
import { importCities } from "./open-data-sync/cities";
|
|
4
|
-
import { downloadAndImportRegions } from "./open-data-sync/regions";
|
|
5
|
-
import { downloadAndImportSchools } from "./open-data-sync/schools";
|
|
6
|
-
import { downloadAndImportStreets } from "./open-data-sync/streets";
|
|
7
|
-
import { municipalitiesToPolygons } from "./street-markdown/polygons";
|
|
8
|
-
import { OpenDataSyncOptionsPartial } from "./utils/helpers";
|
|
9
|
-
export * from "./street-markdown/smd";
|
|
10
|
-
export * from "./street-markdown/types";
|
|
11
|
-
/**
|
|
12
|
-
* Download and import all open data to SQLite DB. The DB file will be located
|
|
13
|
-
* in the `dataDir` folder.
|
|
14
|
-
* @param options Options for the sync
|
|
15
|
-
* @param syncStreets Streets sync takes around 1 hour, so it might be skipped.
|
|
16
|
-
* ```typescript
|
|
17
|
-
* import { downloadAndImportEverything } from "text-to-map";
|
|
18
|
-
*
|
|
19
|
-
* await downloadAndImportEverything({ tmpDir: "./tmp", dataDir: "./data" });
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare function downloadAndImportEverything(options?: OpenDataSyncOptionsPartial, syncStreets?: boolean): Promise<void>;
|
|
23
|
-
export { clearDb, downloadAndImportAddressPoints, downloadAndImportRegions, downloadAndImportSchools, downloadAndImportStreets, importCities, municipalitiesToPolygons, initDb, };
|
|
1
|
+
import { clearDb, initDb } from "./db/db";
|
|
2
|
+
import { downloadAndImportAddressPoints } from "./open-data-sync/address-points";
|
|
3
|
+
import { importCities } from "./open-data-sync/cities";
|
|
4
|
+
import { downloadAndImportRegions } from "./open-data-sync/regions";
|
|
5
|
+
import { downloadAndImportSchools } from "./open-data-sync/schools";
|
|
6
|
+
import { downloadAndImportStreets } from "./open-data-sync/streets";
|
|
7
|
+
import { municipalitiesToPolygons } from "./street-markdown/polygons";
|
|
8
|
+
import { OpenDataSyncOptionsPartial } from "./utils/helpers";
|
|
9
|
+
export * from "./street-markdown/smd";
|
|
10
|
+
export * from "./street-markdown/types";
|
|
11
|
+
/**
|
|
12
|
+
* Download and import all open data to SQLite DB. The DB file will be located
|
|
13
|
+
* in the `dataDir` folder.
|
|
14
|
+
* @param options Options for the sync
|
|
15
|
+
* @param syncStreets Streets sync takes around 1 hour, so it might be skipped.
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { downloadAndImportEverything } from "text-to-map";
|
|
18
|
+
*
|
|
19
|
+
* await downloadAndImportEverything({ tmpDir: "./tmp", dataDir: "./data" });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare function downloadAndImportEverything(options?: OpenDataSyncOptionsPartial, syncStreets?: boolean): Promise<void>;
|
|
23
|
+
export { clearDb, downloadAndImportAddressPoints, downloadAndImportRegions, downloadAndImportSchools, downloadAndImportStreets, importCities, municipalitiesToPolygons, initDb, };
|
package/dist/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { clearDb, initDb } from "./db/db";
|
|
2
|
-
import { downloadAndImportAddressPoints } from "./open-data-sync/address-points";
|
|
3
|
-
import { importCities } from "./open-data-sync/cities";
|
|
4
|
-
import { downloadAndImportRegions } from "./open-data-sync/regions";
|
|
5
|
-
import { downloadAndImportSchools } from "./open-data-sync/schools";
|
|
6
|
-
import { downloadAndImportStreets } from "./open-data-sync/streets";
|
|
7
|
-
import { municipalitiesToPolygons } from "./street-markdown/polygons";
|
|
8
|
-
export * from "./street-markdown/smd";
|
|
9
|
-
export * from "./street-markdown/types";
|
|
10
|
-
/**
|
|
11
|
-
* Download and import all open data to SQLite DB. The DB file will be located
|
|
12
|
-
* in the `dataDir` folder.
|
|
13
|
-
* @param options Options for the sync
|
|
14
|
-
* @param syncStreets Streets sync takes around 1 hour, so it might be skipped.
|
|
15
|
-
* ```typescript
|
|
16
|
-
* import { downloadAndImportEverything } from "text-to-map";
|
|
17
|
-
*
|
|
18
|
-
* await downloadAndImportEverything({ tmpDir: "./tmp", dataDir: "./data" });
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export async function downloadAndImportEverything(options = {}, syncStreets = true) {
|
|
22
|
-
await initDb();
|
|
23
|
-
await downloadAndImportAddressPoints(options);
|
|
24
|
-
await downloadAndImportSchools(options);
|
|
25
|
-
await downloadAndImportRegions(options);
|
|
26
|
-
await importCities(options);
|
|
27
|
-
if (syncStreets) {
|
|
28
|
-
await downloadAndImportStreets(options);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
export { clearDb, downloadAndImportAddressPoints, downloadAndImportRegions, downloadAndImportSchools, downloadAndImportStreets, importCities, municipalitiesToPolygons, initDb, };
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { clearDb, initDb } from "./db/db";
|
|
2
|
+
import { downloadAndImportAddressPoints } from "./open-data-sync/address-points";
|
|
3
|
+
import { importCities } from "./open-data-sync/cities";
|
|
4
|
+
import { downloadAndImportRegions } from "./open-data-sync/regions";
|
|
5
|
+
import { downloadAndImportSchools } from "./open-data-sync/schools";
|
|
6
|
+
import { downloadAndImportStreets } from "./open-data-sync/streets";
|
|
7
|
+
import { municipalitiesToPolygons } from "./street-markdown/polygons";
|
|
8
|
+
export * from "./street-markdown/smd";
|
|
9
|
+
export * from "./street-markdown/types";
|
|
10
|
+
/**
|
|
11
|
+
* Download and import all open data to SQLite DB. The DB file will be located
|
|
12
|
+
* in the `dataDir` folder.
|
|
13
|
+
* @param options Options for the sync
|
|
14
|
+
* @param syncStreets Streets sync takes around 1 hour, so it might be skipped.
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { downloadAndImportEverything } from "text-to-map";
|
|
17
|
+
*
|
|
18
|
+
* await downloadAndImportEverything({ tmpDir: "./tmp", dataDir: "./data" });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export async function downloadAndImportEverything(options = {}, syncStreets = true) {
|
|
22
|
+
await initDb();
|
|
23
|
+
await downloadAndImportAddressPoints(options);
|
|
24
|
+
await downloadAndImportSchools(options);
|
|
25
|
+
await downloadAndImportRegions(options);
|
|
26
|
+
await importCities(options);
|
|
27
|
+
if (syncStreets) {
|
|
28
|
+
await downloadAndImportStreets(options);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export { clearDb, downloadAndImportAddressPoints, downloadAndImportRegions, downloadAndImportSchools, downloadAndImportStreets, importCities, municipalitiesToPolygons, initDb, };
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3RFLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsVUFBc0MsRUFBRSxFQUN4QyxjQUF1QixJQUFJO0lBRTNCLE1BQU0sTUFBTSxFQUFFLENBQUM7SUFDZixNQUFNLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsTUFBTSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixJQUFJLFdBQVcsRUFBRTtRQUNmLE1BQU0sd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDekM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUNMLE9BQU8sRUFDUCw4QkFBOEIsRUFDOUIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLHdCQUF3QixFQUN4QixNQUFNLEdBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsZWFyRGIsIGluaXREYiB9IGZyb20gXCIuL2RiL2RiXCI7XG5pbXBvcnQgeyBkb3dubG9hZEFuZEltcG9ydEFkZHJlc3NQb2ludHMgfSBmcm9tIFwiLi9vcGVuLWRhdGEtc3luYy9hZGRyZXNzLXBvaW50c1wiO1xuaW1wb3J0IHsgaW1wb3J0Q2l0aWVzIH0gZnJvbSBcIi4vb3Blbi1kYXRhLXN5bmMvY2l0aWVzXCI7XG5pbXBvcnQgeyBkb3dubG9hZEFuZEltcG9ydFJlZ2lvbnMgfSBmcm9tIFwiLi9vcGVuLWRhdGEtc3luYy9yZWdpb25zXCI7XG5pbXBvcnQgeyBkb3dubG9hZEFuZEltcG9ydFNjaG9vbHMgfSBmcm9tIFwiLi9vcGVuLWRhdGEtc3luYy9zY2hvb2xzXCI7XG5pbXBvcnQgeyBkb3dubG9hZEFuZEltcG9ydFN0cmVldHMgfSBmcm9tIFwiLi9vcGVuLWRhdGEtc3luYy9zdHJlZXRzXCI7XG5pbXBvcnQgeyBtdW5pY2lwYWxpdGllc1RvUG9seWdvbnMgfSBmcm9tIFwiLi9zdHJlZXQtbWFya2Rvd24vcG9seWdvbnNcIjtcbmltcG9ydCB7IE9wZW5EYXRhU3luY09wdGlvbnNQYXJ0aWFsIH0gZnJvbSBcIi4vdXRpbHMvaGVscGVyc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zdHJlZXQtbWFya2Rvd24vc21kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdHJlZXQtbWFya2Rvd24vdHlwZXNcIjtcblxuLyoqXG4gKiBEb3dubG9hZCBhbmQgaW1wb3J0IGFsbCBvcGVuIGRhdGEgdG8gU1FMaXRlIERCLiBUaGUgREIgZmlsZSB3aWxsIGJlIGxvY2F0ZWRcbiAqIGluIHRoZSBgZGF0YURpcmAgZm9sZGVyLlxuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIHN5bmNcbiAqIEBwYXJhbSBzeW5jU3RyZWV0cyBTdHJlZXRzIHN5bmMgdGFrZXMgYXJvdW5kIDEgaG91ciwgc28gaXQgbWlnaHQgYmUgc2tpcHBlZC5cbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IGRvd25sb2FkQW5kSW1wb3J0RXZlcnl0aGluZyB9IGZyb20gXCJ0ZXh0LXRvLW1hcFwiO1xuICpcbiAqIGF3YWl0IGRvd25sb2FkQW5kSW1wb3J0RXZlcnl0aGluZyh7IHRtcERpcjogXCIuL3RtcFwiLCBkYXRhRGlyOiBcIi4vZGF0YVwiIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb3dubG9hZEFuZEltcG9ydEV2ZXJ5dGhpbmcoXG4gIG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnNQYXJ0aWFsID0ge30sXG4gIHN5bmNTdHJlZXRzOiBib29sZWFuID0gdHJ1ZVxuKSB7XG4gIGF3YWl0IGluaXREYigpO1xuICBhd2FpdCBkb3dubG9hZEFuZEltcG9ydEFkZHJlc3NQb2ludHMob3B0aW9ucyk7XG4gIGF3YWl0IGRvd25sb2FkQW5kSW1wb3J0U2Nob29scyhvcHRpb25zKTtcbiAgYXdhaXQgZG93bmxvYWRBbmRJbXBvcnRSZWdpb25zKG9wdGlvbnMpO1xuICBhd2FpdCBpbXBvcnRDaXRpZXMob3B0aW9ucyk7XG4gIGlmIChzeW5jU3RyZWV0cykge1xuICAgIGF3YWl0IGRvd25sb2FkQW5kSW1wb3J0U3RyZWV0cyhvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQge1xuICBjbGVhckRiLFxuICBkb3dubG9hZEFuZEltcG9ydEFkZHJlc3NQb2ludHMsXG4gIGRvd25sb2FkQW5kSW1wb3J0UmVnaW9ucyxcbiAgZG93bmxvYWRBbmRJbXBvcnRTY2hvb2xzLFxuICBkb3dubG9hZEFuZEltcG9ydFN0cmVldHMsXG4gIGltcG9ydENpdGllcyxcbiAgbXVuaWNpcGFsaXRpZXNUb1BvbHlnb25zLFxuICBpbml0RGIsXG59O1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { OpenDataSyncOptionsPartial } from "../utils/helpers";
|
|
2
|
-
export declare const downloadAndImportAddressPoints: (options?: OpenDataSyncOptionsPartial) => Promise<void>;
|
|
1
|
+
import { OpenDataSyncOptionsPartial } from "../utils/helpers";
|
|
2
|
+
export declare const downloadAndImportAddressPoints: (options?: OpenDataSyncOptionsPartial) => Promise<void>;
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
import AdmZip from "adm-zip";
|
|
2
|
-
import { parse } from "csv-parse";
|
|
3
|
-
import { createReadStream, createWriteStream, readdirSync, rmSync } from "fs";
|
|
4
|
-
import iconv from "iconv-lite";
|
|
5
|
-
import fetch from "node-fetch";
|
|
6
|
-
import { join } from "path";
|
|
7
|
-
import { pipeline } from "stream/promises";
|
|
8
|
-
import chunk from "lodash/chunk";
|
|
9
|
-
import { commitAddressPoints, removeDeprecatedAddressPoints, } from "../db/address-points";
|
|
10
|
-
import { SyncPart } from "../db/types";
|
|
11
|
-
import { getLatestUrlFromAtomFeed } from "../utils/atom";
|
|
12
|
-
import { prepareOptions, } from "../utils/helpers";
|
|
13
|
-
import { runSyncPart } from "./common";
|
|
14
|
-
const maxBufferSize = 1000;
|
|
15
|
-
const downloadAndUnzip = async (url, options) => {
|
|
16
|
-
const zipFilePath = join(options.tmpDir, options.addressPointsZipFileName);
|
|
17
|
-
console.log("Downloading a large ZIP file with RUIAN data (~65 MB)...");
|
|
18
|
-
const response = await fetch(url);
|
|
19
|
-
if (response.status !== 200) {
|
|
20
|
-
throw new Error(`The ZIP file could not be downloaded. HTTP Code: ${response.status}`);
|
|
21
|
-
}
|
|
22
|
-
await pipeline(response.body, createWriteStream(zipFilePath));
|
|
23
|
-
console.log("Finished downloading.");
|
|
24
|
-
const zip = new AdmZip(zipFilePath);
|
|
25
|
-
console.log(`Starting to unzip CSV files to '${options.tmpDir}'`);
|
|
26
|
-
zip.extractAllTo(options.tmpDir, true);
|
|
27
|
-
console.log("Unzip completed.");
|
|
28
|
-
rmSync(zipFilePath);
|
|
29
|
-
console.log("Removed the ZIP file.");
|
|
30
|
-
};
|
|
31
|
-
const importDataToDb = async (options) => {
|
|
32
|
-
const extractionFolder = getExtractionFolder(options);
|
|
33
|
-
const files = readdirSync(extractionFolder);
|
|
34
|
-
let total = 0;
|
|
35
|
-
let next = 0;
|
|
36
|
-
console.log("Initiating import of RUIAN data to search DB (~3 million rows to be imported).");
|
|
37
|
-
const allIds = new Set();
|
|
38
|
-
for (const [i, file] of files.entries()) {
|
|
39
|
-
const rows = [];
|
|
40
|
-
const parseStream = parse({ delimiter: ";", fromLine: 2 }).on("data", async (data) => {
|
|
41
|
-
rows.push(data);
|
|
42
|
-
allIds.add(parseInt(data[0]));
|
|
43
|
-
});
|
|
44
|
-
await pipeline(createReadStream(join(extractionFolder, file)), iconv.decodeStream("win1250"), parseStream);
|
|
45
|
-
const chunks = chunk(rows, maxBufferSize);
|
|
46
|
-
await Promise.all(chunks.map(async (chunk) => {
|
|
47
|
-
total += await commitAddressPoints(chunk);
|
|
48
|
-
if (total - next >= 100000) {
|
|
49
|
-
next += 100000;
|
|
50
|
-
console.log(`Total imported rows: ${next}`);
|
|
51
|
-
}
|
|
52
|
-
}));
|
|
53
|
-
console.log(`${i + 1}/${files.length} files imported.`);
|
|
54
|
-
}
|
|
55
|
-
await removeDeprecatedAddressPoints(allIds);
|
|
56
|
-
console.log(`Import completed. Total imported rows: ${total}`);
|
|
57
|
-
};
|
|
58
|
-
const getExtractionFolder = (options) => join(options.tmpDir, options.addressPointsCsvFolderName);
|
|
59
|
-
export const downloadAndImportAddressPoints = async (options = {}) => {
|
|
60
|
-
await runSyncPart(SyncPart.AddressPoints, [], async () => {
|
|
61
|
-
const completeOptions = prepareOptions(options);
|
|
62
|
-
const datasetFeedLink = await getLatestUrlFromAtomFeed(completeOptions.addressPointsAtomUrl);
|
|
63
|
-
const zipUrl = await getLatestUrlFromAtomFeed(datasetFeedLink);
|
|
64
|
-
await downloadAndUnzip(zipUrl, completeOptions);
|
|
65
|
-
await importDataToDb(completeOptions);
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import AdmZip from "adm-zip";
|
|
2
|
+
import { parse } from "csv-parse";
|
|
3
|
+
import { createReadStream, createWriteStream, readdirSync, rmSync } from "fs";
|
|
4
|
+
import iconv from "iconv-lite";
|
|
5
|
+
import fetch from "node-fetch";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
import { pipeline } from "stream/promises";
|
|
8
|
+
import chunk from "lodash/chunk";
|
|
9
|
+
import { commitAddressPoints, removeDeprecatedAddressPoints, } from "../db/address-points";
|
|
10
|
+
import { SyncPart } from "../db/types";
|
|
11
|
+
import { getLatestUrlFromAtomFeed } from "../utils/atom";
|
|
12
|
+
import { prepareOptions, } from "../utils/helpers";
|
|
13
|
+
import { runSyncPart } from "./common";
|
|
14
|
+
const maxBufferSize = 1000;
|
|
15
|
+
const downloadAndUnzip = async (url, options) => {
|
|
16
|
+
const zipFilePath = join(options.tmpDir, options.addressPointsZipFileName);
|
|
17
|
+
console.log("Downloading a large ZIP file with RUIAN data (~65 MB)...");
|
|
18
|
+
const response = await fetch(url);
|
|
19
|
+
if (response.status !== 200) {
|
|
20
|
+
throw new Error(`The ZIP file could not be downloaded. HTTP Code: ${response.status}`);
|
|
21
|
+
}
|
|
22
|
+
await pipeline(response.body, createWriteStream(zipFilePath));
|
|
23
|
+
console.log("Finished downloading.");
|
|
24
|
+
const zip = new AdmZip(zipFilePath);
|
|
25
|
+
console.log(`Starting to unzip CSV files to '${options.tmpDir}'`);
|
|
26
|
+
zip.extractAllTo(options.tmpDir, true);
|
|
27
|
+
console.log("Unzip completed.");
|
|
28
|
+
rmSync(zipFilePath);
|
|
29
|
+
console.log("Removed the ZIP file.");
|
|
30
|
+
};
|
|
31
|
+
const importDataToDb = async (options) => {
|
|
32
|
+
const extractionFolder = getExtractionFolder(options);
|
|
33
|
+
const files = readdirSync(extractionFolder);
|
|
34
|
+
let total = 0;
|
|
35
|
+
let next = 0;
|
|
36
|
+
console.log("Initiating import of RUIAN data to search DB (~3 million rows to be imported).");
|
|
37
|
+
const allIds = new Set();
|
|
38
|
+
for (const [i, file] of files.entries()) {
|
|
39
|
+
const rows = [];
|
|
40
|
+
const parseStream = parse({ delimiter: ";", fromLine: 2 }).on("data", async (data) => {
|
|
41
|
+
rows.push(data);
|
|
42
|
+
allIds.add(parseInt(data[0]));
|
|
43
|
+
});
|
|
44
|
+
await pipeline(createReadStream(join(extractionFolder, file)), iconv.decodeStream("win1250"), parseStream);
|
|
45
|
+
const chunks = chunk(rows, maxBufferSize);
|
|
46
|
+
await Promise.all(chunks.map(async (chunk) => {
|
|
47
|
+
total += await commitAddressPoints(chunk);
|
|
48
|
+
if (total - next >= 100000) {
|
|
49
|
+
next += 100000;
|
|
50
|
+
console.log(`Total imported rows: ${next}`);
|
|
51
|
+
}
|
|
52
|
+
}));
|
|
53
|
+
console.log(`${i + 1}/${files.length} files imported.`);
|
|
54
|
+
}
|
|
55
|
+
await removeDeprecatedAddressPoints(allIds);
|
|
56
|
+
console.log(`Import completed. Total imported rows: ${total}`);
|
|
57
|
+
};
|
|
58
|
+
const getExtractionFolder = (options) => join(options.tmpDir, options.addressPointsCsvFolderName);
|
|
59
|
+
export const downloadAndImportAddressPoints = async (options = {}) => {
|
|
60
|
+
await runSyncPart(SyncPart.AddressPoints, [], async () => {
|
|
61
|
+
const completeOptions = prepareOptions(options);
|
|
62
|
+
const datasetFeedLink = await getLatestUrlFromAtomFeed(completeOptions.addressPointsAtomUrl);
|
|
63
|
+
const zipUrl = await getLatestUrlFromAtomFeed(datasetFeedLink);
|
|
64
|
+
await downloadAndUnzip(zipUrl, completeOptions);
|
|
65
|
+
await importDataToDb(completeOptions);
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1wb2ludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3Blbi1kYXRhLXN5bmMvYWRkcmVzcy1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDOUUsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiw2QkFBNkIsR0FDOUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBR0wsY0FBYyxHQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUM7QUFFM0IsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEVBQzVCLEdBQVcsRUFDWCxPQUE0QixFQUNiLEVBQUU7SUFDakIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFM0UsT0FBTyxDQUFDLEdBQUcsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lB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QUMsTUFBTSxDQUFDLENBQUM7SUFFNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsT0FBNEIsRUFBRSxFQUFFLENBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEtBQUssRUFDakQsVUFBc0MsRUFBRSxFQUN6QixFQUFFO0lBQ2pCLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3ZELE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLGVBQWUsR0FBRyxNQUFNLHdCQUF3QixDQUNwRCxlQUFlLENBQUMsb0JBQW9CLENBQ3JDLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFkbVppcCBmcm9tIFwiYWRtLXppcFwiO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiY3N2LXBhcnNlXCI7XG5pbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtLCBjcmVhdGVXcml0ZVN0cmVhbSwgcmVhZGRpclN5bmMsIHJtU3luYyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IGljb252IGZyb20gXCJpY29udi1saXRlXCI7XG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tIFwic3RyZWFtL3Byb21pc2VzXCI7XG5pbXBvcnQgY2h1bmsgZnJvbSBcImxvZGFzaC9jaHVua1wiO1xuaW1wb3J0IHtcbiAgY29tbWl0QWRkcmVzc1BvaW50cyxcbiAgcmVtb3ZlRGVwcmVjYXRlZEFkZHJlc3NQb2ludHMsXG59IGZyb20gXCIuLi9kYi9hZGRyZXNzLXBvaW50c1wiO1xuaW1wb3J0IHsgU3luY1BhcnQgfSBmcm9tIFwiLi4vZGIvdHlwZXNcIjtcbmltcG9ydCB7IGdldExhdGVzdFVybEZyb21BdG9tRmVlZCB9IGZyb20gXCIuLi91dGlscy9hdG9tXCI7XG5pbXBvcnQge1xuICBPcGVuRGF0YVN5bmNPcHRpb25zLFxuICBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCxcbiAgcHJlcGFyZU9wdGlvbnMsXG59IGZyb20gXCIuLi91dGlscy9oZWxwZXJzXCI7XG5pbXBvcnQgeyBydW5TeW5jUGFydCB9IGZyb20gXCIuL2NvbW1vblwiO1xuXG5jb25zdCBtYXhCdWZmZXJTaXplID0gMTAwMDtcblxuY29uc3QgZG93bmxvYWRBbmRVbnppcCA9IGFzeW5jIChcbiAgdXJsOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnNcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCB6aXBGaWxlUGF0aCA9IGpvaW4ob3B0aW9ucy50bXBEaXIsIG9wdGlvbnMuYWRkcmVzc1BvaW50c1ppcEZpbGVOYW1lKTtcblxuICBjb25zb2xlLmxvZyhcIkRvd25sb2FkaW5nIGEgbGFyZ2UgWklQIGZpbGUgd2l0aCBSVUlBTiBkYXRhICh+NjUgTUIpLi4uXCIpO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG4gIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgWklQIGZpbGUgY291bGQgbm90IGJlIGRvd25sb2FkZWQuIEhUVFAgQ29kZTogJHtyZXNwb25zZS5zdGF0dXN9YFxuICAgICk7XG4gIH1cbiAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSwgY3JlYXRlV3JpdGVTdHJlYW0oemlwRmlsZVBhdGgpKTtcblxuICBjb25zb2xlLmxvZyhcIkZpbmlzaGVkIGRvd25sb2FkaW5nLlwiKTtcbiAgY29uc3QgemlwID0gbmV3IEFkbVppcCh6aXBGaWxlUGF0aCk7XG5cbiAgY29uc29sZS5sb2coYFN0YXJ0aW5nIHRvIHVuemlwIENTViBmaWxlcyB0byAnJHtvcHRpb25zLnRtcERpcn0nYCk7XG4gIHppcC5leHRyYWN0QWxsVG8ob3B0aW9ucy50bXBEaXIsIHRydWUpO1xuICBjb25zb2xlLmxvZyhcIlVuemlwIGNvbXBsZXRlZC5cIik7XG5cbiAgcm1TeW5jKHppcEZpbGVQYXRoKTtcbiAgY29uc29sZS5sb2coXCJSZW1vdmVkIHRoZSBaSVAgZmlsZS5cIik7XG59O1xuXG5jb25zdCBpbXBvcnREYXRhVG9EYiA9IGFzeW5jIChvcHRpb25zOiBPcGVuRGF0YVN5bmNPcHRpb25zKSA9PiB7XG4gIGNvbnN0IGV4dHJhY3Rpb25Gb2xkZXIgPSBnZXRFeHRyYWN0aW9uRm9sZGVyKG9wdGlvbnMpO1xuXG4gIGNvbnN0IGZpbGVzID0gcmVhZGRpclN5bmMoZXh0cmFjdGlvbkZvbGRlcik7XG5cbiAgbGV0IHRvdGFsID0gMDtcbiAgbGV0IG5leHQgPSAwO1xuXG4gIGNvbnNvbGUubG9nKFxuICAgIFwiSW5pdGlhdGluZyBpbXBvcnQgb2YgUlVJQU4gZGF0YSB0byBzZWFyY2ggREIgKH4zIG1pbGxpb24gcm93cyB0byBiZSBpbXBvcnRlZCkuXCJcbiAgKTtcblxuICBjb25zdCBhbGxJZHMgPSBuZXcgU2V0PG51bWJlcj4oKTtcblxuICBmb3IgKGNvbnN0IFtpLCBmaWxlXSBvZiBmaWxlcy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCByb3dzOiBzdHJpbmdbXVtdID0gW107XG4gICAgY29uc3QgcGFyc2VTdHJlYW0gPSBwYXJzZSh7IGRlbGltaXRlcjogXCI7XCIsIGZyb21MaW5lOiAyIH0pLm9uKFxuICAgICAgXCJkYXRhXCIsXG4gICAgICBhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICByb3dzLnB1c2goZGF0YSk7XG4gICAgICAgIGFsbElkcy5hZGQocGFyc2VJbnQoZGF0YVswXSkpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBhd2FpdCBwaXBlbGluZShcbiAgICAgIGNyZWF0ZVJlYWRTdHJlYW0oam9pbihleHRyYWN0aW9uRm9sZGVyLCBmaWxlKSksXG4gICAgICBpY29udi5kZWNvZGVTdHJlYW0oXCJ3aW4xMjUwXCIpLFxuICAgICAgcGFyc2VTdHJlYW1cbiAgICApO1xuXG4gICAgY29uc3QgY2h1bmtzID0gY2h1bmsocm93cywgbWF4QnVmZmVyU2l6ZSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGNodW5rcy5tYXAoYXN5bmMgKGNodW5rKSA9PiB7XG4gICAgICAgIHRvdGFsICs9IGF3YWl0IGNvbW1pdEFkZHJlc3NQb2ludHMoY2h1bmspO1xuXG4gICAgICAgIGlmICh0b3RhbCAtIG5leHQgPj0gMTAwMDAwKSB7XG4gICAgICAgICAgbmV4dCArPSAxMDAwMDA7XG4gICAgICAgICAgY29uc29sZS5sb2coYFRvdGFsIGltcG9ydGVkIHJvd3M6ICR7bmV4dH1gKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgY29uc29sZS5sb2coYCR7aSArIDF9LyR7ZmlsZXMubGVuZ3RofSBmaWxlcyBpbXBvcnRlZC5gKTtcbiAgfVxuXG4gIGF3YWl0IHJlbW92ZURlcHJlY2F0ZWRBZGRyZXNzUG9pbnRzKGFsbElkcyk7XG5cbiAgY29uc29sZS5sb2coYEltcG9ydCBjb21wbGV0ZWQuIFRvdGFsIGltcG9ydGVkIHJvd3M6ICR7dG90YWx9YCk7XG59O1xuXG5jb25zdCBnZXRFeHRyYWN0aW9uRm9sZGVyID0gKG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnMpID0+XG4gIGpvaW4ob3B0aW9ucy50bXBEaXIsIG9wdGlvbnMuYWRkcmVzc1BvaW50c0NzdkZvbGRlck5hbWUpO1xuXG5leHBvcnQgY29uc3QgZG93bmxvYWRBbmRJbXBvcnRBZGRyZXNzUG9pbnRzID0gYXN5bmMgKFxuICBvcHRpb25zOiBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgYXdhaXQgcnVuU3luY1BhcnQoU3luY1BhcnQuQWRkcmVzc1BvaW50cywgW10sIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjb21wbGV0ZU9wdGlvbnMgPSBwcmVwYXJlT3B0aW9ucyhvcHRpb25zKTtcbiAgICBjb25zdCBkYXRhc2V0RmVlZExpbmsgPSBhd2FpdCBnZXRMYXRlc3RVcmxGcm9tQXRvbUZlZWQoXG4gICAgICBjb21wbGV0ZU9wdGlvbnMuYWRkcmVzc1BvaW50c0F0b21VcmxcbiAgICApO1xuICAgIGNvbnN0IHppcFVybCA9IGF3YWl0IGdldExhdGVzdFVybEZyb21BdG9tRmVlZChkYXRhc2V0RmVlZExpbmspO1xuICAgIGF3YWl0IGRvd25sb2FkQW5kVW56aXAoemlwVXJsLCBjb21wbGV0ZU9wdGlvbnMpO1xuICAgIGF3YWl0IGltcG9ydERhdGFUb0RiKGNvbXBsZXRlT3B0aW9ucyk7XG4gIH0pO1xufTtcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { OpenDataSyncOptionsPartial } from "../utils/helpers";
|
|
2
|
-
export declare const importCities: (options?: OpenDataSyncOptionsPartial) => Promise<void>;
|
|
1
|
+
import { OpenDataSyncOptionsPartial } from "../utils/helpers";
|
|
2
|
+
export declare const importCities: (options?: OpenDataSyncOptionsPartial) => Promise<void>;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { parse } from "csv-parse";
|
|
2
|
-
import iconv from "iconv-lite";
|
|
3
|
-
import { pipeline } from "stream/promises";
|
|
4
|
-
import { createReadStream } from "fs";
|
|
5
|
-
import { dirname, join } from "path";
|
|
6
|
-
import { fileURLToPath } from "url";
|
|
7
|
-
import { insertCityPositions } from "../db/cities";
|
|
8
|
-
import { SyncPart } from "../db/types";
|
|
9
|
-
import { prepareOptions, } from "../utils/helpers";
|
|
10
|
-
import { runSyncPart } from "./common";
|
|
11
|
-
const importDataToDb = async (options) => {
|
|
12
|
-
console.log("Starting to parse CSV file...");
|
|
13
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
-
const __dirname = dirname(__filename);
|
|
15
|
-
// source: https://github.com/33bcdd/souradnice-mest/blob/master/souradnice.csv
|
|
16
|
-
const csvStream = createReadStream(join(__dirname, "..", "souradnice.csv"));
|
|
17
|
-
const rows = [];
|
|
18
|
-
const parseStream = parse({ delimiter: ",", fromLine: 2 }).on("data", (data) => {
|
|
19
|
-
rows.push(data);
|
|
20
|
-
});
|
|
21
|
-
await pipeline(csvStream, iconv.decodeStream("utf-8"), parseStream);
|
|
22
|
-
console.log("Parsing completed. Starting to import data to DB...");
|
|
23
|
-
await insertCityPositions(rows);
|
|
24
|
-
console.log(`Import completed. Total imported rows: ${rows.length}`);
|
|
25
|
-
};
|
|
26
|
-
export const importCities = async (options = {}) => {
|
|
27
|
-
await runSyncPart(SyncPart.Regions, [], async () => {
|
|
28
|
-
const completeOptions = prepareOptions(options);
|
|
29
|
-
await importDataToDb(completeOptions);
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { parse } from "csv-parse";
|
|
2
|
+
import iconv from "iconv-lite";
|
|
3
|
+
import { pipeline } from "stream/promises";
|
|
4
|
+
import { createReadStream } from "fs";
|
|
5
|
+
import { dirname, join } from "path";
|
|
6
|
+
import { fileURLToPath } from "url";
|
|
7
|
+
import { insertCityPositions } from "../db/cities";
|
|
8
|
+
import { SyncPart } from "../db/types";
|
|
9
|
+
import { prepareOptions, } from "../utils/helpers";
|
|
10
|
+
import { runSyncPart } from "./common";
|
|
11
|
+
const importDataToDb = async (options) => {
|
|
12
|
+
console.log("Starting to parse CSV file...");
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
+
const __dirname = dirname(__filename);
|
|
15
|
+
// source: https://github.com/33bcdd/souradnice-mest/blob/master/souradnice.csv
|
|
16
|
+
const csvStream = createReadStream(join(__dirname, "..", "souradnice.csv"));
|
|
17
|
+
const rows = [];
|
|
18
|
+
const parseStream = parse({ delimiter: ",", fromLine: 2 }).on("data", (data) => {
|
|
19
|
+
rows.push(data);
|
|
20
|
+
});
|
|
21
|
+
await pipeline(csvStream, iconv.decodeStream("utf-8"), parseStream);
|
|
22
|
+
console.log("Parsing completed. Starting to import data to DB...");
|
|
23
|
+
await insertCityPositions(rows);
|
|
24
|
+
console.log(`Import completed. Total imported rows: ${rows.length}`);
|
|
25
|
+
};
|
|
26
|
+
export const importCities = async (options = {}) => {
|
|
27
|
+
await runSyncPart(SyncPart.Regions, [], async () => {
|
|
28
|
+
const completeOptions = prepareOptions(options);
|
|
29
|
+
await importDataToDb(completeOptions);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2l0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZW4tZGF0YS1zeW5jL2NpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUdMLGNBQWMsR0FDZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLE9BQTRCLEVBQUUsRUFBRTtJQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFFN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLCtFQUErRTtJQUMvRSxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFNUUsTUFBTSxJQUFJLEdBQWUsRUFBRSxDQUFDO0lBQzVCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUMzRCxNQUFNLEVBQ04sQ0FBQyxJQUFjLEVBQUUsRUFBRTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBRW5FLE1BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFDL0IsVUFBc0MsRUFBRSxFQUN6QixFQUFFO0lBQ2pCLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2pELE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSBcImNzdi1wYXJzZVwiO1xuaW1wb3J0IGljb252IGZyb20gXCJpY29udi1saXRlXCI7XG5pbXBvcnQgeyBwaXBlbGluZSB9IGZyb20gXCJzdHJlYW0vcHJvbWlzZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlUmVhZFN0cmVhbSB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHsgaW5zZXJ0Q2l0eVBvc2l0aW9ucyB9IGZyb20gXCIuLi9kYi9jaXRpZXNcIjtcbmltcG9ydCB7IFN5bmNQYXJ0IH0gZnJvbSBcIi4uL2RiL3R5cGVzXCI7XG5pbXBvcnQge1xuICBPcGVuRGF0YVN5bmNPcHRpb25zLFxuICBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCxcbiAgcHJlcGFyZU9wdGlvbnMsXG59IGZyb20gXCIuLi91dGlscy9oZWxwZXJzXCI7XG5pbXBvcnQgeyBydW5TeW5jUGFydCB9IGZyb20gXCIuL2NvbW1vblwiO1xuXG5jb25zdCBpbXBvcnREYXRhVG9EYiA9IGFzeW5jIChvcHRpb25zOiBPcGVuRGF0YVN5bmNPcHRpb25zKSA9PiB7XG4gIGNvbnNvbGUubG9nKFwiU3RhcnRpbmcgdG8gcGFyc2UgQ1NWIGZpbGUuLi5cIik7XG5cbiAgY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKTtcbiAgY29uc3QgX19kaXJuYW1lID0gZGlybmFtZShfX2ZpbGVuYW1lKTtcblxuICAvLyBzb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS8zM2JjZGQvc291cmFkbmljZS1tZXN0L2Jsb2IvbWFzdGVyL3NvdXJhZG5pY2UuY3N2XG4gIGNvbnN0IGNzdlN0cmVhbSA9IGNyZWF0ZVJlYWRTdHJlYW0oam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCJzb3VyYWRuaWNlLmNzdlwiKSk7XG5cbiAgY29uc3Qgcm93czogc3RyaW5nW11bXSA9IFtdO1xuICBjb25zdCBwYXJzZVN0cmVhbSA9IHBhcnNlKHsgZGVsaW1pdGVyOiBcIixcIiwgZnJvbUxpbmU6IDIgfSkub24oXG4gICAgXCJkYXRhXCIsXG4gICAgKGRhdGE6IHN0cmluZ1tdKSA9PiB7XG4gICAgICByb3dzLnB1c2goZGF0YSk7XG4gICAgfVxuICApO1xuXG4gIGF3YWl0IHBpcGVsaW5lKGNzdlN0cmVhbSwgaWNvbnYuZGVjb2RlU3RyZWFtKFwidXRmLThcIiksIHBhcnNlU3RyZWFtKTtcblxuICBjb25zb2xlLmxvZyhcIlBhcnNpbmcgY29tcGxldGVkLiBTdGFydGluZyB0byBpbXBvcnQgZGF0YSB0byBEQi4uLlwiKTtcblxuICBhd2FpdCBpbnNlcnRDaXR5UG9zaXRpb25zKHJvd3MpO1xuXG4gIGNvbnNvbGUubG9nKGBJbXBvcnQgY29tcGxldGVkLiBUb3RhbCBpbXBvcnRlZCByb3dzOiAke3Jvd3MubGVuZ3RofWApO1xufTtcblxuZXhwb3J0IGNvbnN0IGltcG9ydENpdGllcyA9IGFzeW5jIChcbiAgb3B0aW9uczogT3BlbkRhdGFTeW5jT3B0aW9uc1BhcnRpYWwgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGF3YWl0IHJ1blN5bmNQYXJ0KFN5bmNQYXJ0LlJlZ2lvbnMsIFtdLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29tcGxldGVPcHRpb25zID0gcHJlcGFyZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgYXdhaXQgaW1wb3J0RGF0YVRvRGIoY29tcGxldGVPcHRpb25zKTtcbiAgfSk7XG59O1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { SyncPart } from "../db/types";
|
|
2
|
-
export declare const runSyncPart: (part: SyncPart, dependencies: SyncPart[], partFunction: () => Promise<void>) => Promise<void>;
|
|
1
|
+
import { SyncPart } from "../db/types";
|
|
2
|
+
export declare const runSyncPart: (part: SyncPart, dependencies: SyncPart[], partFunction: () => Promise<void>) => Promise<void>;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { disconnectKnex } from "../db/db";
|
|
2
|
-
import { isSyncPartCompleted, setSyncPartAsCompleted, startSyncPart } from "../db/sync-log";
|
|
3
|
-
export const runSyncPart = async (part, dependencies, partFunction) => {
|
|
4
|
-
try {
|
|
5
|
-
const logId = await startSyncPart(part);
|
|
6
|
-
for (const dependency of dependencies) {
|
|
7
|
-
const isCompleted = await isSyncPartCompleted(dependency);
|
|
8
|
-
if (!isCompleted) {
|
|
9
|
-
throw new Error(`Sync part ${part} cannot be started because dependency ${dependency} is not completed. Run 'npm run ${dependency}' first.`);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
await partFunction();
|
|
13
|
-
await setSyncPartAsCompleted(logId);
|
|
14
|
-
}
|
|
15
|
-
catch (error) {
|
|
16
|
-
console.log(error);
|
|
17
|
-
}
|
|
18
|
-
finally {
|
|
19
|
-
await disconnectKnex();
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { disconnectKnex } from "../db/db";
|
|
2
|
+
import { isSyncPartCompleted, setSyncPartAsCompleted, startSyncPart } from "../db/sync-log";
|
|
3
|
+
export const runSyncPart = async (part, dependencies, partFunction) => {
|
|
4
|
+
try {
|
|
5
|
+
const logId = await startSyncPart(part);
|
|
6
|
+
for (const dependency of dependencies) {
|
|
7
|
+
const isCompleted = await isSyncPartCompleted(dependency);
|
|
8
|
+
if (!isCompleted) {
|
|
9
|
+
throw new Error(`Sync part ${part} cannot be started because dependency ${dependency} is not completed. Run 'npm run ${dependency}' first.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
await partFunction();
|
|
13
|
+
await setSyncPartAsCompleted(logId);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.log(error);
|
|
17
|
+
}
|
|
18
|
+
finally {
|
|
19
|
+
await disconnectKnex();
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZW4tZGF0YS1zeW5jL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUM5QixJQUFjLEVBQ2QsWUFBd0IsRUFDeEIsWUFBaUMsRUFDbEIsRUFBRTtJQUNqQixJQUFJO1FBQ0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxZQUFZLEVBQUU7WUFDckMsTUFBTSxXQUFXLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixNQUFNLElBQUksS0FBSyxDQUNiLGFBQWEsSUFBSSx5Q0FBeUMsVUFBVSxtQ0FBbUMsVUFBVSxVQUFVLENBQzVILENBQUM7YUFDSDtTQUNGO1FBQ0QsTUFBTSxZQUFZLEVBQUUsQ0FBQztRQUVyQixNQUFNLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3JDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO1lBQVM7UUFDUixNQUFNLGNBQWMsRUFBRSxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlzY29ubmVjdEtuZXggfSBmcm9tIFwiLi4vZGIvZGJcIjtcbmltcG9ydCB7IGlzU3luY1BhcnRDb21wbGV0ZWQsIHNldFN5bmNQYXJ0QXNDb21wbGV0ZWQsIHN0YXJ0U3luY1BhcnQgfSBmcm9tIFwiLi4vZGIvc3luYy1sb2dcIjtcbmltcG9ydCB7IFN5bmNQYXJ0IH0gZnJvbSBcIi4uL2RiL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBydW5TeW5jUGFydCA9IGFzeW5jIChcbiAgcGFydDogU3luY1BhcnQsXG4gIGRlcGVuZGVuY2llczogU3luY1BhcnRbXSxcbiAgcGFydEZ1bmN0aW9uOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBsb2dJZCA9IGF3YWl0IHN0YXJ0U3luY1BhcnQocGFydCk7XG5cbiAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3kgb2YgZGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBpc0NvbXBsZXRlZCA9IGF3YWl0IGlzU3luY1BhcnRDb21wbGV0ZWQoZGVwZW5kZW5jeSk7XG4gICAgICBpZiAoIWlzQ29tcGxldGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgU3luYyBwYXJ0ICR7cGFydH0gY2Fubm90IGJlIHN0YXJ0ZWQgYmVjYXVzZSBkZXBlbmRlbmN5ICR7ZGVwZW5kZW5jeX0gaXMgbm90IGNvbXBsZXRlZC4gUnVuICducG0gcnVuICR7ZGVwZW5kZW5jeX0nIGZpcnN0LmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgcGFydEZ1bmN0aW9uKCk7XG5cbiAgICBhd2FpdCBzZXRTeW5jUGFydEFzQ29tcGxldGVkKGxvZ0lkKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgZGlzY29ubmVjdEtuZXgoKTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { OpenDataSyncOptionsPartial } from "../utils/helpers";
|
|
2
|
-
export declare const downloadAndImportRegions: (options?: OpenDataSyncOptionsPartial) => Promise<void>;
|
|
1
|
+
import { OpenDataSyncOptionsPartial } from "../utils/helpers";
|
|
2
|
+
export declare const downloadAndImportRegions: (options?: OpenDataSyncOptionsPartial) => Promise<void>;
|