Skip to content

remnawave/xtls-sdk-nestJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2ccdd92 Β· Feb 23, 2025

History

20 Commits
Jan 9, 2025
Dec 23, 2024
Nov 15, 2024
Nov 15, 2024
Dec 23, 2024
Jan 9, 2025
Jan 9, 2025
Nov 15, 2024
Feb 23, 2025
Feb 23, 2025
Nov 15, 2024

Repository files navigation

NestJS XTLS SDK Module

GitHub top language GitHub Repo stars

npm version GitHub Tag

Build Status Downloads License NPM Last Update

Known Vulnerabilities Coverage Status

A NestJS module wrapper for the XTLS SDK, providing seamless integration of XTLS functionality into your NestJS applications.

Installation

npm install @remnawave/xtls-sdk-nestjs

Features

  • πŸš€ Easy integration with NestJS applications
  • ⚑ Supports both synchronous and asynchronous configuration
  • πŸ”„ Automatic cleanup on application shutdown
  • 🌐 Global module availability
  • 🎯 Custom decorator for easy injection

Quick Start

Synchronous Configuration

import { XtlsSdkNestjsModule } from '@remnawave/xtls-sdk-nestjs';

@Module({
  imports: [
    XtlsSdkNestjsModule.forRoot({
      ip: 'your-ip-address',
      port: 'your-port',
    }),
  ],
})
export class AppModule {}

Asynchronous Configuration

import { XtlsSdkNestjsModule } from '@remnawave/xtls-sdk-nestjs';

@Module({
  imports: [
    XtlsSdkNestjsModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: async (configService: ConfigService) => ({
        ip: configService.get('XTLS_IP'),
        port: configService.get('XTLS_PORT'),
      }),
      inject: [ConfigService],
    }),
  ],
})
export class AppModule {}

Usage in Services

Use the @InjectXtls() decorator to inject the XTLS SDK instance into your services:

import { Injectable } from '@nestjs/common';
import { InjectXtls } from '@remnawave/xtls-sdk-nestjs';
import { XtlsApi } from '@remnawave/xtls-sdk';

@Injectable()
export class YourService {
  constructor(@InjectXtls() private readonly xtlsApi: XtlsApi) {}

  async yourMethod() {
    // Use xtlsApi here
  }
}

Configuration Options

Option Type Description
ip string The IP address for the XTLS connection
port string The port number for the XTLS connection

API Reference

XtlsSdkNestjsModule

  • forRoot(options: XtlsModuleOptions): Static method for synchronous module configuration
  • forRootAsync(options: AsyncModuleOptions): Static method for asynchronous module configuration

Decorators

  • @InjectXtls(): Decorator for injecting the XTLS SDK instance

License

AGPL-3.0-only

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For support, please open an issue in the GitHub repository.