| 
									
										
										
										
											2024-03-30 13:07:26 +01:00
										 |  |  | import { writeFileSync } from "fs" | 
					
						
							|  |  |  | import Script from "./Script" | 
					
						
							|  |  |  | import sunny from "../public/assets/sunny.json" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class GenerateSunnyUnlabeled extends Script { | 
					
						
							|  |  |  |     constructor() { | 
					
						
							|  |  |  |         super("Generates 'sunny-unlabeled.json' based on sunny.json") | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-21 01:47:31 +02:00
										 |  |  |     generateUnlabeled() { | 
					
						
							| 
									
										
										
										
											2024-04-13 02:40:21 +02:00
										 |  |  |         const unlabeled = { "#": "AUTOMATICALLY GENERATED! Do not edit.", ...sunny } | 
					
						
							|  |  |  |         unlabeled.name = unlabeled.name + "-unlabeled" | 
					
						
							|  |  |  |         unlabeled.layers = sunny.layers.filter( | 
					
						
							| 
									
										
										
										
											2024-09-02 12:48:15 +02:00
										 |  |  |             (l) => l.type !== "symbol" || !l.layout["text-field"] | 
					
						
							| 
									
										
										
										
											2024-04-13 02:40:21 +02:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2024-03-30 13:07:26 +01:00
										 |  |  |         writeFileSync("public/assets/sunny-unlabeled.json", JSON.stringify(unlabeled, null, "   ")) | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-08-21 01:47:31 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-16 14:33:04 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Generates a variation hosted by api.protomaps | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     generateHosted() { | 
					
						
							|  |  |  |         const tilesource = "https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=2af8b969a9e8b692" | 
					
						
							|  |  |  |         const hosted = { "#": "AUTOMATICALLY GENERATED! Do not edit.", ...sunny } | 
					
						
							|  |  |  |         delete hosted.sources.protomaps.url | 
					
						
							|  |  |  |         hosted.sources.protomaps["tiles"] = [tilesource] | 
					
						
							|  |  |  |         writeFileSync("public/assets/sunny-hosted.json", JSON.stringify(hosted, null, "   ")) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-21 01:47:31 +02:00
										 |  |  |     async main(args: string[]): Promise<void> { | 
					
						
							|  |  |  |         this.generateUnlabeled() | 
					
						
							| 
									
										
										
										
											2025-06-16 14:33:04 +02:00
										 |  |  |         this.generateHosted() | 
					
						
							| 
									
										
										
										
											2024-08-21 01:47:31 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-03-30 13:07:26 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | new GenerateSunnyUnlabeled().run() |