@holusion/product-scanner
Version:
MDNS network scanner for holusion products
21 lines (17 loc) • 568 B
JavaScript
;
import {isIP, createConnection} from "net";
import { BrowseError } from "./errors.js";
export default function dial(addr, {port=22, timeout=100}={}){
return new Promise((resolve, reject) =>{
const s = createConnection({port : port, host: addr, family: isIP(addr), timeout});
s.once("connect", ()=>{
s.destroy();
resolve();
});
s.once("timeout",()=>{
s.destroy();
reject(new BrowseError("ETIMEDOUT", "socket connection timed-out") );
});
s.once("error", reject); //socket auto-closes on error
});
}