nmtjs 0.16.0-beta.9 → 0.16.1

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 (161) hide show
  1. package/dist/cli.js +2 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/entrypoints/worker.js +9 -9
  4. package/dist/entrypoints/worker.js.map +1 -1
  5. package/dist/index.d.ts +58 -15
  6. package/dist/index.js +5 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/runtime/application/index.d.ts +1 -5
  9. package/dist/runtime/application/index.js +1 -5
  10. package/dist/runtime/application/index.js.map +1 -1
  11. package/dist/runtime/enums.d.ts +1 -12
  12. package/dist/runtime/enums.js +1 -14
  13. package/dist/runtime/enums.js.map +1 -1
  14. package/dist/runtime/hooks.d.ts +1 -4
  15. package/dist/runtime/hooks.js +1 -3
  16. package/dist/runtime/hooks.js.map +1 -1
  17. package/dist/runtime/index.d.ts +1 -3
  18. package/dist/runtime/index.js +1 -3
  19. package/dist/runtime/index.js.map +1 -1
  20. package/dist/runtime/injectables.d.ts +48 -7
  21. package/dist/runtime/injectables.js +19 -3
  22. package/dist/runtime/injectables.js.map +1 -1
  23. package/dist/runtime/jobs/job.d.ts +1 -2
  24. package/dist/runtime/jobs/job.js.map +1 -1
  25. package/dist/runtime/jobs/router.d.ts +2 -5
  26. package/dist/runtime/jobs/router.js +2 -3
  27. package/dist/runtime/jobs/router.js.map +1 -1
  28. package/dist/runtime/jobs/runner.d.ts +1 -1
  29. package/dist/runtime/jobs/runner.js +1 -1
  30. package/dist/runtime/jobs/runner.js.map +1 -1
  31. package/dist/runtime/jobs/types.d.ts +1 -1
  32. package/dist/runtime/metrics/metric.d.ts +2 -2
  33. package/dist/runtime/metrics/metric.js +1 -1
  34. package/dist/runtime/metrics/metric.js.map +1 -1
  35. package/dist/runtime/metrics/registry.d.ts +3 -3
  36. package/dist/runtime/metrics/registry.js +1 -1
  37. package/dist/runtime/metrics/registry.js.map +1 -1
  38. package/dist/runtime/metrics/server.js +1 -1
  39. package/dist/runtime/metrics/server.js.map +1 -1
  40. package/dist/runtime/plugin.d.ts +2 -8
  41. package/dist/runtime/plugin.js +1 -3
  42. package/dist/runtime/plugin.js.map +1 -1
  43. package/dist/runtime/runtime.d.ts +2 -2
  44. package/dist/runtime/runtime.js +1 -2
  45. package/dist/runtime/runtime.js.map +1 -1
  46. package/dist/runtime/server/applications.js +3 -0
  47. package/dist/runtime/server/applications.js.map +1 -1
  48. package/dist/runtime/server/config.d.ts +15 -12
  49. package/dist/runtime/server/config.js.map +1 -1
  50. package/dist/runtime/server/jobs.d.ts +6 -7
  51. package/dist/runtime/server/jobs.js +44 -30
  52. package/dist/runtime/server/jobs.js.map +1 -1
  53. package/dist/runtime/subscription/manager.d.ts +3 -3
  54. package/dist/runtime/subscription/manager.js +8 -8
  55. package/dist/runtime/subscription/manager.js.map +1 -1
  56. package/dist/runtime/subscription/redis.d.ts +1 -1
  57. package/dist/runtime/subscription/redis.js +16 -17
  58. package/dist/runtime/subscription/redis.js.map +1 -1
  59. package/dist/runtime/types.d.ts +3 -11
  60. package/dist/runtime/workers/application.d.ts +15 -33
  61. package/dist/runtime/workers/application.js +46 -139
  62. package/dist/runtime/workers/application.js.map +1 -1
  63. package/dist/runtime/workers/base.d.ts +0 -2
  64. package/dist/runtime/workers/base.js +3 -8
  65. package/dist/runtime/workers/base.js.map +1 -1
  66. package/dist/runtime/workers/job.js +2 -1
  67. package/dist/runtime/workers/job.js.map +1 -1
  68. package/dist/vite/server.js +1 -1
  69. package/dist/vite/server.js.map +1 -1
  70. package/package.json +19 -14
  71. package/src/cli.ts +2 -3
  72. package/src/entrypoints/worker.ts +11 -9
  73. package/src/index.ts +12 -5
  74. package/src/runtime/application/index.ts +1 -5
  75. package/src/runtime/enums.ts +2 -14
  76. package/src/runtime/hooks.ts +1 -5
  77. package/src/runtime/index.ts +2 -3
  78. package/src/runtime/injectables.ts +35 -6
  79. package/src/runtime/jobs/job.ts +1 -2
  80. package/src/runtime/jobs/router.ts +12 -15
  81. package/src/runtime/jobs/runner.ts +2 -2
  82. package/src/runtime/jobs/types.ts +1 -1
  83. package/src/runtime/metrics/metric.ts +2 -2
  84. package/src/runtime/metrics/registry.ts +5 -1
  85. package/src/runtime/metrics/server.ts +1 -1
  86. package/src/runtime/plugin.ts +2 -13
  87. package/src/runtime/runtime.ts +2 -4
  88. package/src/runtime/server/applications.ts +6 -0
  89. package/src/runtime/server/config.ts +27 -21
  90. package/src/runtime/server/jobs.ts +58 -34
  91. package/src/runtime/subscription/manager.ts +11 -14
  92. package/src/runtime/subscription/redis.ts +25 -23
  93. package/src/runtime/types.ts +3 -12
  94. package/src/runtime/workers/application.ts +76 -160
  95. package/src/runtime/workers/base.ts +9 -15
  96. package/src/runtime/workers/job.ts +3 -6
  97. package/src/vite/server.ts +1 -1
  98. package/dist/runtime/application/api/api.d.ts +0 -55
  99. package/dist/runtime/application/api/api.js +0 -252
  100. package/dist/runtime/application/api/api.js.map +0 -1
  101. package/dist/runtime/application/api/config.d.ts +0 -14
  102. package/dist/runtime/application/api/config.js +0 -6
  103. package/dist/runtime/application/api/config.js.map +0 -1
  104. package/dist/runtime/application/api/constants.d.ts +0 -14
  105. package/dist/runtime/application/api/constants.js +0 -8
  106. package/dist/runtime/application/api/constants.js.map +0 -1
  107. package/dist/runtime/application/api/filters.d.ts +0 -14
  108. package/dist/runtime/application/api/filters.js +0 -11
  109. package/dist/runtime/application/api/filters.js.map +0 -1
  110. package/dist/runtime/application/api/guards.d.ts +0 -15
  111. package/dist/runtime/application/api/guards.js +0 -8
  112. package/dist/runtime/application/api/guards.js.map +0 -1
  113. package/dist/runtime/application/api/index.d.ts +0 -23
  114. package/dist/runtime/application/api/index.js +0 -17
  115. package/dist/runtime/application/api/index.js.map +0 -1
  116. package/dist/runtime/application/api/logging.d.ts +0 -14
  117. package/dist/runtime/application/api/logging.js +0 -77
  118. package/dist/runtime/application/api/logging.js.map +0 -1
  119. package/dist/runtime/application/api/meta.d.ts +0 -21
  120. package/dist/runtime/application/api/meta.js +0 -2
  121. package/dist/runtime/application/api/meta.js.map +0 -1
  122. package/dist/runtime/application/api/middlewares.d.ts +0 -14
  123. package/dist/runtime/application/api/middlewares.js +0 -12
  124. package/dist/runtime/application/api/middlewares.js.map +0 -1
  125. package/dist/runtime/application/api/procedure.d.ts +0 -71
  126. package/dist/runtime/application/api/procedure.js +0 -41
  127. package/dist/runtime/application/api/procedure.js.map +0 -1
  128. package/dist/runtime/application/api/router.d.ts +0 -93
  129. package/dist/runtime/application/api/router.js +0 -55
  130. package/dist/runtime/application/api/router.js.map +0 -1
  131. package/dist/runtime/application/api/types.d.ts +0 -38
  132. package/dist/runtime/application/api/types.js +0 -2
  133. package/dist/runtime/application/api/types.js.map +0 -1
  134. package/dist/runtime/application/config.d.ts +0 -28
  135. package/dist/runtime/application/config.js +0 -25
  136. package/dist/runtime/application/config.js.map +0 -1
  137. package/dist/runtime/application/constants.d.ts +0 -2
  138. package/dist/runtime/application/constants.js +0 -2
  139. package/dist/runtime/application/constants.js.map +0 -1
  140. package/dist/runtime/application/hook.d.ts +0 -19
  141. package/dist/runtime/application/hook.js +0 -11
  142. package/dist/runtime/application/hook.js.map +0 -1
  143. package/dist/runtime/application/hooks.d.ts +0 -3
  144. package/dist/runtime/application/hooks.js +0 -4
  145. package/dist/runtime/application/hooks.js.map +0 -1
  146. package/src/runtime/application/api/api.ts +0 -406
  147. package/src/runtime/application/api/config.ts +0 -18
  148. package/src/runtime/application/api/constants.ts +0 -22
  149. package/src/runtime/application/api/filters.ts +0 -39
  150. package/src/runtime/application/api/guards.ts +0 -33
  151. package/src/runtime/application/api/index.ts +0 -69
  152. package/src/runtime/application/api/logging.ts +0 -110
  153. package/src/runtime/application/api/meta.ts +0 -37
  154. package/src/runtime/application/api/middlewares.ts +0 -37
  155. package/src/runtime/application/api/procedure.ts +0 -224
  156. package/src/runtime/application/api/router.ts +0 -247
  157. package/src/runtime/application/api/types.ts +0 -138
  158. package/src/runtime/application/config.ts +0 -82
  159. package/src/runtime/application/constants.ts +0 -4
  160. package/src/runtime/application/hook.ts +0 -51
  161. package/src/runtime/application/hooks.ts +0 -3
