@opengram/arguments
v1.0.2
Published
The arguments plugin lets you parse & validate arguments of commands / inline query with ease.
Downloads
7
Maintainers
Readme
The arguments plugin lets you parse & validate arguments of commands / inline query with ease.
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()