nestjs-telegraf/lib/execution-context/telegraf-execution-context.ts

34 lines
914 B
TypeScript
Raw Normal View History

2021-01-03 01:30:57 +03:00
import { ContextType, ExecutionContext } from '@nestjs/common';
import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
import { TgArgumentsHost } from './tg-arguments-host.interface';
2021-01-03 01:30:57 +03:00
export type TelegrafContextType = 'telegraf' | ContextType;
export class TelegrafExecutionContext
extends ExecutionContextHost
implements TgArgumentsHost
{
2021-01-03 01:30:57 +03:00
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 {
2022-08-24 17:23:39 +03:00
return this.getArgByIndex(1);
2021-01-03 01:30:57 +03:00
}
}