UNPKG

client-request-inspector

Version:

A Node.js library designed for efficient server-side extraction of client request data, providing easy access to client information such as IP address, browser type and location

1 lines 1.18 kB
"use strict";var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P((function(resolve){resolve(value)}))}return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:true});exports.IpLocationService=void 0;const geoip2_node_1=require("@maxmind/geoip2-node");const fs_1=require("fs");class IpLocationService{static getLocation(ip){return __awaiter(this,void 0,void 0,(function*(){try{const dbBuffer=(0,fs_1.readFileSync)(this.dbPath);const[reader]=yield Promise.all([geoip2_node_1.Reader.openBuffer(dbBuffer)]);return reader.city(ip)}catch(error){console.error("Error in IpLocationService:",error);return null}}))}}exports.IpLocationService=IpLocationService;IpLocationService.dbPath=`${__dirname}/../../data/GeoLite2-City.mmdb`;