@@ -1,77 +0,0 @@
1
- import { IsStreamProcedureContract } from '@nmtjs/contract';
2
- import { CoreInjectables, loggerLocalStorage } from '@nmtjs/core';
3
- import { createMiddleware } from './middlewares.js';
4
- const defaultContext = (options, payload) => {
5
- return {
6
- callId: options.callId,
7
- connection: {
8
- id: options.connection.id,
9
- type: options.connection.type,
10
- transport: options.connection.transport,
11
- protocol: options.connection.protocol,
12
- identity: options.connection.identity,
13
- },
14
- };
15
- };
16
- export const LoggingCallContextMiddleware = (cb = defaultContext) => createMiddleware({
17
- handle: async (_, call, next, payload) => {
18
- const loggingContext = await cb(call, payload);
19
- return loggerLocalStorage.run(loggingContext, async () => {
20
- return next();
21
- });
22
- },
23
- });
24
- export const LoggingCallMiddleware = (options = {}) => createMiddleware({
25
- dependencies: { logger: CoreInjectables.logger('RPC') },
26
- handle: async ({ logger }, call, next, payload) => {
27
- const { includePayload, includeResponse, includeStreamChunks, level, errorLevel, } = {
28
- level: 'info',
29
- errorLevel: 'error',
30
- includePayload: true,
31
- includeResponse: true,
32
- includeStreamChunks: true,
33
- ...options,
34
- };
35
- const logFn = logger[level].bind(logger);
36
- const errorLogFn = logger[errorLevel].bind(logger);
37
- logFn(includePayload
38
- ? { procedure: call.procedure.contract.name, payload: payload }
39
- : { procedure: call.procedure.contract.name }, 'RPC call');
40
- const isIterableProcedure = IsStreamProcedureContract(call.procedure.contract);
41
- try {
42
- const response = await next();
43
- if (includeResponse) {
44
- if (isIterableProcedure) {
45
- logFn({ result: 'success', response: 'Stream' }, 'RPC response');
46
- }
47
- else {
48
- logFn({ result: 'success', response }, 'RPC response');
49
- }
50
- }
51
- else {
52
- logFn({ result: 'success' }, 'RPC response');
53
- }
54
- if (isIterableProcedure && includeStreamChunks) {
55
- return async function* (...args) {
56
- try {
57
- for await (const chunk of response(...args)) {
58
- logFn({ callId: call.callId, chunk }, 'RPC stream chunk');
59
- yield chunk;
60
- }
61
- logFn({ callId: call.callId }, 'RPC stream end');
62
- }
63
- catch (error) {
64
- errorLogFn({ callId: call.callId, error }, 'RPC stream error');
65
- throw error;
66
- }
67
- };
68
- }
69
- return response;
70
- }
71
- catch (error) {
72
- errorLogFn({ error }, 'RPC error');
73
- throw error;
74
- }
75
- },
76
- });
77
- //# sourceMappingURL=logging.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/logging.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { TAnyProcedureContract, TAnyRouterContract } from '@nmtjs/contract';
2
- import type { AfterDecodeMetaBinding, AnyMeta, BeforeDecodeMetaBinding, Container, StaticMetaBinding } from '@nmtjs/core';
3
- import type { GatewayConnection } from '@nmtjs/gateway';
4
- export type ApiMetaRouteContext = Readonly<{
5
- contract: TAnyRouterContract;
6
- timeout?: number;
7
- }>;
8
- export type ApiMetaProcedureContext = Readonly<{
9
- contract: TAnyProcedureContract;
10
- streamTimeout?: number;
11
- }>;
12
- export type ApiMetaContext = Readonly<{
13
- callId: string;
14
- connection: GatewayConnection;
15
- container: Container;
16
- path: readonly ApiMetaRouteContext[];
17
- procedure: ApiMetaProcedureContext;
18
- }>;
19
- export type StaticOrBeforeDecodeMetaBinding = StaticMetaBinding | BeforeDecodeMetaBinding<AnyMeta, any, ApiMetaContext>;
20
- export type CompatibleMetaBinding<Input> = StaticOrBeforeDecodeMetaBinding | AfterDecodeMetaBinding<AnyMeta, any, ApiMetaContext, Input>;
21
- export type AnyCompatibleMetaBinding = CompatibleMetaBinding<any>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=meta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/meta.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import type { MaybePromise } from '@nmtjs/common';
2
- import type { Dependant, Dependencies, DependencyContext } from '@nmtjs/core';
3
- import type { ApiCallContext } from './types.ts';
4
- import { kMiddleware } from './constants.ts';
5
- export type MiddlewareNext = (payload?: any) => any;
6
- export interface Middleware<Deps extends Dependencies = Dependencies> extends Dependant<Deps> {
7
- [kMiddleware]: true;
8
- handle: (ctx: DependencyContext<Deps>, call: ApiCallContext, next: MiddlewareNext, payload: any) => MaybePromise<any>;
9
- }
10
- export type AnyMiddleware = Middleware<any>;
11
- export declare function createMiddleware<Deps extends Dependencies = {}>(paramsOrHandler: {
12
- dependencies?: Deps;
13
- handle: Middleware<Deps>['handle'];
14
- } | Middleware<Deps>['handle']): Middleware<Deps>;
@@ -1,12 +0,0 @@
1
- import { kMiddleware } from './constants.js';
2
- export function createMiddleware(paramsOrHandler) {
3
- const { dependencies = {}, handle } = typeof paramsOrHandler === 'function'
4
- ? { handle: paramsOrHandler }
5
- : paramsOrHandler;
6
- return Object.freeze({
7
- dependencies,
8
- handle,
9
- [kMiddleware]: true,
10
- });
11
- }
12
- //# sourceMappingURL=middlewares.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/middlewares.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAiB5C,MAAM,UAAU,gBAAgB,CAC9B,eAE8B;IAE9B,MAAM,EAAE,YAAY,GAAG,EAAU,EAAE,MAAM,EAAE,GACzC,OAAO,eAAe,KAAK,UAAU;QACnC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE;QAC7B,CAAC,CAAC,eAAe,CAAA;IAErB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,YAAY;QACZ,MAAM;QACN,CAAC,WAAW,CAAC,EAAE,IAAI;KACpB,CAAqB,CAAA;AACxB,CAAC"}
@@ -1,71 +0,0 @@
1
- import type { MaybePromise } from '@nmtjs/common';
2
- import type { TAnyProcedureContract, TProcedureContract } from '@nmtjs/contract';
3
- import type { Dependant, Dependencies, DependencyContext } from '@nmtjs/core';
4
- import type { BaseType } from '@nmtjs/type';
5
- import type * as zod from 'zod/mini';
6
- import { t } from '@nmtjs/type';
7
- import type { AnyGuard } from './guards.ts';
8
- import type { AnyCompatibleMetaBinding, CompatibleMetaBinding } from './meta.ts';
9
- import type { AnyMiddleware } from './middlewares.ts';
10
- import type { JsonPrimitive } from './types.ts';
11
- import { kProcedure } from './constants.ts';
12
- export type { AnyCompatibleMetaBinding, CompatibleMetaBinding, StaticOrBeforeDecodeMetaBinding, } from './meta.ts';
13
- export type ProcedureMetaBinding<Input> = CompatibleMetaBinding<Input>;
14
- export type AnyProcedureMetaBinding = AnyCompatibleMetaBinding;
15
- export type ProcedureDecodedInput<Input extends BaseType | undefined> = Input extends BaseType ? t.infer.decode.output<Input> : never;
16
- export type ProcedureContractDecodedInput<ProcedureContract extends TAnyProcedureContract> = t.infer.decode.output<ProcedureContract['input']>;
17
- export interface BaseProcedure<ProcedureContract extends TAnyProcedureContract, ProcedureDeps extends Dependencies> extends Dependant<ProcedureDeps> {
18
- contract: ProcedureContract;
19
- handler: (...args: any[]) => any;
20
- meta: readonly AnyProcedureMetaBinding[];
21
- dependencies: ProcedureDeps;
22
- guards: Set<AnyGuard>;
23
- middlewares: Set<AnyMiddleware>;
24
- streamTimeout?: number;
25
- [kProcedure]: any;
26
- }
27
- export type ProcedureHandlerType<Input, Output, Deps extends Dependencies> = (ctx: DependencyContext<Deps>, data: Input) => MaybePromise<Output>;
28
- export interface Procedure<ProcedureContract extends TAnyProcedureContract, ProcedureDeps extends Dependencies> extends BaseProcedure<ProcedureContract, ProcedureDeps> {
29
- handler: ProcedureHandlerType<ProcedureContractDecodedInput<ProcedureContract>, ProcedureContract['stream'] extends true ? AsyncIterable<t.infer.encode.input<ProcedureContract['output']>> : t.infer.encode.input<ProcedureContract['output']>, ProcedureDeps>;
30
- }
31
- export type AnyProcedure<Contract extends TAnyProcedureContract = TAnyProcedureContract> = BaseProcedure<Contract, Dependencies>;
32
- export type CreateProcedureParams<ProcedureContract extends TAnyProcedureContract, ProcedureDeps extends Dependencies> = {
33
- dependencies?: ProcedureDeps;
34
- guards?: AnyGuard[];
35
- middlewares?: AnyMiddleware[];
36
- meta?: ProcedureMetaBinding<ProcedureContractDecodedInput<ProcedureContract>>[];
37
- streamTimeout?: number;
38
- handler: ProcedureHandlerType<ProcedureContractDecodedInput<ProcedureContract>, ProcedureContract['stream'] extends undefined ? t.infer.encode.input<ProcedureContract['output']> : AsyncIterable<Exclude<ProcedureContract['stream'], undefined | boolean>>, ProcedureDeps>;
39
- } | ProcedureHandlerType<ProcedureContractDecodedInput<ProcedureContract>, ProcedureContract['stream'] extends undefined ? t.infer.decode.input<ProcedureContract['output']> : AsyncIterable<Exclude<ProcedureContract['stream'], undefined | boolean>>, ProcedureDeps>;
40
- export declare function _createBaseProcedure<ProcedureContract extends TAnyProcedureContract, ProcedureDeps extends Dependencies>(contract: ProcedureContract, params: {
41
- dependencies?: ProcedureDeps;
42
- middlewares?: AnyMiddleware[];
43
- guards?: AnyGuard[];
44
- meta?: AnyProcedureMetaBinding[];
45
- streamTimeout?: number;
46
- }): {
47
- contract: ProcedureContract;
48
- dependencies: ProcedureDeps;
49
- middlewares: Set<AnyMiddleware>;
50
- guards: Set<AnyGuard>;
51
- meta: readonly AnyCompatibleMetaBinding[];
52
- streamTimeout: number | undefined;
53
- };
54
- export declare function createContractProcedure<ProcedureContract extends TAnyProcedureContract, ProcedureDeps extends Dependencies>(contract: ProcedureContract, paramsOrHandler: CreateProcedureParams<ProcedureContract, ProcedureDeps>): Procedure<ProcedureContract, ProcedureDeps>;
55
- export declare function createProcedure<Return, TInput extends BaseType | undefined = undefined, TOutput extends BaseType | undefined = undefined, TStream extends true | number | undefined = undefined, Deps extends Dependencies = {}>(paramsOrHandler: {
56
- input?: TInput;
57
- output?: TOutput;
58
- /**
59
- * Whether the procedure is a stream procedure.
60
- * If set to `true`, the procedure handler should return an `AsyncIterable` of output items.
61
- * If set to a number, it specifies an explicit stream timeout in milliseconds.
62
- */
63
- stream?: TStream;
64
- dependencies?: Deps;
65
- guards?: AnyGuard[];
66
- middlewares?: AnyMiddleware[];
67
- meta?: ProcedureMetaBinding<ProcedureDecodedInput<TInput>>[];
68
- timeout?: number;
69
- handler: ProcedureHandlerType<ProcedureDecodedInput<TInput>, TStream extends true | number ? AsyncIterable<TOutput extends BaseType ? t.infer.encode.input<TOutput> : Return> : TOutput extends BaseType ? t.infer.encode.input<TOutput> : Return, Deps>;
70
- } | ProcedureHandlerType<ProcedureDecodedInput<TInput>, Return, Deps>): Procedure<TProcedureContract<TInput extends undefined ? t.NeverType : TInput, TOutput extends undefined ? t.CustomType<JsonPrimitive<Return>, zod.ZodMiniCustom<JsonPrimitive<Return>, JsonPrimitive<Return>>> : TOutput, TStream extends true | number ? true : undefined>, Deps>;
71
- export declare const isProcedure: (value: any) => value is AnyProcedure;
@@ -1,41 +0,0 @@
1
- import { c } from '@nmtjs/contract';
2
- import { assertUniqueMetaBindings } from '@nmtjs/core';
3
- import { t } from '@nmtjs/type';
4
- import { kProcedure } from './constants.js';
5
- export function _createBaseProcedure(contract, params) {
6
- const dependencies = params.dependencies ?? {};
7
- const middlewares = new Set(params.middlewares ?? []);
8
- const guards = new Set(params.guards ?? []);
9
- const meta = Object.freeze([...(params.meta ?? [])]);
10
- const streamTimeout = params.streamTimeout;
11
- if (typeof streamTimeout !== 'undefined' && streamTimeout <= 0) {
12
- throw new Error('Stream timeout must be a positive integer');
13
- }
14
- assertUniqueMetaBindings(meta, 'procedure config');
15
- return { contract, dependencies, middlewares, guards, meta, streamTimeout };
16
- }
17
- export function createContractProcedure(contract, paramsOrHandler) {
18
- const { handler, ...params } = typeof paramsOrHandler === 'function'
19
- ? { handler: paramsOrHandler }
20
- : paramsOrHandler;
21
- return Object.assign(_createBaseProcedure(contract, params), {
22
- handler,
23
- [kProcedure]: true,
24
- });
25
- }
26
- export function createProcedure(paramsOrHandler) {
27
- const { input = t.never(), output = t.any(), stream = undefined, dependencies = {}, guards = [], middlewares = [], meta = [], handler, timeout, } = typeof paramsOrHandler === 'function'
28
- ? { handler: paramsOrHandler }
29
- : paramsOrHandler;
30
- // @ts-expect-error
31
- return createContractProcedure(c.procedure({ input, output, stream, timeout }), {
32
- dependencies,
33
- handler: handler,
34
- guards,
35
- middlewares,
36
- meta,
37
- streamTimeout: typeof stream === 'number' ? stream : undefined,
38
- });
39
- }
40
- export const isProcedure = (value) => Boolean(value?.[kProcedure]);
41
- //# sourceMappingURL=procedure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/procedure.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAM/B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAqF3C,MAAM,UAAU,oBAAoB,CAIlC,QAA2B,EAC3B,MAMC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAK,EAAoB,CAAA;IACjE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;IAE1C,IAAI,OAAO,aAAa,KAAK,WAAW,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAElD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,uBAAuB,CAIrC,QAA2B,EAC3B,eAAwE;IAExE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAC1B,OAAO,eAAe,KAAK,UAAU;QACnC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE;QAC9B,CAAC,CAAC,eAAe,CAAA;IAErB,OAAO,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;QAC3D,OAAO;QACP,CAAC,UAAU,CAAC,EAAE,IAAI;KACnB,CAAQ,CAAA;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAO7B,eA6BqE;IAcrE,MAAM,EACJ,KAAK,GAAG,CAAC,CAAC,KAAK,EAAS,EACxB,MAAM,GAAG,CAAC,CAAC,GAAG,EAAS,EACvB,MAAM,GAAG,SAAgB,EACzB,YAAY,GAAG,EAAU,EACzB,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,EAAE,EAChB,IAAI,GAAG,EAAE,EACT,OAAO,EACP,OAAO,GACR,GAAG,OAAO,eAAe,KAAK,UAAU;QACvC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE;QAC9B,CAAC,CAAC,eAAe,CAAA;IAEnB,mBAAmB;IACnB,OAAO,uBAAuB,CAC5B,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAC/C;QACE,YAAY;QACZ,OAAO,EAAE,OAAc;QACvB,MAAM;QACN,WAAW;QACX,IAAI;QACJ,aAAa,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC/D,CACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAU,EAAyB,EAAE,CAC/D,OAAO,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA"}
@@ -1,93 +0,0 @@
1
- import type { Callback } from '@nmtjs/common';
2
- import type { TAnyProcedureContract, TAnyRouterContract, TProcedureContract, TRouteContract, TRouterContract } from '@nmtjs/contract';
3
- import type { BaseTypeAny, t } from '@nmtjs/type';
4
- import type { AnyType } from '@nmtjs/type/any';
5
- import type { AnyGuard } from './guards.ts';
6
- import type { AnyCompatibleMetaBinding, CompatibleMetaBinding } from './meta.ts';
7
- import type { AnyMiddleware } from './middlewares.ts';
8
- import type { AnyProcedure } from './procedure.ts';
9
- import { kRootRouter, kRouter } from './constants.ts';
10
- export type RouterMetaBinding<Input> = CompatibleMetaBinding<Input>;
11
- export type AnyRouterMetaBinding = AnyCompatibleMetaBinding;
12
- export type AnyRouterRoutes = Record<string, AnyProcedure<any> | AnyRouter>;
13
- export type AnyRouterContractRoutes = Record<string, TAnyProcedureContract | TAnyRouterContract>;
14
- export interface AnyRouter {
15
- contract: TAnyRouterContract;
16
- routes: AnyRouterRoutes;
17
- guards: Set<AnyGuard>;
18
- middlewares: Set<AnyMiddleware>;
19
- meta: readonly AnyRouterMetaBinding[];
20
- timeout?: number;
21
- [kRouter]: any;
22
- }
23
- export interface AnyRootRouter extends AnyRouter {
24
- [kRootRouter]: any;
25
- contract: TAnyRouterContract<Record<string, TRouteContract>, undefined>;
26
- default?: AnyProcedure<any>;
27
- }
28
- export interface Router<Contract extends TAnyRouterContract> extends AnyRouter {
29
- contract: Contract;
30
- routes: {
31
- [K in keyof Contract['routes']]: Contract['routes'][K] extends TAnyRouterContract ? Router<Contract['routes'][K]> : Contract['routes'][K] extends TAnyProcedureContract ? AnyProcedure<TProcedureContract<Contract['routes'][K]['input'], Contract['routes'][K]['output'], Contract['routes'][K]['stream'], Contract['routes'][K]['name']>> : never;
32
- };
33
- guards: Set<AnyGuard>;
34
- middlewares: Set<AnyMiddleware>;
35
- meta: readonly AnyRouterMetaBinding[];
36
- timeout?: number;
37
- [kRouter]: any;
38
- }
39
- export interface RootRouter<Contract extends TAnyRouterContract<Record<string, TRouteContract>, undefined>> extends Router<Contract> {
40
- [kRootRouter]: any;
41
- default?: AnyProcedure<any>;
42
- }
43
- export type MergeRoutersRoutesContracts<Routers extends readonly TAnyRouterContract[]> = Routers extends [
44
- infer First extends TAnyRouterContract,
45
- ...infer Rest extends TAnyRouterContract[]
46
- ] ? {
47
- [K in keyof First['routes']]: First['routes'][K];
48
- } & MergeRoutersRoutesContracts<Rest> : Routers extends [infer First extends TAnyRouterContract] ? {
49
- [K in keyof First['routes']]: First['routes'][K];
50
- } : {};
51
- export type ExtractRouterContracts<Routers extends readonly {
52
- contract: TAnyRouterContract;
53
- }[]> = Routers extends [
54
- infer First extends {
55
- contract: TAnyRouterContract;
56
- },
57
- ...infer Rest extends {
58
- contract: TAnyRouterContract;
59
- }[]
60
- ] ? [First['contract'], ...ExtractRouterContracts<Rest>] : [];
61
- export type RouterContractsFromRoutes<Routes extends AnyRouterRoutes> = {
62
- [K in keyof Routes]: Routes[K] extends AnyRouter ? Routes[K]['contract'] : Routes[K] extends AnyProcedure<any> ? Routes[K]['contract'] : never;
63
- };
64
- export type RouterContractFromRoutes<Routes extends AnyRouterRoutes, Name extends string | undefined = undefined> = TRouterContract<RouterContractsFromRoutes<Routes>, Name>;
65
- export declare function createRootRouter<Routers extends readonly AnyRouter[]>(routers: Routers, defaultProcedure?: AnyProcedure<TProcedureContract<AnyType, AnyType, true | undefined, string | undefined>>): RootRouter<TRouterContract<MergeRoutersRoutesContracts<ExtractRouterContracts<[...Routers]>>, undefined>>;
66
- export type FlattenRouterContractInput<Routes extends AnyRouterContractRoutes> = {
67
- [K in keyof Routes]: Routes[K] extends TAnyRouterContract ? FlattenRouterContractInput<Routes[K]['routes']> : Routes[K] extends TAnyProcedureContract ? Routes[K]['input'] : never;
68
- }[keyof Routes];
69
- export type FlattenRouterDecodedInput<Routes extends AnyRouterContractRoutes> = t.infer.decode.output<Extract<FlattenRouterContractInput<Routes>, BaseTypeAny>>;
70
- export type RouterDecodedInput<Routes extends AnyRouterRoutes> = FlattenRouterDecodedInput<RouterContractsFromRoutes<Routes>>;
71
- export type RouterContractDecodedInput<Contract extends TAnyRouterContract> = FlattenRouterDecodedInput<Contract['routes']>;
72
- export interface CreateRouterParams<Routes extends AnyRouterRoutes, Name extends string | undefined = undefined> {
73
- routes: Routes;
74
- name?: Name;
75
- guards?: AnyGuard[];
76
- middlewares?: AnyMiddleware[];
77
- meta?: RouterMetaBinding<RouterDecodedInput<Routes>>[];
78
- hooks?: Record<string, Callback[]>;
79
- timeout?: number;
80
- }
81
- export interface CreateContractRouterParams<Contract extends TAnyRouterContract> {
82
- routes: {
83
- [K in keyof Contract['routes']]: Contract['routes'][K] extends TAnyRouterContract ? Router<Contract['routes'][K]> : Contract['routes'][K] extends TAnyProcedureContract ? AnyProcedure<Contract['routes'][K]> : never;
84
- };
85
- guards?: AnyGuard[];
86
- middlewares?: AnyMiddleware[];
87
- meta?: RouterMetaBinding<RouterContractDecodedInput<Contract>>[];
88
- timeout?: number;
89
- }
90
- export declare function createRouter<const Routes extends AnyRouterRoutes, const Name extends string | undefined = undefined>(params: CreateRouterParams<Routes, Name>): Router<RouterContractFromRoutes<Routes, Name>>;
91
- export declare function createContractRouter<Contract extends TAnyRouterContract>(contract: Contract, params: CreateContractRouterParams<Contract>): Router<Contract>;
92
- export declare const isRouter: (value: any) => value is AnyRouter;
93
- export declare const isRootRouter: (value: any) => value is AnyRootRouter;
@@ -1,55 +0,0 @@
1
- import { c, IsRouterContract } from '@nmtjs/contract';
2
- import { assertUniqueMetaBindings } from '@nmtjs/core';
3
- import { kRootRouter, kRouter } from './constants.js';
4
- export function createRootRouter(routers, defaultProcedure) {
5
- const routes = {};
6
- for (const router of routers)
7
- Object.assign(routes, router.routes);
8
- const router = createRouter({ routes, name: undefined });
9
- return Object.freeze({
10
- ...router,
11
- default: defaultProcedure,
12
- [kRootRouter]: true,
13
- });
14
- }
15
- export function createRouter(params) {
16
- const { routes, name, guards, middlewares, meta, timeout } = params;
17
- const routesContracts = {};
18
- for (const [name, route] of Object.entries(routes)) {
19
- routesContracts[name] = route.contract;
20
- }
21
- const contract = c.router({ routes: routesContracts, timeout, name });
22
- assignRouteContracts(routes, contract);
23
- return createContractRouter(contract, {
24
- routes: routes,
25
- guards,
26
- middlewares,
27
- meta,
28
- timeout,
29
- });
30
- }
31
- export function createContractRouter(contract, params) {
32
- const guards = new Set(params.guards ?? []);
33
- const middlewares = new Set(params.middlewares ?? []);
34
- const meta = Object.freeze([...(params.meta ?? [])]);
35
- assertUniqueMetaBindings(meta, 'router config');
36
- return {
37
- contract,
38
- routes: params.routes,
39
- guards,
40
- middlewares,
41
- meta,
42
- timeout: params.timeout,
43
- [kRouter]: true,
44
- };
45
- }
46
- export const isRouter = (value) => Boolean(value?.[kRouter]);
47
- export const isRootRouter = (value) => Boolean(value?.[kRootRouter]);
48
- function assignRouteContracts(routes, contract) {
49
- for (const [key, routeContract] of Object.entries(contract.routes)) {
50
- routes[key] = { ...routes[key], contract: routeContract };
51
- if (IsRouterContract(routeContract))
52
- assignRouteContracts(routes[key].routes, routeContract);
53
- }
54
- }
55
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/router.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import type { TProcedureContract } from '@nmtjs/contract';
2
- import type { Container } from '@nmtjs/core';
3
- import type { GatewayConnection } from '@nmtjs/gateway';
4
- import type { AnyCompatibleType, BaseTypeAny } from '@nmtjs/type';
5
- import type { Procedure } from './procedure.ts';
6
- import type { AnyRouter } from './router.ts';
7
- export type ApiCallContext<Payload = unknown> = Readonly<{
8
- callId: string;
9
- connection: GatewayConnection;
10
- container: Container;
11
- path: AnyRouter[];
12
- procedure: Procedure<TProcedureContract<AnyCompatibleType<any, Payload>, BaseTypeAny, true | undefined, string | undefined>, any>;
13
- }>;
14
- export type ApiGuardContext<Payload = unknown> = ApiCallContext<Payload> & Readonly<{
15
- payload: Payload;
16
- }>;
17
- export type JsonPrimitive<T> = Equal<T, JsonPrimitiveMain<T>> extends true ? T : JsonPrimitiveMain<T>;
18
- type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
19
- type JsonPrimitiveMain<Instance, InArray extends boolean = false> = Instance extends [never] ? never : ValueOf<Instance> extends bigint ? never : ValueOf<Instance> extends boolean | number | string ? ValueOf<Instance> : Instance extends Function ? InArray extends true ? null : never : ValueOf<Instance> extends object ? Instance extends object ? Instance extends NativeClass ? {} : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : PrimitiveObject<Instance> : never : ValueOf<Instance>;
20
- type PrimitiveObject<Instance extends object> = Instance extends Array<infer T> ? IsTuple<Instance> extends true ? PrimitiveTuple<Instance> : JsonPrimitiveMain<T, true>[] : {
21
- -readonly [P in keyof Instance as JsonPrimitiveMain<Instance[P]> extends never ? never : P]: JsonPrimitiveMain<Instance[P]>;
22
- };
23
- type PrimitiveTuple<T extends readonly any[]> = T extends [] ? [] : T extends [infer F] ? [JsonPrimitiveMain<F, true>] : T extends [infer F, ...infer Rest extends readonly any[]] ? [JsonPrimitiveMain<F, true>, ...PrimitiveTuple<Rest>] : T extends [(infer F)?] ? [JsonPrimitiveMain<F, true>?] : T extends [(infer F)?, ...infer Rest extends readonly any[]] ? [JsonPrimitiveMain<F, true>?, ...PrimitiveTuple<Rest>] : [];
24
- type ValueOf<Instance> = IsValueOf<Instance, boolean> extends true ? boolean : IsValueOf<Instance, number> extends true ? number : IsValueOf<Instance, string> extends true ? string : Instance;
25
- type NativeClass = Set<any> | Map<any, any> | WeakSet<any> | WeakMap<any, any> | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array | ArrayBuffer | SharedArrayBuffer | DataView;
26
- type IsTuple<T extends readonly any[] | {
27
- length: number;
28
- }> = [T] extends [
29
- never
30
- ] ? false : T extends readonly any[] ? number extends T['length'] ? false : true : false;
31
- type IsValueOf<Instance, Object extends IValueOf<any>> = Instance extends Object ? Object extends IValueOf<infer U> ? Instance extends U ? false : true : false : false;
32
- interface IValueOf<T> {
33
- valueOf(): T;
34
- }
35
- interface IJsonable<T> {
36
- toJSON(): T;
37
- }
38
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/types.ts"],"names":[],"mappings":""}
@@ -1,28 +0,0 @@
1
- import type { ConnectionIdentity, GatewayOptions, Transport } from '@nmtjs/gateway';
2
- import type { LifecycleHooks } from '../hooks.ts';
3
- import type { RuntimePlugin } from '../plugin.ts';
4
- import type { ApiOptions } from './api/api.ts';
5
- import type { AnyFilter } from './api/filters.ts';
6
- import type { AnyGuard } from './api/guards.ts';
7
- import type { AnyMiddleware } from './api/middlewares.ts';
8
- import type { AnyRootRouter, AnyRouterMetaBinding } from './api/router.ts';
9
- import type { AnyHook } from './hook.ts';
10
- import { kApplicationConfig } from './constants.ts';
11
- export type AnyApplicationConfig = ApplicationConfig<AnyRootRouter>;
12
- export interface ApplicationConfig<Router extends AnyRootRouter = AnyRootRouter, Transports extends Record<string, Transport> = Record<string, Transport>> {
13
- [kApplicationConfig]: any;
14
- router: Router;
15
- api: Pick<ApiOptions, 'timeout'>;
16
- gateway: Pick<GatewayOptions, 'streamTimeouts' | 'heartbeat'>;
17
- transports: Transports;
18
- identity?: ConnectionIdentity;
19
- plugins: RuntimePlugin[];
20
- filters: AnyFilter[];
21
- middlewares: AnyMiddleware[];
22
- guards: AnyGuard[];
23
- meta: AnyRouterMetaBinding[];
24
- hooks: AnyHook[];
25
- lifecycleHooks: LifecycleHooks['_']['config'];
26
- }
27
- export declare function defineApplication<R extends AnyRootRouter, T extends Record<string, Transport> = Record<string, Transport>>(options: Pick<ApplicationConfig<R, T>, 'router'> & Partial<Omit<ApplicationConfig<R, T>, 'router'>>): ApplicationConfig<R, T>;
28
- export declare function isApplicationConfig(value: any): value is ApplicationConfig;
@@ -1,25 +0,0 @@
1
- import { assertUniqueMetaBindings } from '@nmtjs/core';
2
- import { kApplicationConfig } from './constants.js';
3
- export function defineApplication(options) {
4
- const { router, transports = {}, guards = [], middlewares = [], meta = [], plugins = [], api = {}, filters = [], hooks = [], lifecycleHooks = {}, gateway = {}, identity: identityResolver, } = options;
5
- assertUniqueMetaBindings(meta, 'application config');
6
- return Object.freeze({
7
- [kApplicationConfig]: true,
8
- router,
9
- transports,
10
- api,
11
- gateway,
12
- filters,
13
- plugins,
14
- guards,
15
- middlewares,
16
- meta,
17
- hooks,
18
- lifecycleHooks,
19
- identity: identityResolver,
20
- });
21
- }
22
- export function isApplicationConfig(value) {
23
- return Boolean(value?.[kApplicationConfig]);
24
- }
25
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/runtime/application/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAUtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAuBnD,MAAM,UAAU,iBAAiB,CAI/B,OACkD;IAElD,MAAM,EACJ,MAAM,EACN,UAAU,GAAG,EAAE,EACf,MAAM,GAAG,EAAE,EACX,WAAW,GAAG,EAAE,EAChB,IAAI,GAAG,EAAE,EACT,OAAO,GAAG,EAAE,EACZ,GAAG,GAAG,EAA8B,EACpC,OAAO,GAAG,EAAkC,EAC5C,KAAK,GAAG,EAAgC,EACxC,cAAc,GAAG,EAAE,EACnB,OAAO,GAAG,EAAE,EACZ,QAAQ,EAAE,gBAAgB,GAC3B,GAAG,OAAO,CAAA;IAEX,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;IAEpD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,CAAC,kBAAkB,CAAC,EAAE,IAAI;QAC1B,MAAM;QACN,UAAU;QACV,GAAG;QACH,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,WAAW;QACX,IAAI;QACJ,KAAK;QACL,cAAc;QACd,QAAQ,EAAE,gBAAgB;KACI,CAA4B,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAC7C,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const kApplicationConfig: unique symbol;
2
- export type kApplicationConfig = typeof kApplicationConfig;
@@ -1,2 +0,0 @@
1
- export const kApplicationConfig = Symbol.for('neemata:ApplicationConfig');
2
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/runtime/application/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAkB,MAAM,CAAC,GAAG,CACzD,2BAA2B,CAC5B,CAAA"}
@@ -1,19 +0,0 @@
1
- import type { MaybePromise } from '@nmtjs/common';
2
- import type { Dependant, Dependencies, DependencyContext, HookTypes } from '@nmtjs/core';
3
- import { kHook } from '@nmtjs/core';
4
- export type AnyHook = Hook<HookTypes, string, any>;
5
- export interface Hook<T extends HookTypes = HookTypes, H extends string = string, Deps extends Dependencies = {}> extends Dependant<Deps> {
6
- [kHook]: any;
7
- name: H;
8
- handler: (ctx: DependencyContext<Deps>, ...args: H extends keyof T ? Parameters<T[H]> : unknown[]) => MaybePromise<any>;
9
- }
10
- export declare function createHook<Types extends HookTypes = HookTypes, Name extends Extract<keyof Types, string> | (object & string) = object & string, Deps extends Dependencies = {}>(params: {
11
- name: Name;
12
- dependencies?: Deps;
13
- handler: Hook<Types, Name, Deps>['handler'];
14
- }): Hook<Types, Name, Deps>;
15
- export declare function createApplicationHookFactory<Types extends HookTypes>(): <Name extends Extract<keyof Types, string> | (object & string) = object & string, Deps extends Dependencies = {}>(params: {
16
- name: Name;
17
- dependencies?: Deps;
18
- handler: Hook<Types, Name, Deps>['handler'];
19
- }) => Hook<Types, Name, Deps>;
@@ -1,11 +0,0 @@
1
- import { kHook } from '@nmtjs/core';
2
- export function createHook(params) {
3
- const { name, handler, dependencies = {} } = params;
4
- return Object.freeze({ [kHook]: true, name, handler, dependencies });
5
- }
6
- export function createApplicationHookFactory() {
7
- return (params) => {
8
- return createHook(params);
9
- };
10
- }
11
- //# sourceMappingURL=hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/runtime/application/hook.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAiBnC,MAAM,UAAU,UAAU,CAKxB,MAID;IACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,EAAU,EAAE,GAAG,MAAM,CAAA;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAQ,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,CAIL,MAID,EAA2B,EAAE;QAC5B,OAAO,UAAU,CAAoB,MAAM,CAAC,CAAA;IAC9C,CAAC,CAAA;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Hooks } from '@nmtjs/core';
2
- export declare class ApplicationHooks extends Hooks {
3
- }
@@ -1,4 +0,0 @@
1
- import { Hooks } from '@nmtjs/core';
2
- export class ApplicationHooks extends Hooks {
3
- }
4
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/runtime/application/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG"}