mirror of
https://github.com/pockethost/pockethost.git
synced 2026-03-09 18:32:56 +00:00
14 lines
437 B
TypeScript
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)
|
|
})
|