@elsikora/nestjs-crud-automator 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/README.md +18 -0
  2. package/dist/cjs/class/api/subscriber/function-base.class.d.ts +2 -1
  3. package/dist/cjs/class/api/subscriber/function-base.class.js.map +1 -1
  4. package/dist/cjs/interface/class/api/subscriber/function.interface.d.ts +7 -7
  5. package/dist/cjs/type/class/api/subscriber/function/before/create-context.type.d.ts +1 -1
  6. package/dist/cjs/type/class/api/subscriber/function/before/delete-context.type.d.ts +1 -1
  7. package/dist/cjs/type/class/api/subscriber/function/before/get/context.type.d.ts +1 -1
  8. package/dist/cjs/type/class/api/subscriber/function/before/get/list-context.type.d.ts +1 -1
  9. package/dist/cjs/type/class/api/subscriber/function/before/get/many-context.type.d.ts +1 -1
  10. package/dist/cjs/type/class/api/subscriber/function/before/update-context.type.d.ts +1 -1
  11. package/dist/esm/class/api/subscriber/function-base.class.d.ts +2 -1
  12. package/dist/esm/class/api/subscriber/function-base.class.js.map +1 -1
  13. package/dist/esm/interface/class/api/subscriber/function.interface.d.ts +7 -7
  14. package/dist/esm/type/class/api/subscriber/function/before/create-context.type.d.ts +1 -1
  15. package/dist/esm/type/class/api/subscriber/function/before/delete-context.type.d.ts +1 -1
  16. package/dist/esm/type/class/api/subscriber/function/before/get/context.type.d.ts +1 -1
  17. package/dist/esm/type/class/api/subscriber/function/before/get/list-context.type.d.ts +1 -1
  18. package/dist/esm/type/class/api/subscriber/function/before/get/many-context.type.d.ts +1 -1
  19. package/dist/esm/type/class/api/subscriber/function/before/update-context.type.d.ts +1 -1
  20. package/package.json +1 -1
package/README.md CHANGED
@@ -1054,6 +1054,24 @@ IApiSubscriberFunctionExecutionContext<User, TApiFunctionCreateProperties<User>,
1054
1054
  TApiSubscriberFunctionBeforeCreateContext<User>;
