UNPKG

text-to-map

Version:

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ě zpra

32 lines 5.84 kB
import { parse } from "csv-parse"; import iconv from "iconv-lite"; import { pipeline } from "stream/promises"; import { createReadStream } from "fs"; import { dirname, join } from "path"; import { fileURLToPath } from "url"; import { insertCityPositions } from "../db/cities"; import { SyncPart } from "../db/types"; import { prepareOptions, } from "../utils/helpers"; import { runSyncPart } from "./common"; const importDataToDb = async (options) => { console.log("Starting to parse CSV file..."); const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); // source: https://github.com/33bcdd/souradnice-mest/blob/master/souradnice.csv const csvStream = createReadStream(join(__dirname, "..", "souradnice.csv")); const rows = []; const parseStream = parse({ delimiter: ",", fromLine: 2 }).on("data", (data) => { rows.push(data); }); await pipeline(csvStream, iconv.decodeStream("utf-8"), parseStream); console.log("Parsing completed. Starting to import data to DB..."); await insertCityPositions(rows); console.log(`Import completed. Total imported rows: ${rows.length}`); }; export const importCities = async (options = {}) => { await runSyncPart(SyncPart.Regions, [], async () => { const completeOptions = prepareOptions(options); await importDataToDb(completeOptions); }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2l0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29wZW4tZGF0YS1zeW5jL2NpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUdMLGNBQWMsR0FDZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLE9BQTRCLEVBQUUsRUFBRTtJQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFFN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLCtFQUErRTtJQUMvRSxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFNUUsTUFBTSxJQUFJLEdBQWUsRUFBRSxDQUFDO0lBQzVCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUMzRCxNQUFNLEVBQ04sQ0FBQyxJQUFjLEVBQUUsRUFBRTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBRW5FLE1BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFDL0IsVUFBc0MsRUFBRSxFQUN6QixFQUFFO0lBQ2pCLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2pELE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSBcImNzdi1wYXJzZVwiO1xyXG5pbXBvcnQgaWNvbnYgZnJvbSBcImljb252LWxpdGVcIjtcclxuaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tIFwic3RyZWFtL3Byb21pc2VzXCI7XHJcblxyXG5pbXBvcnQgeyBjcmVhdGVSZWFkU3RyZWFtIH0gZnJvbSBcImZzXCI7XHJcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwicGF0aFwiO1xyXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcInVybFwiO1xyXG5pbXBvcnQgeyBpbnNlcnRDaXR5UG9zaXRpb25zIH0gZnJvbSBcIi4uL2RiL2NpdGllc1wiO1xyXG5pbXBvcnQgeyBTeW5jUGFydCB9IGZyb20gXCIuLi9kYi90eXBlc1wiO1xyXG5pbXBvcnQge1xyXG4gIE9wZW5EYXRhU3luY09wdGlvbnMsXHJcbiAgT3BlbkRhdGFTeW5jT3B0aW9uc1BhcnRpYWwsXHJcbiAgcHJlcGFyZU9wdGlvbnMsXHJcbn0gZnJvbSBcIi4uL3V0aWxzL2hlbHBlcnNcIjtcclxuaW1wb3J0IHsgcnVuU3luY1BhcnQgfSBmcm9tIFwiLi9jb21tb25cIjtcclxuXHJcbmNvbnN0IGltcG9ydERhdGFUb0RiID0gYXN5bmMgKG9wdGlvbnM6IE9wZW5EYXRhU3luY09wdGlvbnMpID0+IHtcclxuICBjb25zb2xlLmxvZyhcIlN0YXJ0aW5nIHRvIHBhcnNlIENTViBmaWxlLi4uXCIpO1xyXG5cclxuICBjb25zdCBfX2ZpbGVuYW1lID0gZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpO1xyXG4gIGNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSk7XHJcblxyXG4gIC8vIHNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tLzMzYmNkZC9zb3VyYWRuaWNlLW1lc3QvYmxvYi9tYXN0ZXIvc291cmFkbmljZS5jc3ZcclxuICBjb25zdCBjc3ZTdHJlYW0gPSBjcmVhdGVSZWFkU3RyZWFtKGpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwic291cmFkbmljZS5jc3ZcIikpO1xyXG5cclxuICBjb25zdCByb3dzOiBzdHJpbmdbXVtdID0gW107XHJcbiAgY29uc3QgcGFyc2VTdHJlYW0gPSBwYXJzZSh7IGRlbGltaXRlcjogXCIsXCIsIGZyb21MaW5lOiAyIH0pLm9uKFxyXG4gICAgXCJkYXRhXCIsXHJcbiAgICAoZGF0YTogc3RyaW5nW10pID0+IHtcclxuICAgICAgcm93cy5wdXNoKGRhdGEpO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIGF3YWl0IHBpcGVsaW5lKGNzdlN0cmVhbSwgaWNvbnYuZGVjb2RlU3RyZWFtKFwidXRmLThcIiksIHBhcnNlU3RyZWFtKTtcclxuXHJcbiAgY29uc29sZS5sb2coXCJQYXJzaW5nIGNvbXBsZXRlZC4gU3RhcnRpbmcgdG8gaW1wb3J0IGRhdGEgdG8gREIuLi5cIik7XHJcblxyXG4gIGF3YWl0IGluc2VydENpdHlQb3NpdGlvbnMocm93cyk7XHJcblxyXG4gIGNvbnNvbGUubG9nKGBJbXBvcnQgY29tcGxldGVkLiBUb3RhbCBpbXBvcnRlZCByb3dzOiAke3Jvd3MubGVuZ3RofWApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGltcG9ydENpdGllcyA9IGFzeW5jIChcclxuICBvcHRpb25zOiBPcGVuRGF0YVN5bmNPcHRpb25zUGFydGlhbCA9IHt9XHJcbik6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gIGF3YWl0IHJ1blN5bmNQYXJ0KFN5bmNQYXJ0LlJlZ2lvbnMsIFtdLCBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBjb21wbGV0ZU9wdGlvbnMgPSBwcmVwYXJlT3B0aW9ucyhvcHRpb25zKTtcclxuICAgIGF3YWl0IGltcG9ydERhdGFUb0RiKGNvbXBsZXRlT3B0aW9ucyk7XHJcbiAgfSk7XHJcbn07XHJcbiJdfQ==