mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix: revert eventemitter changes
This commit is contained in:
parent
e745b97e87
commit
9dfc57b503
85
api/types/event-emitter.d.ts
vendored
85
api/types/event-emitter.d.ts
vendored
@ -55,14 +55,14 @@ import '@nestjs/event-emitter';
|
|||||||
* @description Module declaration that extends the NestJS EventEmitter with custom event types and methods.
|
* @description Module declaration that extends the NestJS EventEmitter with custom event types and methods.
|
||||||
*/
|
*/
|
||||||
declare module '@nestjs/event-emitter' {
|
declare module '@nestjs/event-emitter' {
|
||||||
export interface TDefinition<S, O = object> {
|
interface TDefinition<S, O = object> {
|
||||||
schema: S;
|
schema: S;
|
||||||
operations: O;
|
operations: O;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IHookExtensionsOperationMap {}
|
interface IHookExtensionsOperationMap {}
|
||||||
|
|
||||||
export interface IHookSettingsGroupLabelOperationMap {
|
interface IHookSettingsGroupLabelOperationMap {
|
||||||
chatbot_settings: TDefinition<
|
chatbot_settings: TDefinition<
|
||||||
object,
|
object,
|
||||||
{
|
{
|
||||||
@ -86,19 +86,10 @@ declare module '@nestjs/event-emitter' {
|
|||||||
company_country: Setting;
|
company_country: Setting;
|
||||||
}
|
}
|
||||||
>;
|
>;
|
||||||
nlp_settings: TDefinition<
|
|
||||||
object,
|
|
||||||
{
|
|
||||||
provider: Setting;
|
|
||||||
endpoint: Setting;
|
|
||||||
token: Setting;
|
|
||||||
threshold: Setting;
|
|
||||||
}
|
|
||||||
>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* custom hooks */
|
/* custom hooks */
|
||||||
export interface IHookOperationMap
|
interface IHookOperationMap
|
||||||
extends IHookSettingsGroupLabelOperationMap,
|
extends IHookSettingsGroupLabelOperationMap,
|
||||||
IHookExtensionsOperationMap {
|
IHookExtensionsOperationMap {
|
||||||
analytics: TDefinition<
|
analytics: TDefinition<
|
||||||
@ -132,7 +123,7 @@ declare module '@nestjs/event-emitter' {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* hooks */
|
/* hooks */
|
||||||
export interface IHookEntityOperationMap extends IHookOperationMap {
|
interface IHookEntityOperationMap extends IHookOperationMap {
|
||||||
stats: TDefinition<BotStats, { entry: string }>;
|
stats: TDefinition<BotStats, { entry: string }>;
|
||||||
attachment: TDefinition<Attachment>;
|
attachment: TDefinition<Attachment>;
|
||||||
block: TDefinition<Block>;
|
block: TDefinition<Block>;
|
||||||
@ -177,7 +168,7 @@ declare module '@nestjs/event-emitter' {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* entities hooks having schemas */
|
/* entities hooks having schemas */
|
||||||
export type IHookEntities = keyof Omit<
|
type IHookEntities = keyof Omit<
|
||||||
IHookEntityOperationMap,
|
IHookEntityOperationMap,
|
||||||
keyof IHookOperationMap
|
keyof IHookOperationMap
|
||||||
>;
|
>;
|
||||||
@ -185,18 +176,18 @@ declare module '@nestjs/event-emitter' {
|
|||||||
/**
|
/**
|
||||||
* @description A constrained string type that allows specific string values while preserving type safety.
|
* @description A constrained string type that allows specific string values while preserving type safety.
|
||||||
*/
|
*/
|
||||||
export type ConstrainedString = string & Record<never, never>;
|
type ConstrainedString = string & Record<never, never>;
|
||||||
|
|
||||||
export type EventNamespaces = keyof IHookEntityOperationMap;
|
type EventNamespaces = keyof IHookEntityOperationMap;
|
||||||
|
|
||||||
/* pre hooks */
|
/* pre hooks */
|
||||||
export type TPreValidate<T> = THydratedDocument<T>;
|
type TPreValidate<T> = THydratedDocument<T>;
|
||||||
|
|
||||||
export type TPreCreate<T> = THydratedDocument<T>;
|
type TPreCreate<T> = THydratedDocument<T>;
|
||||||
|
|
||||||
export type TPreUpdate<T> = TFilterQuery<T> & object;
|
type TPreUpdate<T> = TFilterQuery<T> & object;
|
||||||
|
|
||||||
export type TPreDelete<T> = Query<
|
type TPreDelete<T> = Query<
|
||||||
DeleteResult,
|
DeleteResult,
|
||||||
Document<T>,
|
Document<T>,
|
||||||
unknown,
|
unknown,
|
||||||
@ -205,55 +196,55 @@ declare module '@nestjs/event-emitter' {
|
|||||||
Record<string, never>
|
Record<string, never>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
export type TPreUnion<T> =
|
type TPreUnion<T> =
|
||||||
| TPreValidate<T>
|
| TPreValidate<T>
|
||||||
| TPreCreate<T>
|
| TPreCreate<T>
|
||||||
| TPreUpdate<T>
|
| TPreUpdate<T>
|
||||||
| TPreDelete<T>;
|
| TPreDelete<T>;
|
||||||
|
|
||||||
/* post hooks */
|
/* post hooks */
|
||||||
export type TPostValidate<T> = THydratedDocument<T>;
|
type TPostValidate<T> = THydratedDocument<T>;
|
||||||
|
|
||||||
export type TPostCreate<T> = THydratedDocument<T>;
|
type TPostCreate<T> = THydratedDocument<T>;
|
||||||
|
|
||||||
export type TPostUpdate<T> = THydratedDocument<T>;
|
type TPostUpdate<T> = THydratedDocument<T>;
|
||||||
|
|
||||||
export type TPostDelete = DeleteResult;
|
type TPostDelete = DeleteResult;
|
||||||
|
|
||||||
export type TPostUnion<T> =
|
type TPostUnion<T> =
|
||||||
| TPostValidate<T>
|
| TPostValidate<T>
|
||||||
| TPostCreate<T>
|
| TPostCreate<T>
|
||||||
| TPostUpdate<T>
|
| TPostUpdate<T>
|
||||||
| TPostDelete;
|
| TPostDelete;
|
||||||
|
|
||||||
export type TCustomOperations<E extends keyof IHookEntityOperationMap> =
|
type TCustomOperations<E extends keyof IHookEntityOperationMap> =
|
||||||
IHookEntityOperationMap[E]['operations'][keyof IHookEntityOperationMap[E]['operations']];
|
IHookEntityOperationMap[E]['operations'][keyof IHookEntityOperationMap[E]['operations']];
|
||||||
|
|
||||||
/* union hooks */
|
/* union hooks */
|
||||||
export type TUnion<G, E> = E extends keyof IHookEntityOperationMap
|
type TUnion<G, E> = E extends keyof IHookEntityOperationMap
|
||||||
? E extends keyof IHookOperationMap
|
? E extends keyof IHookOperationMap
|
||||||
? TCustomOperations<E>
|
? TCustomOperations<E>
|
||||||
: TPreUnion<G> | TPostUnion<G> | TCustomOperations<E>
|
: TPreUnion<G> | TPostUnion<G> | TCustomOperations<E>
|
||||||
: never;
|
: never;
|
||||||
|
|
||||||
/* Normalized hook */
|
/* Normalized hook */
|
||||||
export enum EHookPrefix {
|
enum EHookPrefix {
|
||||||
pre = 'pre',
|
pre = 'pre',
|
||||||
post = 'post',
|
post = 'post',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TCompatibleHook<
|
type TCompatibleHook<
|
||||||
P extends `${EHookPrefix}`,
|
P extends `${EHookPrefix}`,
|
||||||
T = `${EHook}`,
|
T = `${EHook}`,
|
||||||
> = T extends `${P}${infer I}` ? `${P}${I}` : never;
|
> = T extends `${P}${infer I}` ? `${P}${I}` : never;
|
||||||
|
|
||||||
export type TPreHook = TCompatibleHook<EHookPrefix.pre>;
|
type TPreHook = TCompatibleHook<EHookPrefix.pre>;
|
||||||
|
|
||||||
export type TPostHook = TCompatibleHook<EHookPrefix.post>;
|
type TPostHook = TCompatibleHook<EHookPrefix.post>;
|
||||||
|
|
||||||
export type TNormalizedEvents = '*' | TPreHook | TPostHook;
|
type TNormalizedEvents = '*' | TPreHook | TPostHook;
|
||||||
|
|
||||||
export type TNormalizedHooks<
|
type TNormalizedHooks<
|
||||||
E extends keyof IHookEntityOperationMap,
|
E extends keyof IHookEntityOperationMap,
|
||||||
T = IHookEntityOperationMap[E]['schema'],
|
T = IHookEntityOperationMap[E]['schema'],
|
||||||
> =
|
> =
|
||||||
@ -282,18 +273,18 @@ declare module '@nestjs/event-emitter' {
|
|||||||
[EHook.postDelete]: TPostDelete;
|
[EHook.postDelete]: TPostDelete;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TNormalizedHook<
|
type TNormalizedHook<E extends keyof IHookEntityOperationMap, O> = Extract<
|
||||||
E extends keyof IHookEntityOperationMap,
|
TNormalizedHooks<E>,
|
||||||
O,
|
{ [key in O]: unknown }
|
||||||
> = Extract<TNormalizedHooks<E>, { [key in O]: unknown }>[O];
|
>[O];
|
||||||
|
|
||||||
/* Extended hook */
|
/* Extended hook */
|
||||||
export type TExtendedHook<
|
type TExtendedHook<
|
||||||
E extends keyof IHookEntityOperationMap,
|
E extends keyof IHookEntityOperationMap,
|
||||||
O extends keyof IHookEntityOperationMap[E]['operations'],
|
O extends keyof IHookEntityOperationMap[E]['operations'],
|
||||||
> = IHookEntityOperationMap[E]['operations'][O];
|
> = IHookEntityOperationMap[E]['operations'][O];
|
||||||
|
|
||||||
export type EventValueOf<G> = G extends `hook:${infer E}:${infer O}`
|
type EventValueOf<G> = G extends `hook:${infer E}:${infer O}`
|
||||||
? O extends '*'
|
? O extends '*'
|
||||||
? TUnion<G, E>
|
? TUnion<G, E>
|
||||||
: E extends keyof IHookEntityOperationMap
|
: E extends keyof IHookEntityOperationMap
|
||||||
@ -303,7 +294,7 @@ declare module '@nestjs/event-emitter' {
|
|||||||
: never
|
: never
|
||||||
: never;
|
: never;
|
||||||
|
|
||||||
export type IsHookEvent<G extends EventNamespaces | ConstrainedString> =
|
type IsHookEvent<G extends EventNamespaces | ConstrainedString> =
|
||||||
G extends EventNamespaces
|
G extends EventNamespaces
|
||||||
? true
|
? true
|
||||||
: G extends `hook:${infer N}:${string}`
|
: G extends `hook:${infer N}:${string}`
|
||||||
@ -312,21 +303,21 @@ declare module '@nestjs/event-emitter' {
|
|||||||
: false
|
: false
|
||||||
: false;
|
: false;
|
||||||
|
|
||||||
export type TCustomEvents<G extends keyof IHookEntityOperationMap> =
|
type TCustomEvents<G extends keyof IHookEntityOperationMap> =
|
||||||
keyof IHookEntityOperationMap[G]['operations'] & string;
|
keyof IHookEntityOperationMap[G]['operations'] & string;
|
||||||
|
|
||||||
export type customEvent<G extends EventNamespaces | ConstrainedString> =
|
type customEvent<G extends EventNamespaces | ConstrainedString> =
|
||||||
G extends EventNamespaces
|
G extends EventNamespaces
|
||||||
? G extends `hook:${string}`
|
? G extends `hook:${string}`
|
||||||
? G
|
? G
|
||||||
: `hook:${G}:${TNormalizedEvents | TCustomEvents<G>}`
|
: `hook:${G}:${TNormalizedEvents | TCustomEvents<G>}`
|
||||||
: never;
|
: never;
|
||||||
|
|
||||||
export interface ListenerFn<G extends EventNamespaces | ConstrainedString> {
|
interface ListenerFn<G extends EventNamespaces | ConstrainedString> {
|
||||||
(value: EventValueOf<G>, ...values: any[]): void;
|
(value: EventValueOf<G>, ...values: any[]): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class EventEmitter2 {
|
class EventEmitter2 {
|
||||||
emit<G extends EventNamespaces | ConstrainedString, H extends G>(
|
emit<G extends EventNamespaces | ConstrainedString, H extends G>(
|
||||||
customEvent: customEvent<G>,
|
customEvent: customEvent<G>,
|
||||||
value: EventValueOf<H>,
|
value: EventValueOf<H>,
|
||||||
@ -401,7 +392,7 @@ declare module '@nestjs/event-emitter' {
|
|||||||
propertyKey: K,
|
propertyKey: K,
|
||||||
) => void;
|
) => void;
|
||||||
|
|
||||||
export declare function OnEvent<
|
declare function OnEvent<
|
||||||
G extends EventNamespaces | ConstrainedString,
|
G extends EventNamespaces | ConstrainedString,
|
||||||
H extends G,
|
H extends G,
|
||||||
>(
|
>(
|
||||||
|
Loading…
Reference in New Issue
Block a user