diff --git a/scripts/inspectStudioLayers.ts b/scripts/inspectStudioLayers.ts index a42aacaff0..15bf66b753 100644 --- a/scripts/inspectStudioLayers.ts +++ b/scripts/inspectStudioLayers.ts @@ -5,15 +5,16 @@ import { readFileSync, statSync } from "fs" import LayerConfig from "../src/Models/ThemeConfig/LayerConfig" import { PrepareLayer } from "../src/Models/ThemeConfig/Conversion/PrepareLayer" import { TagUtils } from "../src/Logic/Tags/TagUtils" +import TagInfo from "../src/Logic/Web/TagInfo" class CompareLayer { private _knownLayers: Map - + private static readonly tagInfo = new TagInfo() constructor(knownLayers: Map) { this._knownLayers = knownLayers } - public compare(layer: LayerConfigJson, path: string) { + public async compare(layer: LayerConfigJson, path: string) { const candidate = this._knownLayers.get(layer.id) if (!layer.source?.["osmTags"]) { return @@ -27,7 +28,13 @@ class CompareLayer { const info = statSync(path) console.log(`\n[${layer.id}](${path}) Last edited ${info.mtime.toISOString()}\n\n`) const source = TagUtils.Tag(layer.source?.["osmTags"]) - console.log(source.asHumanString(true, false)) + let estimate = undefined + try { + estimate = await CompareLayer.tagInfo.getCountEstimateFor(source) + } catch (e) { + console.log("Error trying to get an estimate", e) + } + console.log(source.asHumanString(true, false) + " (estimated " + estimate + " items)") if (layer.tagRenderings.length === 0) { console.log("MINIMAL") } @@ -46,6 +53,7 @@ class InspectStudioLayers extends Script { async main(args: string[]): Promise { const path = args[0] ?? "/home/pietervdvn/data/mapcomplete-custom-themes" + ScriptUtils.erasableLog = () => {} const files = ScriptUtils.readDirRecSync(path) .filter(p => p.endsWith(".json")) .filter(p => p.indexOf("/themes/") < 0) @@ -69,7 +77,7 @@ class InspectStudioLayers extends Script { console.log("Loaded", unofficial.length, "custom layers and ", officialFiles.size, "official layers") const comp = new CompareLayer(officialFiles) for (const layerConfigJson of unofficial) { - comp.compare(layerConfigJson.layer, layerConfigJson.path) + await comp.compare(layerConfigJson.layer, layerConfigJson.path) } }