@vvlad1973/max-bot-client
v0.1.0
Published
Max Bot API client library with OpenAPI code generation
Maintainers
Readme
@vvlad1973/max-bot-client
TypeScript client library for the Max Bot API. Generated from the official OpenAPI specification with full type safety.
Requirements
- Node.js >= 18.0.0
- npm >= 9.0.0
Installation
npm install @vvlad1973/max-bot-clientQuick Start
import { MaxBotClient } from '@vvlad1973/max-bot-client';
const client = new MaxBotClient({
token: process.env.MAX_BOT_TOKEN!,
});
const me = await client.getMyInfo({});
console.log(me);Configuration
MaxBotClientOptions
| Option | Type | Default | Description |
|---------------------|---------------------|----------------------------|------------------------------------------|
| token | string | required | Bot access token from Max Master Bot |
| baseUrl | string | https://botapi.max.ru | Override the Max Bot API base URL |
| httpClientOptions | HttpClientOptions | {} | Fine-grained HTTP client configuration |
| logger | ILogger | undefined | Logger instance |
HttpClientOptions
| Option | Type | Default | Description |
|----------------------|-----------|---------|-----------------------------------------|
| timeout | number | 30000 | Request timeout in milliseconds |
| retries | number | 3 | Number of retry attempts |
| retryDelay | number | 1000 | Base delay between retries (ms) |
| exponentialBackoff | boolean | true | Use exponential backoff for retries |
| retryableCodes | string[]| [] | Retry only on these error codes |
| retryableNames | string[]| [] | Retry only on these error names |
Example with full options
import { MaxBotClient } from '@vvlad1973/max-bot-client';
const client = new MaxBotClient({
token: process.env.MAX_BOT_TOKEN!,
baseUrl: 'https://botapi.max.ru',
httpClientOptions: {
timeout: 15_000,
retries: 5,
retryDelay: 500,
exponentialBackoff: true,
},
});Error Handling
All errors extend MaxError. Use specific subclasses for targeted handling:
import {
MaxBotClient,
MaxAuthError,
MaxApiError,
MaxNetworkError,
} from '@vvlad1973/max-bot-client';
try {
const me = await client.getMyInfo({});
} catch (error) {
if (error instanceof MaxAuthError) {
// HTTP 401 — invalid or expired token
} else if (error instanceof MaxApiError) {
// HTTP 4xx / 5xx — API-level error
console.log(error.code, error.statusCode);
} else if (error instanceof MaxNetworkError) {
// Network failure after all retries
}
}Exports
The package re-exports everything needed to work with the Max Bot API:
MaxBotClient— main client classBaseMaxBotApi— generated abstract base with all API methodsMaxHttpClient— HTTP transport (usable standalone)MaxError,MaxApiError,MaxAuthError,MaxNetworkError— error classesAPI_VERSION— Max Bot API version string- All generated request/response types from the OpenAPI spec
API Version
import { API_VERSION } from '@vvlad1973/max-bot-client';
console.log(API_VERSION); // '1.0.0'License
MIT with Commercial Use License. See LICENSE for details.
