nestjs-geoip2
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

NestJS GeoIP2

NPM Version Package License

Table of Contents

Description

Integrates MaxMind GeoIP2 with Nest

Installation

npm install nestjs-geoip2 @maxmind/geoip2-node

You can also use the interactive CLI

npx nestjs-modules

Examples

npx geoip2-cli --download --licenseKey=MAXMIND_LICENSE_KEY

GeoIP2Module.forRoot(options, connection?)

import { Module } from '@nestjs/common';
import { GeoIP2Module } from 'nestjs-geoip2';
import { AppController } from './app.controller';
import { join } from 'path';
 
@Module({
  imports: [
    GeoIP2Module.forRoot({
      config: {
        file: join(process.cwd(), 'geoip2-cli', 'GeoLite2-City.mmdb'),
      },
    }),
  ],
  controllers: [AppController],
})
export class AppModule {}

GeoIP2Module.forRootAsync(options, connection?)

import { Module } from '@nestjs/common';
import { GeoIP2Module } from 'nestjs-geoip2';
import { AppController } from './app.controller';
import { join } from 'path';
 
@Module({
  imports: [
    GeoIP2Module.forRootAsync({
      useFactory: () => ({
        config: {
          file: join(process.cwd(), 'geoip2-cli', 'GeoLite2-City.mmdb'),
        },
      }),
    }),
  ],
  controllers: [AppController],
})
export class AppModule {}

InjectGeoIP2(connection?)

import { Controller, Get, } from '@nestjs/common';
import { InjectGeoIP2, GeoIP2 } from 'nestjs-geoip2';
 
@Controller()
export class AppController {
  constructor(
    @InjectGeoIP2() private readonly geoIP2: GeoIP2,
  ) {}
 
  @Get()
  async getHello() {
    return await this.geoIP2.city('8.8.8.8');
  }
}

License

MIT

Package Sidebar

Install

npm i nestjs-geoip2

Weekly Downloads

63

Version

1.0.2

License

MIT

Unpacked Size

13.6 kB

Total Files

18

Last publish

Collaborators

  • svtslv