forked from MapComplete/MapComplete
		
	Velopark: first decent, working version
This commit is contained in:
		
							parent
							
								
									890816d2dd
								
							
						
					
					
						commit
						5b6cd1d2ae
					
				
					 18 changed files with 7054 additions and 21769 deletions
				
			
		|  | @ -8,7 +8,8 @@ export class Server { | |||
|         }, | ||||
|         handle: { | ||||
|             mustMatch: string | RegExp | ||||
|             mimetype: string | ||||
|             mimetype: string, | ||||
|             addHeaders?: Record<string, string>, | ||||
|             handle: (path: string, queryParams: URLSearchParams) => Promise<string> | ||||
|         }[] | ||||
|     ) { | ||||
|  | @ -30,18 +31,18 @@ export class Server { | |||
|         }) | ||||
|         http.createServer(async (req: http.IncomingMessage, res) => { | ||||
|             try { | ||||
|                 console.log( | ||||
|                     req.method + " " + req.url, | ||||
|                     "from:", | ||||
|                     req.headers.origin, | ||||
|                     new Date().toISOString() | ||||
|                 ) | ||||
| 
 | ||||
|                 const url = new URL(`http://127.0.0.1/` + req.url) | ||||
|                 let path = url.pathname | ||||
|                 while (path.startsWith("/")) { | ||||
|                     path = path.substring(1) | ||||
|                 } | ||||
|                 console.log( | ||||
|                     req.method + " " + req.url, | ||||
|                     "from:", | ||||
|                     req.headers.origin, | ||||
|                     new Date().toISOString(), | ||||
|                     path | ||||
|                 ) | ||||
|                 if (options?.ignorePathPrefix) { | ||||
|                     for (const toIgnore of options.ignorePathPrefix) { | ||||
|                         if (path.startsWith(toIgnore)) { | ||||
|  | @ -90,7 +91,11 @@ export class Server { | |||
| 
 | ||||
|                 try { | ||||
|                     const result = await handler.handle(path, url.searchParams) | ||||
|                     res.writeHead(200, { "Content-Type": handler.mimetype }) | ||||
|                     if(typeof result !== "string"){ | ||||
|                         console.error("Internal server error: handling", url,"resulted in a ",typeof result," instead of a string:", result) | ||||
|                     } | ||||
|                     const extraHeaders = handler.addHeaders ?? {} | ||||
|                     res.writeHead(200, { "Content-Type": handler.mimetype , ...extraHeaders}) | ||||
|                     res.write(result) | ||||
|                     res.end() | ||||
|                 } catch (e) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue