mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			624 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			624 B
		
	
	
	
		
			TypeScript
		
	
	
| import { Express } from 'express'
 | |
| import { Server } from 'http'
 | |
| import { AddressInfo } from 'net'
 | |
| 
 | |
| function randomListen (app: Express) {
 | |
|   return new Promise<Server>(res => {
 | |
|     const server = app.listen(0, () => res(server))
 | |
|   })
 | |
| }
 | |
| 
 | |
| function getPort (server: Server) {
 | |
|   const address = server.address() as AddressInfo
 | |
| 
 | |
|   return address.port
 | |
| }
 | |
| 
 | |
| function terminateServer (server: Server) {
 | |
|   if (!server) return Promise.resolve()
 | |
| 
 | |
|   return new Promise<void>((res, rej) => {
 | |
|     server.close(err => {
 | |
|       if (err) return rej(err)
 | |
| 
 | |
|       return res()
 | |
|     })
 | |
|   })
 | |
| }
 | |
| 
 | |
| export {
 | |
|   randomListen,
 | |
|   getPort,
 | |
|   terminateServer
 | |
| }
 |