text-to-map 1.1.46 → 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/cities.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { FeatureCollection } from "@turf/helpers";
|
|
2
|
-
import { PolygonsByCodes } from "./types";
|
|
3
|
-
export declare const insertCityPositions: (data: string[][]) => Promise<number>;
|
|
4
|
-
export declare const insertCities: (buffer: string[][]) => Promise<number>;
|
|
5
|
-
export declare const setCityPolygonGeojson: (code: string, polygon: FeatureCollection, districtsPolygon?: FeatureCollection) => Promise<void>;
|
|
6
|
-
export declare const getCityPolygons: (cityCodes: Set<number>) => Promise<PolygonsByCodes>;
|
|
7
|
-
export declare const getDistrictPolygons: (districtCodes: Set<number>) => Promise<PolygonsByCodes>;
|
|
1
|
+
import { FeatureCollection } from "@turf/helpers";
|
|
2
|
+
import { PolygonsByCodes } from "./types";
|
|
3
|
+
export declare const insertCityPositions: (data: string[][]) => Promise<number>;
|
|
4
|
+
export declare const insertCities: (buffer: string[][]) => Promise<number>;
|
|
5
|
+
export declare const setCityPolygonGeojson: (code: string, polygon: FeatureCollection, districtsPolygon?: FeatureCollection) => Promise<void>;
|
|
6
|
+
export declare const getCityPolygons: (cityCodes: Set<number>) => Promise<PolygonsByCodes>;
|
|
7
|
+
export declare const getDistrictPolygons: (districtCodes: Set<number>) => Promise<PolygonsByCodes>;
|
package/dist/db/cities.js
CHANGED
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
import chunk from "lodash/chunk";
|
|
2
|
-
import { extractKeyValuesPairs, getKnexDb, insertMultipleRows, rawQuery, } from "./db";
|
|
3
|
-
const citiesColumn = {
|
|
4
|
-
cityName: 0,
|
|
5
|
-
cityCode: 1,
|
|
6
|
-
countyName: 2,
|
|
7
|
-
countyCode: 3,
|
|
8
|
-
regionName: 4,
|
|
9
|
-
regionCode: 5,
|
|
10
|
-
postalCode: 6,
|
|
11
|
-
latitude: 7,
|
|
12
|
-
longitude: 8,
|
|
13
|
-
};
|
|
14
|
-
export const insertCityPositions = async (data) => {
|
|
15
|
-
let changes = 0;
|
|
16
|
-
// cities are most likely already inserted, but in case they're not,
|
|
17
|
-
// we need to insert them before updating them with region data
|
|
18
|
-
changes += await insertCities(data);
|
|
19
|
-
const prev = changes;
|
|
20
|
-
for (const arrayChunk of chunk(data, 1000)) {
|
|
21
|
-
const queries = [];
|
|
22
|
-
for (const row of arrayChunk) {
|
|
23
|
-
queries.push(rawQuery(`UPDATE city SET wgs84_latitude = ?, wgs84_longitude = ? WHERE code = ?`, [
|
|
24
|
-
row[citiesColumn.latitude],
|
|
25
|
-
row[citiesColumn.longitude],
|
|
26
|
-
row[citiesColumn.cityCode],
|
|
27
|
-
]));
|
|
28
|
-
}
|
|
29
|
-
await Promise.all(queries);
|
|
30
|
-
changes += queries.length;
|
|
31
|
-
console.log(`Done ${changes - prev} / ${data.length} rows...`);
|
|
32
|
-
}
|
|
33
|
-
return changes;
|
|
34
|
-
};
|
|
35
|
-
export const insertCities = async (buffer) => {
|
|
36
|
-
return await insertMultipleRows(extractKeyValuesPairs(buffer, citiesColumn.cityCode, [
|
|
37
|
-
citiesColumn.cityName,
|
|
38
|
-
]), "city", ["code", "name"]);
|
|
39
|
-
};
|
|
40
|
-
export const setCityPolygonGeojson = async (code, polygon, districtsPolygon) => {
|
|
41
|
-
await getKnexDb()
|
|
42
|
-
.from("city")
|
|
43
|
-
.update({
|
|
44
|
-
polygon_geojson: JSON.stringify(polygon),
|
|
45
|
-
...(districtsPolygon
|
|
46
|
-
? { districts_polygon_geojson: JSON.stringify(districtsPolygon) }
|
|
47
|
-
: {}),
|
|
48
|
-
})
|
|
49
|
-
.where({ code });
|
|
50
|
-
};
|
|
51
|
-
export const getCityPolygons = async (cityCodes) => {
|
|
52
|
-
if (cityCodes.size === 0) {
|
|
53
|
-
return {};
|
|
54
|
-
}
|
|
55
|
-
const cityRows = await getKnexDb()
|
|
56
|
-
.from("city")
|
|
57
|
-
.select("code", "polygon_geojson")
|
|
58
|
-
.whereIn("code", Array.from(cityCodes));
|
|
59
|
-
return cityRows.reduce((acc, row) => {
|
|
60
|
-
acc[row.code] = JSON.parse(row.polygon_geojson);
|
|
61
|
-
return acc;
|
|
62
|
-
}, {});
|
|
63
|
-
};
|
|
64
|
-
export const getDistrictPolygons = async (districtCodes) => {
|
|
65
|
-
if (districtCodes.size === 0) {
|
|
66
|
-
return {};
|
|
67
|
-
}
|
|
68
|
-
const cityCodes = (await getKnexDb()
|
|
69
|
-
.from("city_district")
|
|
70
|
-
.select("city_code")
|
|
71
|
-
.whereIn("code", Array.from(districtCodes))
|
|
72
|
-
.groupBy("city_code")).map((row) => row.city_code);
|
|
73
|
-
const cityRows = await getKnexDb()
|
|
74
|
-
.from("city")
|
|
75
|
-
.select("code", "districts_polygon_geojson")
|
|
76
|
-
.whereIn("code", cityCodes);
|
|
77
|
-
const districtPolygons = {};
|
|
78
|
-
for (const row of cityRows) {
|
|
79
|
-
if (row.districts_polygon_geojson) {
|
|
80
|
-
const polygons = JSON.parse(row.districts_polygon_geojson);
|
|
81
|
-
for (const feature of polygons.features) {
|
|
82
|
-
if (districtCodes.has(Number(feature.properties.KOD))) {
|
|
83
|
-
districtPolygons[feature.properties.KOD] = {
|
|
84
|
-
type: "FeatureCollection",
|
|
85
|
-
features: [
|
|
86
|
-
{ ...feature, properties: { code: feature.properties.KOD } },
|
|
87
|
-
],
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return districtPolygons;
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import chunk from "lodash/chunk";
|
|
2
|
+
import { extractKeyValuesPairs, getKnexDb, insertMultipleRows, rawQuery, } from "./db";
|
|
3
|
+
const citiesColumn = {
|
|
4
|
+
cityName: 0,
|
|
5
|
+
cityCode: 1,
|
|
6
|
+
countyName: 2,
|
|
7
|
+
countyCode: 3,
|
|
8
|
+
regionName: 4,
|
|
9
|
+
regionCode: 5,
|
|
10
|
+
postalCode: 6,
|
|
11
|
+
latitude: 7,
|
|
12
|
+
longitude: 8,
|
|
13
|
+
};
|
|
14
|
+
export const insertCityPositions = async (data) => {
|
|
15
|
+
let changes = 0;
|
|
16
|
+
// cities are most likely already inserted, but in case they're not,
|
|
17
|
+
// we need to insert them before updating them with region data
|
|
18
|
+
changes += await insertCities(data);
|
|
19
|
+
const prev = changes;
|
|
20
|
+
for (const arrayChunk of chunk(data, 1000)) {
|
|
21
|
+
const queries = [];
|
|
22
|
+
for (const row of arrayChunk) {
|
|
23
|
+
queries.push(rawQuery(`UPDATE city SET wgs84_latitude = ?, wgs84_longitude = ? WHERE code = ?`, [
|
|
24
|
+
row[citiesColumn.latitude],
|
|
25
|
+
row[citiesColumn.longitude],
|
|
26
|
+
row[citiesColumn.cityCode],
|
|
27
|
+
]));
|
|
28
|
+
}
|
|
29
|
+
await Promise.all(queries);
|
|
30
|
+
changes += queries.length;
|
|
31
|
+
console.log(`Done ${changes - prev} / ${data.length} rows...`);
|
|
32
|
+
}
|
|
33
|
+
return changes;
|
|
34
|
+
};
|
|
35
|
+
export const insertCities = async (buffer) => {
|
|
36
|
+
return await insertMultipleRows(extractKeyValuesPairs(buffer, citiesColumn.cityCode, [
|
|
37
|
+
citiesColumn.cityName,
|
|
38
|
+
]), "city", ["code", "name"]);
|
|
39
|
+
};
|
|
40
|
+
export const setCityPolygonGeojson = async (code, polygon, districtsPolygon) => {
|
|
41
|
+
await getKnexDb()
|
|
42
|
+
.from("city")
|
|
43
|
+
.update({
|
|
44
|
+
polygon_geojson: JSON.stringify(polygon),
|
|
45
|
+
...(districtsPolygon
|
|
46
|
+
? { districts_polygon_geojson: JSON.stringify(districtsPolygon) }
|
|
47
|
+
: {}),
|
|
48
|
+
})
|
|
49
|
+
.where({ code });
|
|
50
|
+
};
|
|
51
|
+
export const getCityPolygons = async (cityCodes) => {
|
|
52
|
+
if (cityCodes.size === 0) {
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
55
|
+
const cityRows = await getKnexDb()
|
|
56
|
+
.from("city")
|
|
57
|
+
.select("code", "polygon_geojson")
|
|
58
|
+
.whereIn("code", Array.from(cityCodes));
|
|
59
|
+
return cityRows.reduce((acc, row) => {
|
|
60
|
+
acc[row.code] = JSON.parse(row.polygon_geojson);
|
|
61
|
+
return acc;
|
|
62
|
+
}, {});
|
|
63
|
+
};
|
|
64
|
+
export const getDistrictPolygons = async (districtCodes) => {
|
|
65
|
+
if (districtCodes.size === 0) {
|
|
66
|
+
return {};
|
|
67
|
+
}
|
|
68
|
+
const cityCodes = (await getKnexDb()
|
|
69
|
+
.from("city_district")
|
|
70
|
+
.select("city_code")
|
|
71
|
+
.whereIn("code", Array.from(districtCodes))
|
|
72
|
+
.groupBy("city_code")).map((row) => row.city_code);
|
|
73
|
+
const cityRows = await getKnexDb()
|
|
74
|
+
.from("city")
|
|
75
|
+
.select("code", "districts_polygon_geojson")
|
|
76
|
+
.whereIn("code", cityCodes);
|
|
77
|
+
const districtPolygons = {};
|
|
78
|
+
for (const row of cityRows) {
|
|
79
|
+
if (row.districts_polygon_geojson) {
|
|
80
|
+
const polygons = JSON.parse(row.districts_polygon_geojson);
|
|
81
|
+
for (const feature of polygons.features) {
|
|
82
|
+
if (districtCodes.has(Number(feature.properties.KOD))) {
|
|
83
|
+
districtPolygons[feature.properties.KOD] = {
|
|
84
|
+
type: "FeatureCollection",
|
|
85
|
+
features: [
|
|
86
|
+
{ ...feature, properties: { code: feature.properties.KOD } },
|
|
87
|
+
],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return districtPolygons;
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2l0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RiL2NpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLFFBQVEsR0FDVCxNQUFNLE1BQU0sQ0FBQztBQUlkLE1BQU0sWUFBWSxHQUFHO0lBQ25CLFFBQVEsRUFBRSxDQUFDO0lBQ1gsUUFBUSxFQUFFLENBQUM7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxDQUFDO0lBQ2IsUUFBUSxFQUFFLENBQUM7SUFDWCxTQUFTLEVBQUUsQ0FBQztDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQ3RDLElBQWdCLEVBQ0MsRUFBRTtJQUNuQixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFFaEIsb0VBQW9FO0lBQ3BFLCtEQUErRDtJQUMvRCxPQUFPLElBQUksTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDO0lBRXJCLEtBQUssTUFBTSxVQUFVLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FDVixRQUFRLENBQ04sd0VBQXdFLEVBQ3hFO2dCQUNFLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUMxQixHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztnQkFDM0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFR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MkJBQTJCLENBQUM7U0FDM0MsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUU5QixNQUFNLGdCQUFnQixHQUFvQixFQUFFLENBQUM7SUFDN0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUU7UUFDMUIsSUFBSSxHQUFHLENBQUMseUJBQXlCLEVBQUU7WUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDekIsR0FBRyxDQUFDLHlCQUF5QixDQUNlLENBQUM7WUFDL0MsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUN2QyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDckQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRzt3QkFDekMsSUFBSSxFQUFFLG1CQUFtQjt3QkFDekIsUUFBUSxFQUFFOzRCQUNSLEVBQUUsR0FBRyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUU7eUJBQzdEO3FCQUNGLENBQUM7aUJBQ0g7YUFDRjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQzFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaHVuayBmcm9tIFwibG9kYXNoL2NodW5rXCI7XG5pbXBvcnQge1xuICBleHRyYWN0S2V5VmFsdWVzUGFpcnMsXG4gIGdldEtuZXhEYixcbiAgaW5zZXJ0TXVsdGlwbGVSb3dzLFxuICByYXdRdWVyeSxcbn0gZnJvbSBcIi4vZGJcIjtcbmltcG9ydCB7IEZlYXR1cmVDb2xsZWN0aW9uLCBNdWx0aVBvbHlnb24sIFBvbHlnb24gfSBmcm9tIFwiQHR1cmYvaGVscGVyc1wiO1xuaW1wb3J0IHsgUG9seWdvbnNCeUNvZGVzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuY29uc3QgY2l0aWVzQ29sdW1uID0ge1xuICBjaXR5TmFtZTogMCxcbiAgY2l0eUNvZGU6IDEsXG4gIGNvdW50eU5hbWU6IDIsXG4gIGNvdW50eUNvZGU6IDMsXG4gIHJlZ2lvbk5hbWU6IDQsXG4gIHJlZ2lvbkNvZGU6IDUsXG4gIHBvc3RhbENvZGU6IDYsXG4gIGxhdGl0dWRlOiA3LFxuICBsb25naXR1ZGU6IDgsXG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0Q2l0eVBvc2l0aW9ucyA9IGFzeW5jIChcbiAgZGF0YTogc3RyaW5nW11bXVxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgbGV0IGNoYW5nZXMgPSAwO1xuXG4gIC8vIGNpdGllcyBhcmUgbW9zdCBsaWtlbHkgYWxyZWFkeSBpbnNlcnRlZCwgYnV0IGluIGNhc2UgdGhleSdyZSBub3QsXG4gIC8vIHdlIG5lZWQgdG8gaW5zZXJ0IHRoZW0gYmVmb3JlIHVwZGF0aW5nIHRoZW0gd2l0aCByZWdpb24gZGF0YVxuICBjaGFuZ2VzICs9IGF3YWl0IGluc2VydENpdGllcyhkYXRhKTtcbiAgY29uc3QgcHJldiA9IGNoYW5nZXM7XG5cbiAgZm9yIChjb25zdCBhcnJheUNodW5rIG9mIGNodW5rKGRhdGEsIDEwMDApKSB7XG4gICAgY29uc3QgcXVlcmllcyA9IFtdO1xuICAgIGZvciAoY29uc3Qgcm93IG9mIGFycmF5Q2h1bmspIHtcbiAgICAgIHF1ZXJpZXMucHVzaChcbiAgICAgICAgcmF3UXVlcnkoXG4gICAgICAgICAgYFVQREFURSBjaXR5IFNFVCB3Z3M4NF9sYXRpdHVkZSA9ID8sIHdnczg0X2xvbmdpdHVkZSA9ID8gV0hFUkUgY29kZSA9ID9gLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHJvd1tjaXRpZXNDb2x1bW4ubGF0aXR1ZGVdLFxuICAgICAgICAgICAgcm93W2NpdGllc0NvbHVtbi5sb25naXR1ZGVdLFxuICAgICAgICAgICAgcm93W2NpdGllc0NvbHVtbi5jaXR5Q29kZV0sXG4gICAgICAgICAgXVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICBhd2FpdCBQcm9taXNlLmFsbChxdWVyaWVzKTtcbiAgICBjaGFuZ2VzICs9IHF1ZXJpZXMubGVuZ3RoO1xuICAgIGNvbnNvbGUubG9nKGBEb25lICR7Y2hhbmdlcyAtIHByZXZ9IC8gJHtkYXRhLmxlbmd0aH0gcm93cy4uLmApO1xuICB9XG5cbiAgcmV0dXJuIGNoYW5nZXM7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0Q2l0aWVzID0gYXN5bmMgKGJ1ZmZlcjogc3RyaW5nW11bXSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIHJldHVybiBhd2FpdCBpbnNlcnRNdWx0aXBsZVJvd3MoXG4gICAgZXh0cmFjdEtleVZhbHVlc1BhaXJzKGJ1ZmZlciwgY2l0aWVzQ29sdW1uLmNpdHlDb2RlLCBbXG4gICAgICBjaXRpZXNDb2x1bW4uY2l0eU5hbWUsXG4gICAgXSksXG4gICAgXCJjaXR5XCIsXG4gICAgW1wiY29kZVwiLCBcIm5hbWVcIl1cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDaXR5UG9seWdvbkdlb2pzb24gPSBhc3luYyAoXG4gIGNvZGU6IHN0cmluZyxcbiAgcG9seWdvbjogRmVhdHVyZUNvbGxlY3Rpb24sXG4gIGRpc3RyaWN0c1BvbHlnb24/OiBGZWF0dXJlQ29sbGVjdGlvblxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGF3YWl0IGdldEtuZXhEYigpXG4gICAgLmZyb20oXCJjaXR5XCIpXG4gICAgLnVwZGF0ZSh7XG4gICAgICBwb2x5Z29uX2dlb2pzb246IEpTT04uc3RyaW5naWZ5KHBvbHlnb24pLFxuICAgICAgLi4uKGRpc3RyaWN0c1BvbHlnb25cbiAgICAgICAgPyB7IGRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb246IEpTT04uc3RyaW5naWZ5KGRpc3RyaWN0c1BvbHlnb24pIH1cbiAgICAgICAgOiB7fSksXG4gICAgfSlcbiAgICAud2hlcmUoeyBjb2RlIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENpdHlQb2x5Z29ucyA9IGFzeW5jIChcbiAgY2l0eUNvZGVzOiBTZXQ8bnVtYmVyPlxuKTogUHJvbWlzZTxQb2x5Z29uc0J5Q29kZXM+ID0+IHtcbiAgaWYgKGNpdHlDb2Rlcy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0IGNpdHlSb3dzID0gYXdhaXQgZ2V0S25leERiKClcbiAgICAuZnJvbShcImNpdHlcIilcbiAgICAuc2VsZWN0KFwiY29kZVwiLCBcInBvbHlnb25fZ2VvanNvblwiKVxuICAgIC53aGVyZUluKFwiY29kZVwiLCBBcnJheS5mcm9tKGNpdHlDb2RlcykpO1xuXG4gIHJldHVybiBjaXR5Um93cy5yZWR1Y2UoKGFjYywgcm93KSA9PiB7XG4gICAgYWNjW3Jvdy5jb2RlXSA9IEpTT04ucGFyc2Uocm93LnBvbHlnb25fZ2VvanNvbik7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERpc3RyaWN0UG9seWdvbnMgPSBhc3luYyAoXG4gIGRpc3RyaWN0Q29kZXM6IFNldDxudW1iZXI+XG4pOiBQcm9taXNlPFBvbHlnb25zQnlDb2Rlcz4gPT4ge1xuICBpZiAoZGlzdHJpY3RDb2Rlcy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0IGNpdHlDb2RlcyA9IChcbiAgICBhd2FpdCBnZXRLbmV4RGIoKVxuICAgICAgLmZyb20oXCJjaXR5X2Rpc3RyaWN0XCIpXG4gICAgICAuc2VsZWN0KFwiY2l0eV9jb2RlXCIpXG4gICAgICAud2hlcmVJbihcImNvZGVcIiwgQXJyYXkuZnJvbShkaXN0cmljdENvZGVzKSlcbiAgICAgIC5ncm91cEJ5KFwiY2l0eV9jb2RlXCIpXG4gICkubWFwKChyb3cpID0+IHJvdy5jaXR5X2NvZGUpO1xuXG4gIGNvbnN0IGNpdHlSb3dzID0gYXdhaXQgZ2V0S25leERiKClcbiAgICAuZnJvbShcImNpdHlcIilcbiAgICAuc2VsZWN0KFwiY29kZVwiLCBcImRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb25cIilcbiAgICAud2hlcmVJbihcImNvZGVcIiwgY2l0eUNvZGVzKTtcblxuICBjb25zdCBkaXN0cmljdFBvbHlnb25zOiBQb2x5Z29uc0J5Q29kZXMgPSB7fTtcbiAgZm9yIChjb25zdCByb3cgb2YgY2l0eVJvd3MpIHtcbiAgICBpZiAocm93LmRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb24pIHtcbiAgICAgIGNvbnN0IHBvbHlnb25zID0gSlNPTi5wYXJzZShcbiAgICAgICAgcm93LmRpc3RyaWN0c19wb2x5Z29uX2dlb2pzb25cbiAgICAgICkgYXMgRmVhdHVyZUNvbGxlY3Rpb248UG9seWdvbiB8IE11bHRpUG9seWdvbj47XG4gICAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgcG9seWdvbnMuZmVhdHVyZXMpIHtcbiAgICAgICAgaWYgKGRpc3RyaWN0Q29kZXMuaGFzKE51bWJlcihmZWF0dXJlLnByb3BlcnRpZXMuS09EKSkpIHtcbiAgICAgICAgICBkaXN0cmljdFBvbHlnb25zW2ZlYXR1cmUucHJvcGVydGllcy5LT0RdID0ge1xuICAgICAgICAgICAgdHlwZTogXCJGZWF0dXJlQ29sbGVjdGlvblwiLFxuICAgICAgICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAgICAgICAgeyAuLi5mZWF0dXJlLCBwcm9wZXJ0aWVzOiB7IGNvZGU6IGZlYXR1cmUucHJvcGVydGllcy5LT0QgfSB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc3RyaWN0UG9seWdvbnM7XG59O1xuIl19
|
package/dist/db/db.d.ts
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { Knex } from "knex";
|
|
2
|
-
interface DbConfig {
|
|
3
|
-
dbType: SupportedDbType;
|
|
4
|
-
pgConnectionString?: string;
|
|
5
|
-
mysqlConnectionString?: string;
|
|
6
|
-
initFilePath: string;
|
|
7
|
-
filePath?: string;
|
|
8
|
-
verbose: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare enum SupportedDbType {
|
|
11
|
-
sqlite = "sqlite",
|
|
12
|
-
postgres = "postgres",
|
|
13
|
-
mysql = "mysql"
|
|
14
|
-
}
|
|
15
|
-
export declare const getKnexDb: (config?: Partial<DbConfig>) => Knex;
|
|
16
|
-
export declare const isPostgres: (knex: Knex) => boolean;
|
|
17
|
-
export declare const isSqlite: (knex: Knex) => boolean;
|
|
18
|
-
export declare const isMysql: (knex: Knex) => boolean;
|
|
19
|
-
export declare const initDb: (config?: Partial<DbConfig>) => Promise<Knex>;
|
|
20
|
-
export declare const clearDb: (config?: Partial<DbConfig>) => Promise<Knex>;
|
|
21
|
-
export declare const disconnectKnex: () => Promise<void>;
|
|
22
|
-
export declare const nonEmptyOrNull: (value: string) => string | null;
|
|
23
|
-
export declare const rawQuery: (query: string, ...bindings: readonly Knex.RawBinding[]) => Promise<any[]>;
|
|
24
|
-
/**
|
|
25
|
-
* Efficiently insert multiple rows. If preventDuplicatesByFirstColumn is true, the first
|
|
26
|
-
* column should be unique (PK or UNIQUE).
|
|
27
|
-
*/
|
|
28
|
-
export declare const insertMultipleRows: (rows: string[][], table: string, columnNames: string[], preventDuplicates?: boolean) => Promise<number>;
|
|
29
|
-
/**
|
|
30
|
-
* Insert a single row and return the autoincremented ID.
|
|
31
|
-
*/
|
|
32
|
-
export declare const insertAutoincrementRow: (row: any[], table: string, columnNames: string[]) => Promise<number | null>;
|
|
33
|
-
export declare const deleteMultipleRowsKnex: (keys: string[], table: string, keyColumnName: string) => Promise<void>;
|
|
34
|
-
export declare const generatePlaceholders: (n: number) => string;
|
|
35
|
-
export declare const generate2DPlaceholders: (inner: number, outer: number) => string;
|
|
36
|
-
export declare const extractKeyValuesPairs: (array: string[][], keyIndex: number, valuesIndices: number[]) => string[][];
|
|
37
|
-
export {};
|
|
1
|
+
import { Knex } from "knex";
|
|
2
|
+
interface DbConfig {
|
|
3
|
+
dbType: SupportedDbType;
|
|
4
|
+
pgConnectionString?: string;
|
|
5
|
+
mysqlConnectionString?: string;
|
|
6
|
+
initFilePath: string;
|
|
7
|
+
filePath?: string;
|
|
8
|
+
verbose: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare enum SupportedDbType {
|
|
11
|
+
sqlite = "sqlite",
|
|
12
|
+
postgres = "postgres",
|
|
13
|
+
mysql = "mysql"
|
|
14
|
+
}
|
|
15
|
+
export declare const getKnexDb: (config?: Partial<DbConfig>) => Knex;
|
|
16
|
+
export declare const isPostgres: (knex: Knex) => boolean;
|
|
17
|
+
export declare const isSqlite: (knex: Knex) => boolean;
|
|
18
|
+
export declare const isMysql: (knex: Knex) => boolean;
|
|
19
|
+
export declare const initDb: (config?: Partial<DbConfig>) => Promise<Knex>;
|
|
20
|
+
export declare const clearDb: (config?: Partial<DbConfig>) => Promise<Knex>;
|
|
21
|
+
export declare const disconnectKnex: () => Promise<void>;
|
|
22
|
+
export declare const nonEmptyOrNull: (value: string) => string | null;
|
|
23
|
+
export declare const rawQuery: (query: string, ...bindings: readonly Knex.RawBinding[]) => Promise<any[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Efficiently insert multiple rows. If preventDuplicatesByFirstColumn is true, the first
|
|
26
|
+
* column should be unique (PK or UNIQUE).
|
|
27
|
+
*/
|
|
28
|
+
export declare const insertMultipleRows: (rows: string[][], table: string, columnNames: string[], preventDuplicates?: boolean) => Promise<number>;
|
|
29
|
+
/**
|
|
30
|
+
* Insert a single row and return the autoincremented ID.
|
|
31
|
+
*/
|
|
32
|
+
export declare const insertAutoincrementRow: (row: any[], table: string, columnNames: string[]) => Promise<number | null>;
|
|
33
|
+
export declare const deleteMultipleRowsKnex: (keys: string[], table: string, keyColumnName: string) => Promise<void>;
|
|
34
|
+
export declare const generatePlaceholders: (n: number) => string;
|
|
35
|
+
export declare const generate2DPlaceholders: (inner: number, outer: number) => string;
|
|
36
|
+
export declare const extractKeyValuesPairs: (array: string[][], keyIndex: number, valuesIndices: number[]) => string[][];
|
|
37
|
+
export {};
|