ip2region-ts
Version:
node-ip2region written in typescript with esm support, latest xdb
36 lines (33 loc) • 1.41 kB
TypeScript
import { Buffer } from 'node:buffer';
declare const getStartEndPtr: unique symbol;
declare const getBuffer: unique symbol;
declare const openFilePromise: unique symbol;
declare const defaultDbFile: string;
declare class Searcher {
_dbFile: string | null;
_vectorIndex: Buffer | null;
_buffer: Buffer | null;
constructor(dbFile: string | null, vectorIndex: Buffer | null, buffer: Buffer | null);
[getStartEndPtr](idx: number, fd: number, ioStatus: {
ioCount: number;
}): Promise<{
sPtr: number;
ePtr: number;
}>;
[getBuffer](offset: number, length: number, fd: number, ioStatus: {
ioCount: number;
}): Promise<Buffer>;
[openFilePromise](fileName: string): Promise<number>;
search(ip: string): Promise<{
region: string | null;
ioCount: number;
took: number;
}>;
}
declare function isValidIp(ip: string): boolean;
declare function newWithFileOnly(dbPath: string): Searcher;
declare function newWithVectorIndex(dbPath: string, vectorIndex: Buffer): Searcher;
declare function newWithBuffer(buffer: Buffer): Searcher;
declare function loadVectorIndexFromFile(dbPath: string): Buffer<ArrayBuffer>;
declare function loadContentFromFile(dbPath: string): Buffer<ArrayBuffer>;
export { defaultDbFile, isValidIp, loadContentFromFile, loadVectorIndexFromFile, newWithBuffer, newWithFileOnly, newWithVectorIndex };