UNPKG

node_js_ipqs_db_reader

Version:

A Node JS implementation of the IPQualityScore flat file IP reputation database reader.

63 lines (62 loc) 2.55 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 }); const IPQSRecord_1 = require("./IPQSRecord"); class FileReader { constructor() { this.blacklistFile = false; this.valid = false; this.IPv6 = false; this.treeEnd = 0; this.treeStart = 0; this.recordBytes = 0; this.totalBytes = 0; this.columns = []; } // private completesetup?: (value: boolean | PromiseLike<boolean>) => void; // private failsetup?: (reason?: any) => void; // public ready: Promise<boolean> = new Promise((resolve, reject) => { // this.completesetup = resolve; // this.failsetup = reject; // }); // public setup(error: string | null = null) { // if (error !== null) { // this.fileError = new Error(error); // } // if (this.fileError !== null) { // if (this.failsetup !== undefined) { // this.failsetup(this.fileError); // } // } // if (this.fileHandler !== undefined) { // if (this.completesetup !== undefined) { // this.completesetup(true); // } // } // } Fetch(ip) { return __awaiter(this, void 0, void 0, function* () { let record = new IPQSRecord_1.default(this); if (this.IPv6 === true && ip.includes(".") === true) { throw new Error("Attemtped to look up IPv4 using IPv6 database file. Aborting."); } else if (this.IPv6 === false && ip.includes(":") === true) { throw new Error("Attemtped to look up IPv6 using IPv4 database file. Aborting."); } if (record.file.fileHandler !== null) { yield record.fetch(ip); } return record; }); } } exports.default = FileReader; FileReader.TREE_PREFIX_BYTES = 5;