npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nestgram

v1.9.0

Published

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

Downloads

107

Readme

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