Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e815ca04f6 | ||
|
|
73b943fefc | ||
|
|
e182db1740 | ||
|
|
38392ea3ad | ||
|
|
4fbbccb0a2 | ||
|
|
0f2b1f5353 | ||
|
|
aea9de2f1c | ||
|
|
a3c4eb1071 | ||
|
|
ee2ed4fdaf | ||
|
|
49b84382e4 | ||
|
|
bcb9be88df |
2
.github/workflows/deploy.yml
vendored
2
.github/workflows/deploy.yml
vendored
@ -25,7 +25,7 @@ jobs:
|
||||
echo "EMAIL_GRAPHQL=fake@example.com" >> .env
|
||||
echo "NEXTAUTH_SECRET=fakesecret" >> .env
|
||||
echo "BOT_URL=http://localhost:3000" >> .env
|
||||
echo "REDIS_PASSWORD=fake" > .env
|
||||
echo "REDIS_PASSWORD=fake" >> .env
|
||||
|
||||
- name: Set image tags
|
||||
id: vars
|
||||
|
||||
@ -11,7 +11,7 @@ ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN apk add --no-cache libc6-compat && \
|
||||
corepack enable && \
|
||||
pnpm install turbo dotenv-cli --global
|
||||
pnpm install turbo@2.3.2 dotenv-cli --global
|
||||
|
||||
FROM base AS pruner
|
||||
ARG PROJECT
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import { type logger } from '@/utils/logger';
|
||||
import { type AutoChatActionFlavor } from '@grammyjs/auto-chat-action';
|
||||
import { type CommandsFlavor } from '@grammyjs/commands';
|
||||
import { type ConversationFlavor } from '@grammyjs/conversations';
|
||||
@ -8,13 +7,7 @@ import { type Context as DefaultContext, type SessionFlavor } from 'grammy';
|
||||
|
||||
export type Context = ConversationFlavor<
|
||||
HydrateFlavor<
|
||||
AutoChatActionFlavor &
|
||||
CommandsFlavor &
|
||||
DefaultContext &
|
||||
I18nFlavor &
|
||||
SessionFlavor<SessionData> & {
|
||||
logger: typeof logger;
|
||||
}
|
||||
AutoChatActionFlavor & CommandsFlavor & DefaultContext & I18nFlavor & SessionFlavor<SessionData>
|
||||
>
|
||||
>;
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { type Context } from '../context';
|
||||
import { getUpdateInfo } from '../helpers/logging';
|
||||
import { KEYBOARD_REMOVE } from '@/config/keyboards';
|
||||
import { logger } from '@/utils/logger';
|
||||
import { ERRORS } from '@repo/graphql/constants/errors';
|
||||
import { type ErrorHandler } from 'grammy';
|
||||
|
||||
@ -11,7 +12,7 @@ export const errorHandler: ErrorHandler<Context> = async (error) => {
|
||||
|
||||
await ctx.reply(ctx.t(text), { ...KEYBOARD_REMOVE, parse_mode: 'HTML' });
|
||||
|
||||
ctx.logger.error({
|
||||
logger.error({
|
||||
err: error.error,
|
||||
update: getUpdateInfo(ctx),
|
||||
});
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
import { type Context } from '../context';
|
||||
import { logger } from '@/utils/logger';
|
||||
import { type Update } from '@grammyjs/types';
|
||||
import { type Middleware } from 'grammy';
|
||||
|
||||
@ -11,7 +12,7 @@ export function getUpdateInfo(context: Context): Omit<Update, 'update_id'> {
|
||||
|
||||
export function logHandle(id: string): Middleware<Context> {
|
||||
return (context, next) => {
|
||||
context.logger.info({
|
||||
logger.info({
|
||||
msg: `Handle "${id}"`,
|
||||
...(id.startsWith('unhandled') ? { update: getUpdateInfo(context) } : {}),
|
||||
});
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
import { type Context } from '@/bot/context';
|
||||
import { getUpdateInfo } from '@/bot/helpers/logging';
|
||||
import { logger } from '@/utils/logger';
|
||||
import { type Middleware } from 'grammy';
|
||||
import { performance } from 'node:perf_hooks';
|
||||
|
||||
export function updateLogger(): Middleware<Context> {
|
||||
return async (ctx, next) => {
|
||||
ctx.api.config.use((previous, method, payload, signal) => {
|
||||
ctx.logger.debug({
|
||||
logger.debug({
|
||||
method,
|
||||
msg: 'Bot API call',
|
||||
payload,
|
||||
@ -15,7 +16,7 @@ export function updateLogger(): Middleware<Context> {
|
||||
return previous(method, payload, signal);
|
||||
});
|
||||
|
||||
ctx.logger.debug({
|
||||
logger.debug({
|
||||
msg: 'Update received',
|
||||
update: getUpdateInfo(ctx),
|
||||
});
|
||||
@ -25,7 +26,7 @@ export function updateLogger(): Middleware<Context> {
|
||||
return next();
|
||||
} finally {
|
||||
const endTime = performance.now();
|
||||
ctx.logger.debug({
|
||||
logger.debug({
|
||||
elapsed: endTime - startTime,
|
||||
msg: 'Update processed',
|
||||
});
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/* eslint-disable turbo/no-undeclared-env-vars */
|
||||
import pino from 'pino';
|
||||
|
||||
export const logger = pino({
|
||||
const logger = pino({
|
||||
transport: {
|
||||
level: process.env.NODE_ENV === 'production' ? 'info' : 'debug',
|
||||
options: {
|
||||
@ -11,3 +11,9 @@ export const logger = pino({
|
||||
target: 'pino-pretty',
|
||||
},
|
||||
});
|
||||
|
||||
logger.info = logger.info.bind(logger);
|
||||
logger.debug = logger.debug.bind(logger);
|
||||
logger.error = logger.error.bind(logger);
|
||||
|
||||
export { logger };
|
||||
|
||||
@ -11,7 +11,7 @@ ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN apk add --no-cache libc6-compat openssl && \
|
||||
corepack enable && \
|
||||
pnpm install turbo dotenv-cli --global
|
||||
pnpm install turbo@2.3.2 dotenv-cli --global
|
||||
|
||||
FROM base AS pruner
|
||||
ARG PROJECT
|
||||
|
||||
@ -34,3 +34,6 @@ services:
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
|
||||
volumes:
|
||||
redis-data:
|
||||
|
||||
@ -5,7 +5,7 @@ services:
|
||||
- .env
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
|
||||
test: ['CMD', 'curl', '-f', 'http://localhost:3000/']
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
@ -45,6 +45,11 @@ services:
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
networks:
|
||||
- app
|
||||
|
||||
volumes:
|
||||
redis-data:
|
||||
|
||||
networks:
|
||||
app:
|
||||
|
||||
18
pnpm-lock.yaml
generated
18
pnpm-lock.yaml
generated
@ -23,7 +23,7 @@ catalogs:
|
||||
version: 2.2.2
|
||||
autoprefixer:
|
||||
specifier: ^10.4.20
|
||||
version: 10.4.21
|
||||
version: 10.4.20
|
||||
dayjs:
|
||||
specifier: ^1.11.3
|
||||
version: 1.11.13
|
||||
@ -35,7 +35,7 @@ catalogs:
|
||||
version: 9.21.0
|
||||
graphql:
|
||||
specifier: ^16.9.0
|
||||
version: 16.11.0
|
||||
version: 16.9.0
|
||||
husky:
|
||||
specifier: ^9.1.7
|
||||
version: 9.1.7
|
||||
@ -44,13 +44,13 @@ catalogs:
|
||||
version: 9.0.2
|
||||
lint-staged:
|
||||
specifier: ^15.2.10
|
||||
version: 15.5.2
|
||||
version: 15.2.10
|
||||
lucide-react:
|
||||
specifier: ^0.462.0
|
||||
version: 0.462.0
|
||||
postcss:
|
||||
specifier: ^8.4.49
|
||||
version: 8.5.6
|
||||
version: 8.4.49
|
||||
postcss-load-config:
|
||||
specifier: ^6.0.1
|
||||
version: 6.0.1
|
||||
@ -59,7 +59,7 @@ catalogs:
|
||||
version: 3.6.2
|
||||
radashi:
|
||||
specifier: ^12.5.1
|
||||
version: 12.6.0
|
||||
version: 12.5.1
|
||||
react:
|
||||
specifier: ^19.1.1
|
||||
version: 19.1.1
|
||||
@ -68,19 +68,19 @@ catalogs:
|
||||
version: 19.1.1
|
||||
tailwindcss:
|
||||
specifier: ^3.4.15
|
||||
version: 3.4.17
|
||||
version: 3.4.15
|
||||
typescript:
|
||||
specifier: ^5.7
|
||||
version: 5.8.3
|
||||
version: 5.7.2
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^5.1.4
|
||||
version: 5.1.4
|
||||
vitest:
|
||||
specifier: ^2.1.8
|
||||
version: 2.1.9
|
||||
version: 2.1.8
|
||||
zod:
|
||||
specifier: ^3.24.1
|
||||
version: 3.25.71
|
||||
version: 3.24.1
|
||||
|
||||
importers:
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user