36 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
const {platform, type} = require("os");
 | 
						|
 | 
						|
const supportedPlatforms = new Set([
 | 
						|
  "aix",
 | 
						|
  "android",
 | 
						|
  "darwin",
 | 
						|
  "freebsd",
 | 
						|
  "linux",
 | 
						|
  "openbsd",
 | 
						|
  "sunos",
 | 
						|
  "win32"
 | 
						|
]);
 | 
						|
 | 
						|
const plat = platform();
 | 
						|
 | 
						|
if (supportedPlatforms.has(plat)) {
 | 
						|
  let file = plat;
 | 
						|
  if (plat === "aix") {
 | 
						|
    file = type() === "OS400" ? "ibmi" : "sunos"; // AIX `netstat` output is compatible with Solaris
 | 
						|
  }
 | 
						|
 | 
						|
  const m = require(`./${file}.js`);
 | 
						|
  module.exports.v4 = () => m.v4();
 | 
						|
  module.exports.v6 = () => m.v6();
 | 
						|
  module.exports.v4.sync = () => m.v4.sync();
 | 
						|
  module.exports.v6.sync = () => m.v6.sync();
 | 
						|
} else {
 | 
						|
  const err = new Error(`Unsupported Platform: ${plat}`);
 | 
						|
  module.exports.v4 = () => Promise.reject(err);
 | 
						|
  module.exports.v6 = () => Promise.reject(err);
 | 
						|
  module.exports.v4.sync = () => { throw err; };
 | 
						|
  module.exports.v6.sync = () => { throw err; };
 | 
						|
}
 |