mirror of
https://github.com/muerwre/vk-tg-bot.git
synced 2025-05-10 06:06:41 +07:00
added http and telegram api services
This commit is contained in:
parent
5453e884c6
commit
9433cc327a
18 changed files with 687 additions and 70 deletions
5
src/service/logger/config.ts
Normal file
5
src/service/logger/config.ts
Normal file
|
@ -0,0 +1,5 @@
|
|||
import { object, string } from "yup";
|
||||
|
||||
export const loggerConfigSchema = object().shape({
|
||||
level: string().optional().oneOf(["debug", "info", "warn", "error"]),
|
||||
});
|
19
src/service/logger/http.ts
Normal file
19
src/service/logger/http.ts
Normal file
|
@ -0,0 +1,19 @@
|
|||
import morgan, { StreamOptions } from "morgan";
|
||||
import logger from "./index";
|
||||
|
||||
const stream: StreamOptions = {
|
||||
write: (message) => logger.http(message),
|
||||
};
|
||||
|
||||
const skip = () => {
|
||||
const env = process.env.NODE_ENV || "development";
|
||||
return env !== "development";
|
||||
};
|
||||
|
||||
// Build the morgan middleware
|
||||
const loggerHttpMiddleware = morgan(
|
||||
":method :url :status :res[content-length] - :response-time ms",
|
||||
{ stream, skip }
|
||||
);
|
||||
|
||||
export default loggerHttpMiddleware;
|
|
@ -1,7 +1,13 @@
|
|||
import { createLogger, format, transports } from 'winston';
|
||||
import { createLogger, format, transports } from "winston";
|
||||
import prepareConfig from "../../config";
|
||||
|
||||
const config = prepareConfig();
|
||||
|
||||
const logger = createLogger({
|
||||
transports: new transports.Console({ format: format.simple() })
|
||||
})
|
||||
transports: new transports.Console({
|
||||
format: format.simple(),
|
||||
level: config.logger.level || "info",
|
||||
}),
|
||||
});
|
||||
|
||||
export default logger
|
||||
export default logger;
|
||||
|
|
11
src/service/logger/tg.ts
Normal file
11
src/service/logger/tg.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { MiddlewareFn } from "telegraf";
|
||||
import logger from "./index";
|
||||
|
||||
const loggerTgMiddleware: MiddlewareFn<any> = async (ctx, next) => {
|
||||
logger.debug(
|
||||
`received tg message from @${ctx.message.from.username}: ${ctx.message.text}`
|
||||
);
|
||||
await next().catch(logger.warn);
|
||||
};
|
||||
|
||||
export default loggerTgMiddleware;
|
3
src/service/logger/types.ts
Normal file
3
src/service/logger/types.ts
Normal file
|
@ -0,0 +1,3 @@
|
|||
export interface LoggerConfig {
|
||||
level?: "debug" | "info" | "warn" | "error";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue