forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {lstatSync, readdirSync} from "fs";
 | |
| import * as https from "https";
 | |
| 
 | |
| export default class ScriptUtils {
 | |
|     public static readDirRecSync(path): string[] {
 | |
|         const result = []
 | |
|         for (const entry of readdirSync(path)) {
 | |
|             const fullEntry = path + "/" + entry
 | |
|             const stats = lstatSync(fullEntry)
 | |
|             if (stats.isDirectory()) {
 | |
|                 // Subdirectory
 | |
|                 // @ts-ignore
 | |
|                 result.push(...ScriptUtils.readDirRecSync(fullEntry))
 | |
|             } else {
 | |
|                 result.push(fullEntry)
 | |
|             }
 | |
|         }
 | |
|         return result;
 | |
|     }
 | |
|     
 | |
|     public static DownloadJSON(url, continuation : (parts : string []) => void){
 | |
|         https.get(url, (res) => {
 | |
|             console.log("Got response!")
 | |
|             const parts : string[] = []
 | |
|             res.setEncoding('utf8');
 | |
|             res.on('data', function (chunk) {
 | |
|                 // @ts-ignore
 | |
|                 parts.push(chunk)
 | |
|             });
 | |
| 
 | |
|             res.addListener('end', function () {
 | |
|                 continuation(parts)
 | |
|             });
 | |
|         })
 | |
|     }
 | |
| 
 | |
|     public static sleep(ms) {
 | |
|         return new Promise((resolve) => {
 | |
|             console.debug("Sleeping for", ms)
 | |
|             setTimeout(resolve, ms);
 | |
|            
 | |
|         });
 | |
|     }
 | |
| 
 | |
| 
 | |
| }
 |