NestJS XTLS SDK Module
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() {
}
}
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 configurationforRootAsync(options: AsyncModuleOptions)
: Static method for asynchronous module configuration
Decorators
@InjectXtls()
: Decorator for injecting the XTLS SDK instance
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For support, please open an issue in the GitHub repository.