@localzet/xtls-sdk-nestjs
Version:
NestJS SDK for XRAY/AURA Core
99 lines (72 loc) • 2.87 kB
Markdown
<h1 align="center"><a href="#"><img src="https://static.zorin.space/assets/media/logos/ZorinProjectsSP.svg" alt="Image"></a></h1>
<h3 align="center">NestJS SDK for XRAY/AURA Core</h3>










## Installation
```bash
npm install @localzet/xtls-sdk-nestjs
```
## Quick Start
### Synchronous Configuration
```typescript
import { XtlsSdkNestjsModule } from '@localzet/xtls-sdk-nestjs';
@Module({
imports: [
XtlsSdkNestjsModule.forRoot({
ip: 'your-ip-address',
port: 'your-port',
}),
],
})
export class AppModule {}
```
### Asynchronous Configuration
```typescript
import { XtlsSdkNestjsModule } from '@localzet/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 '@localzet/xtls-sdk-nestjs';
import { XtlsApi } from '@localzet/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