UNPKG

snowflakify

Version:

The most complete Snowflake ID generator in TypeScript

56 lines (55 loc) 1.54 kB
'use strict'; 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