"use strict"; let native = null; try { native = require("../../native/tcp_keepalive/build/Release/tcp_keepalive_native"); } catch (err) { native = null; } function parseKeepAliveProbes(value) { if (value === undefined || value === null || value === "") { return 0; } value = Number(value); if (!Number.isFinite(value) || value < 0) { return 0; } return Math.floor(value); } function setKeepAliveProbes(socket, probes) { if (!native || probes <= 0 || !socket || !socket._handle) { return false; } const fd = socket._handle.fd; if (!Number.isInteger(fd) || fd < 0) { return false; } return native.setKeepAliveProbes(fd, probes) === true; } module.exports = { available: !!native, parseKeepAliveProbes, setKeepAliveProbes };