Files
pockethost/src/services/PortService.ts
2023-11-03 06:20:47 -07:00

14 lines
437 B
TypeScript

import { INITIAL_PORT_POOL_SIZE } from '$constants'
import { mkSingleton } from '$shared'
import { mergeConfig, PromiseAllocator } from '$util'
import getPort from 'get-port'
export type Config = { maxPorts: number }
export const PortService = mkSingleton((config: Partial<Config> = {}) => {
const { maxPorts } = mergeConfig(
{ maxPorts: INITIAL_PORT_POOL_SIZE() },
config,
)
return PromiseAllocator(maxPorts, getPort)
})