Git Product home page Git Product logo

nestgram's Introduction

What is Nestgram?

Nestgram - Framework for working with Telegram Bot API on TypeScript like Nest.js

ℹ️ Nestgram in development. Current version is 1.8.7
If you found a bug, you can ask the author or ask the form

⚠️ Nestgram can't use Nest.js modules. But you can create own modules for Nestgram :)

Links

Guide

You can read the guide on the official Nestgram website, on Medium website or here

Install Nestgram

You need to install nestgram at first. You can do this using yarn or npm

yarn add nestgram
// or
npm i nestgram

Create main file

Our next step is creating the main file, so let's create the main.ts file

import { NestGram } from 'nestgram';
import { AppModule } from './app/app.module';

async function bootstrap(): Promise<void> {
  const bot = new NestGram('TOKEN', AppModule);
  await bot.start();
}

bootstrap();

At first, we imported nestgram and our AppModule, later we will create it. In the next step, we created a bootstrap function, in which we set up and run the project. The NestGram class takes arguments:

Argument Name Required
1 Bot token. You can get it here Required
2 App module Required
3 Config IPollingConfig or IWebhookConfig Optional
4 Run config Optional

Create app.module.ts

Let's create the app.module.ts file. In it, we will describe all available controllers and services

import { Module } from 'nestgram';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  controllers: [AppController],
  services: [AppService],
})
export class AppModule {}

At first, we imported Module class from nestgram, AppController and AppService also, that we will create later. Then we described our controllers and services in @Module decorator

Create app.controller.ts

Let's create the app.controller.ts file. In it, we will describe updates, that we want to handle

import { OnCommand, Controller } from 'nestgram';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService?: AppService) {}

  @OnCommand('start')
  start(): string {
    return 'Hello, world!';
  }
}

We have created a controller where we describe an update when the user writes /start, and we handle it by sending a message Hello, world!

Create app.service.ts

Let's create the app.service.ts file. In it, we will describe methods with working with db, that we will call in controller

import { Service } from 'nestgram';

@Service()
export class AppService {}

We can describe methods in AppService class, and call it in controller by this.appService

Run project

To run the project, open a terminal in the project directory and type:

npm run dev

Or build and run production:

npm run build && npm run prod

What’s next?

Now you know about the syntax and structure of the Nestgram project, but if you want to write your own pro bot, you can check out the Nestgram documentation

Found a bug?

You can ask the author or ask the form

nestgram's People

Contributors

degreet avatar argiegaviola17 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.