1055
1055
  ```
1056
1056
 
1057
+ Before function helper types also accept an optional `Result` generic for advanced subscribers that work with a stricter application-defined service payload. Define this payload type yourself to match the service input shape; the generic only narrows TypeScript's `context.result` type and does not change validation, transformation, or runtime behavior.
1058
+
1059
+ ```typescript
1060
+ type WithdrawalCreateInput = {
1061
+ amount: string;
1062
+ currency: { id: string };
1063
+ };
1064
+
1065
+ class WithdrawalSubscriber extends ApiFunctionSubscriberBase<Withdrawal, WithdrawalCreateInput> {
1066
+ async onBeforeCreate(context: TApiSubscriberFunctionBeforeCreateContext<Withdrawal, WithdrawalCreateInput>): Promise<WithdrawalCreateInput> {
1067
+ context.result.amount; // string
1068
+ context.result.currency.id; // string
1069
+
1070
+ return context.result;
1071
+ }
1072
+ }
1073
+ ```
1074
+
1057
1075
  **Available helper types:**
1058
1076
 
1059
1077
  - Function subscribers: `TApiSubscriberFunctionBeforeCreateContext`, `TApiSubscriberFunctionAfterCreateContext`, etc.
@@ -1,10 +1,11 @@
1
1
  import { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
2
2
  import { IApiSubscriberFunction } from '../../../interface/class/api/subscriber/function.interface';
3
+ import { TApiFunctionCreateProperties, TApiFunctionDeleteCriteria, TApiFunctionGetListProperties, TApiFunctionGetManyProperties, TApiFunctionGetProperties, TApiFunctionUpdateProperties } from '../../../type/decorator/api/function';
3
4
  import { ApiSubscriberBase } from './base.class';
4
5
  /**
5
6
  * Abstract base class for function-level subscribers.
6
7
  * @see {@link https://elsikora.com/docs/nestjs-crud-automator/api-reference/classes#apifunctionsubscriberbase | API Reference - ApiFunctionSubscriberBase}
7
8
  * @see {@link https://elsikora.com/docs/nestjs-crud-automator/subscriber-system/function-subscribers | Subscriber System - Function Subscribers}
8
9
  */
9
- export declare abstract class ApiFunctionSubscriberBase<E extends IApiBaseEntity> extends ApiSubscriberBase implements IApiSubscriberFunction<E> {
10
+ export declare abstract class ApiFunctionSubscriberBase<E extends IApiBaseEntity, BeforeCreateResult extends TApiFunctionCreateProperties<E> = TApiFunctionCreateProperties<E>, BeforeDeleteResult extends TApiFunctionDeleteCriteria<E> = TApiFunctionDeleteCriteria<E>, BeforeGetResult extends TApiFunctionGetProperties<E> = TApiFunctionGetProperties<E>, BeforeGetListResult extends TApiFunctionGetListProperties<E> = TApiFunctionGetListProperties<E>, BeforeGetManyResult extends TApiFunctionGetManyProperties<E> = TApiFunctionGetManyProperties<E>, BeforeUpdateResult extends TApiFunctionUpdateProperties<E> = TApiFunctionUpdateProperties<E>> extends ApiSubscriberBase implements IApiSubscriberFunction<E, BeforeCreateResult, BeforeDeleteResult, BeforeGetResult, BeforeGetListResult, BeforeGetManyResult, BeforeUpdateResult> {
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"function-base.class.js","sources":["../../../../../../src/class/api/subscriber/function-base.class.ts"],"sourcesContent":[null],"names":["ApiSubscriberBase"],"mappings":";;;;AAKA;;;;AAIG;AACG,MAAgB,yBAAoD,SAAQA,4BAAiB,CAAA;AAAwC;;;;"}
1
+ {"version":3,"file":"function-base.class.js","sources":["../../../../../../src/class/api/subscriber/function-base.class.ts"],"sourcesContent":[null],"names":["ApiSubscriberBase"],"mappings":";;;;AAMA;;;;AAIG;AACG,MAAgB,yBASrB,SAAQA,4BAAiB,CAAA;AACqI;;;;"}
@@ -5,7 +5,7 @@ import { IApiSubscriberFunctionExecutionContext } from './function/execution/con
5
5
  import { IApiSubscriber } from './interface';
6
6
  import { IApiGetListResponseResult } from '../../../decorator/api';
7
7
  import { TApiFunctionCreateProperties, TApiFunctionDeleteCriteria, TApiFunctionGetListProperties, TApiFunctionGetManyProperties, TApiFunctionGetProperties, TApiFunctionUpdateProperties } from '../../../../type/decorator/api/function';
8
- export interface IApiSubscriberFunction<E extends IApiBaseEntity> extends IApiSubscriber {
8
+ export interface IApiSubscriberFunction<E extends IApiBaseEntity, BeforeCreateResult extends TApiFunctionCreateProperties<E> = TApiFunctionCreateProperties<E>, BeforeDeleteResult extends TApiFunctionDeleteCriteria<E> = TApiFunctionDeleteCriteria<E>, BeforeGetResult extends TApiFunctionGetProperties<E> = TApiFunctionGetProperties<E>, BeforeGetListResult extends TApiFunctionGetListProperties<E> = TApiFunctionGetListProperties<E>, BeforeGetManyResult extends TApiFunctionGetManyProperties<E> = TApiFunctionGetManyProperties<E>, BeforeUpdateResult extends TApiFunctionUpdateProperties<E> = TApiFunctionUpdateProperties<E>> extends IApiSubscriber {
9
9
  onAfterCreate?(context: IApiSubscriberFunctionExecutionContext<E, E, IApiSubscriberFunctionExecutionContextData<E>>): Promise<E | undefined>;
10
10
  onAfterCustom?(context: IApiSubscriberFunctionExecutionContext<E, unknown, IApiSubscriberFunctionExecutionContextData<E>>): Promise<unknown>;
11
11
  onAfterDelete?(context: IApiSubscriberFunctionExecutionContext<E, E, IApiSubscriberFunctionExecutionContextData<E>>): Promise<E | undefined>;
@@ -20,9 +20,9 @@ export interface IApiSubscriberFunction<E extends IApiBaseEntity> extends IApiSu
20
20
  onAfterGetList?(context: IApiSubscriberFunctionExecutionContext<E, IApiGetListResponseResult<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<IApiGetListResponseResult<E> | undefined>;
21
21
  onAfterGetMany?(context: IApiSubscriberFunctionExecutionContext<E, Array<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<Array<E> | undefined>;
22
22
  onAfterUpdate?(context: IApiSubscriberFunctionExecutionContext<E, E, IApiSubscriberFunctionExecutionContextData<E>>): Promise<E | undefined>;
23
- onBeforeCreate?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionCreateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionCreateProperties<E> | undefined>;
23
+ onBeforeCreate?(context: IApiSubscriberFunctionExecutionContext<E, BeforeCreateResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeCreateResult | undefined>;
24
24
  onBeforeCustom?(context: IApiSubscriberFunctionExecutionContext<E, unknown, IApiSubscriberFunctionExecutionContextData<E>>): Promise<unknown>;
25
- onBeforeDelete?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionDeleteCriteria<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionDeleteCriteria<E> | undefined>;
25
+ onBeforeDelete?(context: IApiSubscriberFunctionExecutionContext<E, BeforeDeleteResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeDeleteResult | undefined>;
26
26
  onBeforeErrorCreate?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
27
27
  onBeforeErrorCustom?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
28
28
  onBeforeErrorDelete?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
@@ -30,8 +30,8 @@ export interface IApiSubscriberFunction<E extends IApiBaseEntity> extends IApiSu
30
30
  onBeforeErrorGetList?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
31
31
  onBeforeErrorGetMany?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
32
32
  onBeforeErrorUpdate?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
33
- onBeforeGet?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionGetProperties<E> | undefined>;
34
- onBeforeGetList?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetListProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionGetListProperties<E> | undefined>;
35
- onBeforeGetMany?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetManyProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionGetManyProperties<E> | undefined>;
36
- onBeforeUpdate?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionUpdateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionUpdateProperties<E> | undefined>;
33
+ onBeforeGet?(context: IApiSubscriberFunctionExecutionContext<E, BeforeGetResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeGetResult | undefined>;
34
+ onBeforeGetList?(context: IApiSubscriberFunctionExecutionContext<E, BeforeGetListResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeGetListResult | undefined>;
35
+ onBeforeGetMany?(context: IApiSubscriberFunctionExecutionContext<E, BeforeGetManyResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeGetManyResult | undefined>;
36
+ onBeforeUpdate?(context: IApiSubscriberFunctionExecutionContext<E, BeforeUpdateResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeUpdateResult | undefined>;
37
37
  }
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../interface/api-base-entity.inte
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionCreateProperties } from '../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeCreateContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionCreateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeCreateContext<E extends IApiBaseEntity, Result extends TApiFunctionCreateProperties<E> = TApiFunctionCreateProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../interface/api-base-entity.inte
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionDeleteCriteria } from '../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeDeleteContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionDeleteCriteria<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeDeleteContext<E extends IApiBaseEntity, Result extends TApiFunctionDeleteCriteria<E> = TApiFunctionDeleteCriteria<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../../interface/api-base-entity.i
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionGetProperties } from '../../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeGetContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeGetContext<E extends IApiBaseEntity, Result extends TApiFunctionGetProperties<E> = TApiFunctionGetProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../../interface/api-base-entity.i
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionGetListProperties } from '../../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeGetListContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetListProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeGetListContext<E extends IApiBaseEntity, Result extends TApiFunctionGetListProperties<E> = TApiFunctionGetListProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../../interface/api-base-entity.i
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionGetManyProperties } from '../../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeGetManyContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetManyProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeGetManyContext<E extends IApiBaseEntity, Result extends TApiFunctionGetManyProperties<E> = TApiFunctionGetManyProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../interface/api-base-entity.inte
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionUpdateProperties } from '../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeUpdateContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionUpdateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeUpdateContext<E extends IApiBaseEntity, Result extends TApiFunctionUpdateProperties<E> = TApiFunctionUpdateProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -1,10 +1,11 @@
1
1
  import { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
2
2
  import { IApiSubscriberFunction } from '../../../interface/class/api/subscriber/function.interface';
3
+ import { TApiFunctionCreateProperties, TApiFunctionDeleteCriteria, TApiFunctionGetListProperties, TApiFunctionGetManyProperties, TApiFunctionGetProperties, TApiFunctionUpdateProperties } from '../../../type/decorator/api/function';
3
4
  import { ApiSubscriberBase } from './base.class';
4
5
  /**
5
6
  * Abstract base class for function-level subscribers.
6
7
  * @see {@link https://elsikora.com/docs/nestjs-crud-automator/api-reference/classes#apifunctionsubscriberbase | API Reference - ApiFunctionSubscriberBase}
7
8
  * @see {@link https://elsikora.com/docs/nestjs-crud-automator/subscriber-system/function-subscribers | Subscriber System - Function Subscribers}
8
9
  */
9
- export declare abstract class ApiFunctionSubscriberBase<E extends IApiBaseEntity> extends ApiSubscriberBase implements IApiSubscriberFunction<E> {
10
+ export declare abstract class ApiFunctionSubscriberBase<E extends IApiBaseEntity, BeforeCreateResult extends TApiFunctionCreateProperties<E> = TApiFunctionCreateProperties<E>, BeforeDeleteResult extends TApiFunctionDeleteCriteria<E> = TApiFunctionDeleteCriteria<E>, BeforeGetResult extends TApiFunctionGetProperties<E> = TApiFunctionGetProperties<E>, BeforeGetListResult extends TApiFunctionGetListProperties<E> = TApiFunctionGetListProperties<E>, BeforeGetManyResult extends TApiFunctionGetManyProperties<E> = TApiFunctionGetManyProperties<E>, BeforeUpdateResult extends TApiFunctionUpdateProperties<E> = TApiFunctionUpdateProperties<E>> extends ApiSubscriberBase implements IApiSubscriberFunction<E, BeforeCreateResult, BeforeDeleteResult, BeforeGetResult, BeforeGetListResult, BeforeGetManyResult, BeforeUpdateResult> {
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"function-base.class.js","sources":["../../../../../../src/class/api/subscriber/function-base.class.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;;;AAIG;AACG,MAAgB,yBAAoD,SAAQ,iBAAiB,CAAA;AAAwC;;;;"}
1
+ {"version":3,"file":"function-base.class.js","sources":["../../../../../../src/class/api/subscriber/function-base.class.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAMA;;;;AAIG;AACG,MAAgB,yBASrB,SAAQ,iBAAiB,CAAA;AACqI;;;;"}
@@ -5,7 +5,7 @@ import { IApiSubscriberFunctionExecutionContext } from './function/execution/con
5
5
  import { IApiSubscriber } from './interface';
6
6
  import { IApiGetListResponseResult } from '../../../decorator/api';
7
7
  import { TApiFunctionCreateProperties, TApiFunctionDeleteCriteria, TApiFunctionGetListProperties, TApiFunctionGetManyProperties, TApiFunctionGetProperties, TApiFunctionUpdateProperties } from '../../../../type/decorator/api/function';
8
- export interface IApiSubscriberFunction<E extends IApiBaseEntity> extends IApiSubscriber {
8
+ export interface IApiSubscriberFunction<E extends IApiBaseEntity, BeforeCreateResult extends TApiFunctionCreateProperties<E> = TApiFunctionCreateProperties<E>, BeforeDeleteResult extends TApiFunctionDeleteCriteria<E> = TApiFunctionDeleteCriteria<E>, BeforeGetResult extends TApiFunctionGetProperties<E> = TApiFunctionGetProperties<E>, BeforeGetListResult extends TApiFunctionGetListProperties<E> = TApiFunctionGetListProperties<E>, BeforeGetManyResult extends TApiFunctionGetManyProperties<E> = TApiFunctionGetManyProperties<E>, BeforeUpdateResult extends TApiFunctionUpdateProperties<E> = TApiFunctionUpdateProperties<E>> extends IApiSubscriber {
9
9
  onAfterCreate?(context: IApiSubscriberFunctionExecutionContext<E, E, IApiSubscriberFunctionExecutionContextData<E>>): Promise<E | undefined>;
10
10
  onAfterCustom?(context: IApiSubscriberFunctionExecutionContext<E, unknown, IApiSubscriberFunctionExecutionContextData<E>>): Promise<unknown>;
11
11
  onAfterDelete?(context: IApiSubscriberFunctionExecutionContext<E, E, IApiSubscriberFunctionExecutionContextData<E>>): Promise<E | undefined>;
@@ -20,9 +20,9 @@ export interface IApiSubscriberFunction<E extends IApiBaseEntity> extends IApiSu
20
20
  onAfterGetList?(context: IApiSubscriberFunctionExecutionContext<E, IApiGetListResponseResult<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<IApiGetListResponseResult<E> | undefined>;
21
21
  onAfterGetMany?(context: IApiSubscriberFunctionExecutionContext<E, Array<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<Array<E> | undefined>;
22
22
  onAfterUpdate?(context: IApiSubscriberFunctionExecutionContext<E, E, IApiSubscriberFunctionExecutionContextData<E>>): Promise<E | undefined>;
23
- onBeforeCreate?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionCreateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionCreateProperties<E> | undefined>;
23
+ onBeforeCreate?(context: IApiSubscriberFunctionExecutionContext<E, BeforeCreateResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeCreateResult | undefined>;
24
24
  onBeforeCustom?(context: IApiSubscriberFunctionExecutionContext<E, unknown, IApiSubscriberFunctionExecutionContextData<E>>): Promise<unknown>;
25
- onBeforeDelete?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionDeleteCriteria<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionDeleteCriteria<E> | undefined>;
25
+ onBeforeDelete?(context: IApiSubscriberFunctionExecutionContext<E, BeforeDeleteResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeDeleteResult | undefined>;
26
26
  onBeforeErrorCreate?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
27
27
  onBeforeErrorCustom?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
28
28
  onBeforeErrorDelete?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
@@ -30,8 +30,8 @@ export interface IApiSubscriberFunction<E extends IApiBaseEntity> extends IApiSu
30
30
  onBeforeErrorGetList?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
31
31
  onBeforeErrorGetMany?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
32
32
  onBeforeErrorUpdate?(context: IApiSubscriberFunctionErrorExecutionContext<E, IApiSubscriberFunctionExecutionContextData<E>>, error: Error): Promise<void>;
33
- onBeforeGet?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionGetProperties<E> | undefined>;
34
- onBeforeGetList?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetListProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionGetListProperties<E> | undefined>;
35
- onBeforeGetMany?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetManyProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionGetManyProperties<E> | undefined>;
36
- onBeforeUpdate?(context: IApiSubscriberFunctionExecutionContext<E, TApiFunctionUpdateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>): Promise<TApiFunctionUpdateProperties<E> | undefined>;
33
+ onBeforeGet?(context: IApiSubscriberFunctionExecutionContext<E, BeforeGetResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeGetResult | undefined>;
34
+ onBeforeGetList?(context: IApiSubscriberFunctionExecutionContext<E, BeforeGetListResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeGetListResult | undefined>;
35
+ onBeforeGetMany?(context: IApiSubscriberFunctionExecutionContext<E, BeforeGetManyResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeGetManyResult | undefined>;
36
+ onBeforeUpdate?(context: IApiSubscriberFunctionExecutionContext<E, BeforeUpdateResult, IApiSubscriberFunctionExecutionContextData<E>>): Promise<BeforeUpdateResult | undefined>;
37
37
  }
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../interface/api-base-entity.inte
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionCreateProperties } from '../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeCreateContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionCreateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeCreateContext<E extends IApiBaseEntity, Result extends TApiFunctionCreateProperties<E> = TApiFunctionCreateProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../interface/api-base-entity.inte
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionDeleteCriteria } from '../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeDeleteContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionDeleteCriteria<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeDeleteContext<E extends IApiBaseEntity, Result extends TApiFunctionDeleteCriteria<E> = TApiFunctionDeleteCriteria<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../../interface/api-base-entity.i
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionGetProperties } from '../../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeGetContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeGetContext<E extends IApiBaseEntity, Result extends TApiFunctionGetProperties<E> = TApiFunctionGetProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../../interface/api-base-entity.i
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionGetListProperties } from '../../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeGetListContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetListProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeGetListContext<E extends IApiBaseEntity, Result extends TApiFunctionGetListProperties<E> = TApiFunctionGetListProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../../interface/api-base-entity.i
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionGetManyProperties } from '../../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeGetManyContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionGetManyProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeGetManyContext<E extends IApiBaseEntity, Result extends TApiFunctionGetManyProperties<E> = TApiFunctionGetManyProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
@@ -2,4 +2,4 @@ import { IApiBaseEntity } from '../../../../../../interface/api-base-entity.inte
2
2
  import { IApiSubscriberFunctionExecutionContextData } from '../../../../../../interface/class/api/subscriber/function/execution/context-data.interface';
3
3
  import { IApiSubscriberFunctionExecutionContext } from '../../../../../../interface/class/api/subscriber/function/execution/context.interface';
4
4
  import { TApiFunctionUpdateProperties } from '../../../../../decorator/api/function';
5
- export type TApiSubscriberFunctionBeforeUpdateContext<E extends IApiBaseEntity> = IApiSubscriberFunctionExecutionContext<E, TApiFunctionUpdateProperties<E>, IApiSubscriberFunctionExecutionContextData<E>>;
5
+ export type TApiSubscriberFunctionBeforeUpdateContext<E extends IApiBaseEntity, Result extends TApiFunctionUpdateProperties<E> = TApiFunctionUpdateProperties<E>> = IApiSubscriberFunctionExecutionContext<E, Result, IApiSubscriberFunctionExecutionContextData<E>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elsikora/nestjs-crud-automator",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "description": "A library for automating the creation of CRUD operations in NestJS.",
5
5
  "keywords": [
6
6
  "NestJS",