1.0.6 β€’ Published 4 months ago

@nailyjs.nest.modules/tencentcloud v1.0.6

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
4 months ago

Tencent Cloud Node SDK for Nest.js ☁️

This SDK is a nest.js version of the official Node.js SDK, which provides a simpler way to use in nest.

Installation πŸ“¦

npm、yarn、pnpm are all supported. Recommend to use pnpm.

$ pnpm i --save @nailyjs.nest.modules/tencentcloud tencentcloud-sdk-nodejs

Usage πŸ‘‹

Import Module 🧩

At first, you need to import the module and configure it.

General Usage πŸš€

import { Module } from '@nestjs/common';
import { sms } from 'tencentcloud-sdk-nodejs';
import { TencentCloudModule } from '@nailyjs.nest.modules/tencentcloud';

@Module({
  imports: [
    TencentCloudModule.register({
      // Tencent Cloud Sdk have many clients, you can configure them here.
      clients: [
        {
          // The client class. You can find which client you need in the official documentation: https://github.com/TencentCloud/tencentcloud-sdk-nodejs?tab=readme-ov-file#%E7%AE%80%E4%BB%8B
          client: sms.v20210111.Client,
          // The client configuration object. You can find it in the official documentation: https://github.com/TencentCloud/tencentcloud-sdk-nodejs?tab=readme-ov-file#%E7%A4%BA%E4%BE%8B
          options: {
            credential: {
              secretId: '',
              secretKey: '',
            },
          },
        },
      ],
      // If you want to use the client across all your modules, you can set global to true.
      global: true,
    }),
  ],
})
export class AppModule {}

Async Usage πŸš€

You can also use async configuration.

import { Module } from '@nestjs/common';
import { sms } from 'tencentcloud-sdk-nodejs';
import { TencentCloudModule } from '@nailyjs.nest.modules/tencentcloud';

@Module({
  imports: [
    TencentCloudModule.registerAsync({
      // If you want to use the client across all your modules, you can set global to true.
      global: true,
      clients: [
        {
          // You can inject the configuration object here, such as ConfigService.
          inject: [ConfigService],
          useFactory: async (configService: ConfigService) => {
            // Return the tencent cloud configuration object, πŸ‘†same as General Usage.
            return {
              credential: {
                secretId: 'Hello',
                secretKey: 'world',
              },
            };
          },
        },
      ],
    }),
  ],
})
export class AppModule {}

How to Use Client πŸ“

import { ClientRepository } from '@nailyjs.nest.modules/tencentcloud';
import { Injectable, Inject } from '@nestjs/common';
import { sms } from 'tencentcloud-sdk-nodejs';

@Injectable()
export class AppController {
  constructor(
    // You can inject the client here. For example, you want to use the sms client, you can do like this.
    @Inject(sms.v20210111.Client)
    private readonly client: ClientRepository<typeof sms.v20210111.Client>;
  ) {}

  public async sendSms() {
    // You can use the sms client like this. It type safe.
    const response = await this.client.SendSms({
      SmsSdkAppId: '',
      TemplateId: '',
      PhoneNumberSet: ['110'],
    });
  }
}

ClientRepository is a generic type, you can use it to get the client type.

Author πŸ‘¨β€πŸ’»

Zero

Donate β˜•οΈ

If you think this project is helpful to you, you can buy me a cup of coffee QWQ~

wechat alipay

1.0.6

4 months ago

1.0.5

4 months ago

1.0.4

4 months ago

1.0.3

4 months ago

1.0.2

4 months ago

1.0.1

4 months ago