1.0.2 • Published 1 year ago

@opengram/arguments v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

The arguments plugin lets you parse & validate arguments of commands / inline query with ease.

CI codecov npm downloads javascript style guide Codacy Badge License: MIT

Features

  • Joi validation support
  • Arguments remapping
  • Inline query / Message / Channel posts support

Docs

You can find documentation here

Installation

NPM

npm i @opengram/arguments

Yarn

yarn add @opengram/arguments

PNPM

pnpm add @opengram/arguments

Quick start

const { Opengram } = require('opengram')
const bot = new Opengram(process.env.BOT_TOKEN)

const Joi = require('joi')
const arguments = require('@opengram/arguments')
  
// Create middleware instance
const sumArgs = arguments({
  mapping: ['first', 'second'], // First argument to "first" property, second to "second" property
  errorHandler: (err, ctx) => ctx.reply(`Invalid arguments: ${err.message}`), // Error handler for validation errors
  // Validation schema
  schema: Joi.object({
    first: Joi
      .number()
      .integer()
      .required(),
    second: Joi
      .number()
      .integer()
      .required()
  })
})

bot.command('sum', sumArgs, ctx => {
  // Destructuring assignment from safe, validated object, with converted to number args
  const { first, second } = ctx.state.args.result
  // Send sum result
  return ctx.replyWithHTML(`<b>Result:</b> ${first + second}`)
})

bot.launch()