mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2025-12-16 02:09:53 +03:00
feat!(): add custom execution context
This commit is contained in:
32
lib/execution-context/telegraf-execution-context.ts
Normal file
32
lib/execution-context/telegraf-execution-context.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { ContextType, ExecutionContext } from '@nestjs/common';
|
||||
import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
|
||||
import { TgArgumentsHost } from './tg-arguments-host.interace';
|
||||
|
||||
export type TelegrafContextType = 'telegraf' | ContextType;
|
||||
|
||||
export class TelegrafExecutionContext
|
||||
extends ExecutionContextHost
|
||||
implements TgArgumentsHost {
|
||||
static create(context: ExecutionContext): TelegrafExecutionContext {
|
||||
const type = context.getType();
|
||||
const tgContext = new TelegrafExecutionContext(
|
||||
context.getArgs(),
|
||||
context.getClass(),
|
||||
context.getHandler(),
|
||||
);
|
||||
tgContext.setType(type);
|
||||
return tgContext;
|
||||
}
|
||||
|
||||
getType<TContext extends string = TelegrafContextType>(): TContext {
|
||||
return super.getType();
|
||||
}
|
||||
|
||||
getContext<T = any>(): T {
|
||||
return this.getArgByIndex(0);
|
||||
}
|
||||
|
||||
getNext<T = any>(): T {
|
||||
return this.getArgByIndex(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user