snowflakify
Version:
The most complete Snowflake ID generator in TypeScript
45 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMacAddress = exports.getIPv4Address = exports.isEmpty = exports.isPowerOfTwo = void 0;
const os_1 = require("os");
/**
* @internal
*/
const isPowerOfTwo = (num) => num > 0 && (num & (num - 1)) === 0;
exports.isPowerOfTwo = isPowerOfTwo;
/**
* @internal
*/
const isEmpty = (obj) => [Object, Array].includes((obj || {}).constructor) &&
!Object.entries(obj || {}).length;
exports.isEmpty = isEmpty;
/**
* @internal
*/
const getIPv4Address = (callback) => {
let err = null;
const ip = Object.values((0, os_1.networkInterfaces)())
.flat()
.find((addr) => ['IPv4', 4].includes(addr?.family ?? '') && !addr?.internal)
?.address ?? '';
// (!/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$/.test(ip))
if (!ip)
err = new Error('[IPV4_ADDR_NOT_FOUND]: Could not find a valid IPv4 address.');
return callback(err, ip);
};
exports.getIPv4Address = getIPv4Address;
/**
* @internal
*/
const getMacAddress = (callback) => {
let err = null;
const mac = Object.values((0, os_1.networkInterfaces)())
.flat()
.find((addr) => ['IPv6', 'IPv4', 6, 4].includes(addr?.family ?? '') && !addr?.internal)?.mac ?? '';
// (!/([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})/.test(mac))
if (!mac)
err = new Error('[MAC_ADDR_NOT_FOUND]: Could not find a valid MAC address.');
return callback(err, mac);
};
exports.getMacAddress = getMacAddress;
//# sourceMappingURL=Util.js.map