@remnawave/xtls-sdk-nestjs
Version:
 
119 lines (84 loc) • 3.29 kB
Markdown
# NestJS XTLS SDK Module










A NestJS module wrapper for the XTLS SDK, providing seamless integration of XTLS functionality into your NestJS applications.
## Installation
```bash
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
```typescript
import { XtlsSdkNestjsModule } from '@remnawave/xtls-sdk-nestjs';
@Module({
imports: [
XtlsSdkNestjsModule.forRoot({
ip: 'your-ip-address',
port: 'your-port',
}),
],
})
export class AppModule {}
```
### Asynchronous Configuration
```typescript
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:
```typescript
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.