mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2024-12-24 23:14:39 +03:00
feat(): mvp
This commit is contained in:
parent
80853be80c
commit
d02a52a7ae
@ -1,6 +1,5 @@
|
||||
# source
|
||||
lib
|
||||
index.ts
|
||||
package-lock.json
|
||||
tsconfig.json
|
||||
.prettierrc
|
||||
|
1
index.d.ts
vendored
1
index.d.ts
vendored
@ -1 +0,0 @@
|
||||
export * from './dist';
|
6
index.js
6
index.js
@ -1,6 +0,0 @@
|
||||
"use strict";
|
||||
function __export(m) {
|
||||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
||||
}
|
||||
exports.__esModule = true;
|
||||
__export(require("./dist"));
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafUpdateType } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface OnOptions {
|
||||
*/
|
||||
export const On = (updateTypes: TelegrafUpdateType): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.On),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.On),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
updateTypes,
|
||||
} as OnOptions),
|
||||
);
|
||||
|
@ -1,9 +1,8 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { TELEGRAF_UPDATE_METADATA } from '../../telegraf.constants';
|
||||
import { UPDATE_METADATA } from '../../telegraf.constants';
|
||||
|
||||
/**
|
||||
* `@Update` decorator, it's like NestJS `@Controller` decorator,
|
||||
* but for Telegram Bot API updates.
|
||||
*/
|
||||
export const Update = (): ClassDecorator =>
|
||||
SetMetadata(TELEGRAF_UPDATE_METADATA, true);
|
||||
export const Update = (): ClassDecorator => SetMetadata(UPDATE_METADATA, true);
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { UPDATE_LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
|
||||
/**
|
||||
@ -8,5 +8,5 @@ import { ListenerType } from '../../enums/listener-type.enum';
|
||||
* @see https://telegraf.js.org/#/?id=use
|
||||
*/
|
||||
export const Use = (): MethodDecorator => {
|
||||
return SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Use);
|
||||
return SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Use);
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { TelegrafActionTriggers } from '../../telegraf.types';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
@ -17,8 +17,8 @@ export interface ActionOptions {
|
||||
*/
|
||||
export const Action = (triggers: TelegrafActionTriggers): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Action),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Action),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
triggers,
|
||||
} as ActionOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { TelegrafCashtag } from '../../telegraf.types';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
@ -17,8 +17,8 @@ export interface CashtagOptions {
|
||||
*/
|
||||
export const Cashtag = (cashtag: TelegrafCashtag): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Cashtag),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Cashtag),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
cashtag,
|
||||
} as CashtagOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafCommand } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface CommandOptions {
|
||||
*/
|
||||
export const Command = (command: TelegrafCommand): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Command),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Command),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
command: command,
|
||||
} as CommandOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafEmail } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface EmailOptions {
|
||||
*/
|
||||
export const Email = (email: TelegrafEmail): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Email),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Email),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
email,
|
||||
} as EmailOptions),
|
||||
);
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { UPDATE_LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
|
||||
/**
|
||||
@ -8,5 +8,5 @@ import { ListenerType } from '../../enums/listener-type.enum';
|
||||
* @see https://telegraf.js.org/#/?id=inlinequery
|
||||
*/
|
||||
export const GameQuery = (): MethodDecorator => {
|
||||
return SetMetadata(LISTENER_TYPE_METADATA, ListenerType.GameQuery);
|
||||
return SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.GameQuery);
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafHashtag } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface HashtagOptions {
|
||||
*/
|
||||
export const Hashtag = (hashtag: TelegrafHashtag): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Hashtag),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Hashtag),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
hashtag,
|
||||
} as HashtagOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafHearsTriggers } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface HearsOptions {
|
||||
*/
|
||||
export const Hears = (triggers: TelegrafHearsTriggers): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Hears),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Hears),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
triggers,
|
||||
} as HearsOptions),
|
||||
);
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { UPDATE_LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
|
||||
/**
|
||||
@ -8,5 +8,5 @@ import { ListenerType } from '../../enums/listener-type.enum';
|
||||
* @see https://telegraf.js.org/#/?id=help
|
||||
*/
|
||||
export const Help = (): MethodDecorator => {
|
||||
return SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Help);
|
||||
return SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Help);
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafInlineQueryTriggers } from '../../telegraf.types';
|
||||
@ -19,8 +19,8 @@ export const InlineQuery = (
|
||||
triggers: TelegrafInlineQueryTriggers,
|
||||
): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.InlineQuery),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.InlineQuery),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
triggers,
|
||||
} as InlineQueryOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafMention } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface MentionOptions {
|
||||
*/
|
||||
export const Mention = (mention: TelegrafMention): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Mention),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Mention),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
mention,
|
||||
} as MentionOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafPhone } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface PhoneOptions {
|
||||
*/
|
||||
export const Phone = (phone: TelegrafPhone): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Phone),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Phone),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
phone,
|
||||
} as PhoneOptions),
|
||||
);
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { UPDATE_LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
|
||||
/**
|
||||
@ -8,5 +8,5 @@ import { ListenerType } from '../../enums/listener-type.enum';
|
||||
* @see https://telegraf.js.org/#/?id=settings
|
||||
*/
|
||||
export const Settings = (): MethodDecorator => {
|
||||
return SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Settings);
|
||||
return SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Settings);
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { UPDATE_LISTENER_TYPE_METADATA } from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
|
||||
/**
|
||||
@ -8,5 +8,5 @@ import { ListenerType } from '../../enums/listener-type.enum';
|
||||
* @see https://telegraf.js.org/#/?id=start
|
||||
*/
|
||||
export const Start = (): MethodDecorator => {
|
||||
return SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Start);
|
||||
return SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Start);
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafTextLink } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface TextLinkOptions {
|
||||
*/
|
||||
export const TetxLink = (link: TelegrafTextLink): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.TextLink),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.TextLink),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
link,
|
||||
} as TextLinkOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafTextMention } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface TextMentionOptions {
|
||||
*/
|
||||
export const TetxMention = (mention: TelegrafTextMention): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.TextMention),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.TextMention),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
mention,
|
||||
} as TextMentionOptions),
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||
import {
|
||||
LISTENER_OPTIONS_METADATA,
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_OPTIONS_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
} from '../../telegraf.constants';
|
||||
import { ListenerType } from '../../enums/listener-type.enum';
|
||||
import { TelegrafUrl } from '../../telegraf.types';
|
||||
@ -17,8 +17,8 @@ export interface UrlOptions {
|
||||
*/
|
||||
export const Url = (url: TelegrafUrl): MethodDecorator => {
|
||||
return applyDecorators(
|
||||
SetMetadata(LISTENER_TYPE_METADATA, ListenerType.Url),
|
||||
SetMetadata(LISTENER_OPTIONS_METADATA, {
|
||||
SetMetadata(UPDATE_LISTENER_TYPE_METADATA, ListenerType.Url),
|
||||
SetMetadata(UPDATE_LISTENER_OPTIONS_METADATA, {
|
||||
url,
|
||||
} as UrlOptions),
|
||||
);
|
||||
|
@ -1,5 +1,6 @@
|
||||
export const TELEGRAF_MODULE_OPTIONS = 'TELEGRAF_MODULE_OPTIONS';
|
||||
|
||||
export const TELEGRAF_UPDATE_METADATA = 'TELEGRAF_UPDATE_METADATA';
|
||||
export const LISTENER_TYPE_METADATA = 'LISTENER_TYPE_METADATA';
|
||||
export const LISTENER_OPTIONS_METADATA = 'LISTENER_OPTIONS_METADATA';
|
||||
export const UPDATE_METADATA = 'UPDATE_METADATA';
|
||||
export const UPDATE_LISTENER_TYPE_METADATA = 'UPDATE_LISTENER_TYPE_METADATA';
|
||||
export const UPDATE_LISTENER_OPTIONS_METADATA =
|
||||
'UPDATE_LISTENER_OPTIONS_METADATA';
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
||||
import { DiscoveryService, ModuleRef } from '@nestjs/core';
|
||||
import { MetadataScanner } from '@nestjs/core/metadata-scanner';
|
||||
import { TelegrafMetadataAccessor } from './telegraf-metadata.accessor';
|
||||
import { TelegrafMetadataAccessor } from './telegraf.metadata-accessor';
|
||||
import { TelegrafProvider } from './telegraf.provider';
|
||||
import { ListenerType } from './enums';
|
||||
import {
|
||||
@ -19,6 +19,7 @@ import {
|
||||
TextMentionOptions,
|
||||
UrlOptions,
|
||||
} from './decorators';
|
||||
import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
|
||||
|
||||
@Injectable()
|
||||
export class TelegrafExplorer implements OnModuleInit {
|
||||
@ -39,29 +40,29 @@ export class TelegrafExplorer implements OnModuleInit {
|
||||
}
|
||||
|
||||
explore(): void {
|
||||
this.discoveryService
|
||||
const updateInstanceWrappers = this.filterUpdateClass();
|
||||
|
||||
updateInstanceWrappers.forEach((wrapper) => {
|
||||
const { instance } = wrapper;
|
||||
|
||||
const prototype = Object.getPrototypeOf(instance);
|
||||
this.metadataScanner.scanFromPrototype(
|
||||
instance,
|
||||
prototype,
|
||||
(methodKey: string) =>
|
||||
this.registerIfUpdateListener(instance, methodKey),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
private filterUpdateClass(): InstanceWrapper[] {
|
||||
return this.discoveryService
|
||||
.getProviders()
|
||||
.filter((wrapper) => wrapper.instance)
|
||||
.forEach((wrapper) => {
|
||||
const { instance } = wrapper;
|
||||
|
||||
const prototype = Object.getPrototypeOf(instance);
|
||||
this.metadataScanner.scanFromPrototype(
|
||||
instance,
|
||||
prototype,
|
||||
(methodKey: string) => this.registerIfUpdate(instance, methodKey),
|
||||
);
|
||||
});
|
||||
.filter((wrapper) => this.metadataAccessor.isUpdate(wrapper.instance));
|
||||
}
|
||||
|
||||
private registerIfUpdate(
|
||||
instance: Record<string, Function>,
|
||||
methodKey: string,
|
||||
): void {
|
||||
const isUpdate = this.metadataAccessor.isUpdate(instance);
|
||||
}
|
||||
|
||||
private registerIfListener(
|
||||
private registerIfUpdateListener(
|
||||
instance: Record<string, Function>,
|
||||
methodKey: string,
|
||||
): void {
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { Reflector } from '@nestjs/core';
|
||||
import {
|
||||
LISTENER_TYPE_METADATA,
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
TELEGRAF_MODULE_OPTIONS,
|
||||
TELEGRAF_UPDATE_METADATA,
|
||||
UPDATE_METADATA,
|
||||
} from './telegraf.constants';
|
||||
import { ListenerType } from './enums';
|
||||
|
||||
@ -12,14 +12,14 @@ export class TelegrafMetadataAccessor {
|
||||
constructor(private readonly reflector: Reflector) {}
|
||||
|
||||
isUpdate(target: Function): boolean {
|
||||
return !!this.reflector.get<true | undefined>(
|
||||
TELEGRAF_UPDATE_METADATA,
|
||||
target,
|
||||
);
|
||||
return !!this.reflector.get<true | undefined>(UPDATE_METADATA, target);
|
||||
}
|
||||
|
||||
getListenerType(target: Function): ListenerType | undefined {
|
||||
return this.reflector.get<ListenerType>(LISTENER_TYPE_METADATA, target);
|
||||
return this.reflector.get<ListenerType>(
|
||||
UPDATE_LISTENER_TYPE_METADATA,
|
||||
target,
|
||||
);
|
||||
}
|
||||
|
||||
getListenerOptions<T>(target: Function): unknown | undefined {
|
@ -6,7 +6,7 @@ import {
|
||||
TelegrafOptionsFactory,
|
||||
} from './interfaces';
|
||||
import { TELEGRAF_MODULE_OPTIONS } from './telegraf.constants';
|
||||
import { TelegrafMetadataAccessor } from './telegraf-metadata.accessor';
|
||||
import { TelegrafMetadataAccessor } from './telegraf.metadata-accessor';
|
||||
import { TelegrafExplorer } from './telegraf.explorer';
|
||||
import { TelegrafProvider } from './telegraf.provider';
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nestjs-telegraf",
|
||||
"version": "2.0.0-alpha.1",
|
||||
"version": "2.0.0",
|
||||
"description": "Telegraf module for NestJS",
|
||||
"keywords": [
|
||||
"nest",
|
||||
|
@ -13,6 +13,6 @@
|
||||
"rootDir": "./lib",
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"include": ["lib/**/*", "../index.ts"],
|
||||
"include": ["lib/**/*"],
|
||||
"exclude": ["node_modules", "**/*.spec.ts"]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user