UNPKG

class-validator-extended

Version:
26 lines (25 loc) 835 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isNetworkPort = isNetworkPort; const integerRegex = /^0|([1-9]\d*)$/; /** * @category Predicates * @param value The value to validate. * @param options Additional options (see {@link IsNetworkPort}). */ function isNetworkPort(value, options) { if (typeof value !== 'number' || !Number.isFinite(value) || value < 0 || !integerRegex.test(String(value))) { return false; } const { allow_system_allocated, allow_system_ports } = { allow_system_allocated: true, allow_system_ports: true, ...options, }; return (value <= 65535 && value >= (allow_system_allocated ? 0 : 1) && ((allow_system_allocated && value === 0) || allow_system_ports || value >= 1024)); }