0.2.2 • Published 10 months ago

@remnawave/xtls-sdk-nestjs v0.2.2

Weekly downloads
-
License
AGPL-3.0-only
Repository
github
Last release
10 months ago

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

OptionTypeDescription
ipstringThe IP address for the XTLS connection
portstringThe 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.

0.2.2

10 months ago

0.2.1

10 months ago

0.2.0

11 months ago

0.1.0

11 months ago

0.0.13-1.dev.1.8.6

12 months ago

0.0.13

12 months ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.6

1 year ago