nestjs-trpc 1.1.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 (212) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +93 -0
  3. package/dist/decorators/__tests__/context.decorator.spec.d.ts +1 -0
  4. package/dist/decorators/__tests__/context.decorator.spec.js +72 -0
  5. package/dist/decorators/__tests__/context.decorator.spec.js.map +1 -0
  6. package/dist/decorators/__tests__/input.decorator.spec.d.ts +1 -0
  7. package/dist/decorators/__tests__/input.decorator.spec.js +71 -0
  8. package/dist/decorators/__tests__/input.decorator.spec.js.map +1 -0
  9. package/dist/decorators/__tests__/middlewares.decorator.spec.d.ts +1 -0
  10. package/dist/decorators/__tests__/middlewares.decorator.spec.js +76 -0
  11. package/dist/decorators/__tests__/middlewares.decorator.spec.js.map +1 -0
  12. package/dist/decorators/__tests__/mutation.decorator.spec.d.ts +1 -0
  13. package/dist/decorators/__tests__/mutation.decorator.spec.js +88 -0
  14. package/dist/decorators/__tests__/mutation.decorator.spec.js.map +1 -0
  15. package/dist/decorators/__tests__/options.decorator.spec.d.ts +1 -0
  16. package/dist/decorators/__tests__/options.decorator.spec.js +68 -0
  17. package/dist/decorators/__tests__/options.decorator.spec.js.map +1 -0
  18. package/dist/decorators/__tests__/path.decorator.spec.d.ts +1 -0
  19. package/dist/decorators/__tests__/path.decorator.spec.js +68 -0
  20. package/dist/decorators/__tests__/path.decorator.spec.js.map +1 -0
  21. package/dist/decorators/__tests__/query.decorator.spec.d.ts +1 -0
  22. package/dist/decorators/__tests__/query.decorator.spec.js +88 -0
  23. package/dist/decorators/__tests__/query.decorator.spec.js.map +1 -0
  24. package/dist/decorators/__tests__/raw-input.decorator.spec.d.ts +1 -0
  25. package/dist/decorators/__tests__/raw-input.decorator.spec.js +68 -0
  26. package/dist/decorators/__tests__/raw-input.decorator.spec.js.map +1 -0
  27. package/dist/decorators/__tests__/router.decorator.spec.d.ts +1 -0
  28. package/dist/decorators/__tests__/router.decorator.spec.js +59 -0
  29. package/dist/decorators/__tests__/router.decorator.spec.js.map +1 -0
  30. package/dist/decorators/__tests__/type.decorator.spec.d.ts +1 -0
  31. package/dist/decorators/__tests__/type.decorator.spec.js +68 -0
  32. package/dist/decorators/__tests__/type.decorator.spec.js.map +1 -0
  33. package/dist/decorators/context.decorator.d.ts +1 -0
  34. package/dist/decorators/context.decorator.js +21 -0
  35. package/dist/decorators/context.decorator.js.map +1 -0
  36. package/dist/decorators/context.decorator.spec.d.ts +1 -0
  37. package/dist/decorators/context.decorator.spec.js +73 -0
  38. package/dist/decorators/context.decorator.spec.js.map +1 -0
  39. package/dist/decorators/index.d.ts +10 -0
  40. package/dist/decorators/index.js +27 -0
  41. package/dist/decorators/index.js.map +1 -0
  42. package/dist/decorators/input.decorator.d.ts +1 -0
  43. package/dist/decorators/input.decorator.js +22 -0
  44. package/dist/decorators/input.decorator.js.map +1 -0
  45. package/dist/decorators/input.decorator.spec.d.ts +1 -0
  46. package/dist/decorators/input.decorator.spec.js +71 -0
  47. package/dist/decorators/input.decorator.spec.js.map +1 -0
  48. package/dist/decorators/middlewares.decorator.d.ts +2 -0
  49. package/dist/decorators/middlewares.decorator.js +23 -0
  50. package/dist/decorators/middlewares.decorator.js.map +1 -0
  51. package/dist/decorators/middlewares.decorator.spec.d.ts +1 -0
  52. package/dist/decorators/middlewares.decorator.spec.js +76 -0
  53. package/dist/decorators/middlewares.decorator.spec.js.map +1 -0
  54. package/dist/decorators/mutation.decorator.d.ts +5 -0
  55. package/dist/decorators/mutation.decorator.js +14 -0
  56. package/dist/decorators/mutation.decorator.js.map +1 -0
  57. package/dist/decorators/mutation.decorator.spec.d.ts +1 -0
  58. package/dist/decorators/mutation.decorator.spec.js +88 -0
  59. package/dist/decorators/mutation.decorator.spec.js.map +1 -0
  60. package/dist/decorators/options.decorator.d.ts +1 -0
  61. package/dist/decorators/options.decorator.js +21 -0
  62. package/dist/decorators/options.decorator.js.map +1 -0
  63. package/dist/decorators/options.decorator.spec.d.ts +1 -0
  64. package/dist/decorators/options.decorator.spec.js +68 -0
  65. package/dist/decorators/options.decorator.spec.js.map +1 -0
  66. package/dist/decorators/path.decorator.d.ts +1 -0
  67. package/dist/decorators/path.decorator.js +21 -0
  68. package/dist/decorators/path.decorator.js.map +1 -0
  69. package/dist/decorators/query.decorator.d.ts +5 -0
  70. package/dist/decorators/query.decorator.js +14 -0
  71. package/dist/decorators/query.decorator.js.map +1 -0
  72. package/dist/decorators/raw-input.decorator.d.ts +1 -0
  73. package/dist/decorators/raw-input.decorator.js +21 -0
  74. package/dist/decorators/raw-input.decorator.js.map +1 -0
  75. package/dist/decorators/router.decorator.d.ts +3 -0
  76. package/dist/decorators/router.decorator.js +10 -0
  77. package/dist/decorators/router.decorator.js.map +1 -0
  78. package/dist/decorators/type.decorator.d.ts +1 -0
  79. package/dist/decorators/type.decorator.js +21 -0
  80. package/dist/decorators/type.decorator.js.map +1 -0
  81. package/dist/factories/__tests__/middleware.factory.spec.d.ts +1 -0
  82. package/dist/factories/__tests__/middleware.factory.spec.js +66 -0
  83. package/dist/factories/__tests__/middleware.factory.spec.js.map +1 -0
  84. package/dist/factories/__tests__/procedure.factory.spec.d.ts +1 -0
  85. package/dist/factories/__tests__/procedure.factory.spec.js +179 -0
  86. package/dist/factories/__tests__/procedure.factory.spec.js.map +1 -0
  87. package/dist/factories/__tests__/router.factory.spec.d.ts +1 -0
  88. package/dist/factories/__tests__/router.factory.spec.js +223 -0
  89. package/dist/factories/__tests__/router.factory.spec.js.map +1 -0
  90. package/dist/factories/__tests__/trpc.factory.spec.d.ts +1 -0
  91. package/dist/factories/__tests__/trpc.factory.spec.js +60 -0
  92. package/dist/factories/__tests__/trpc.factory.spec.js.map +1 -0
  93. package/dist/factories/middleware.factory.d.ts +7 -0
  94. package/dist/factories/middleware.factory.js +42 -0
  95. package/dist/factories/middleware.factory.js.map +1 -0
  96. package/dist/factories/procedure.factory.d.ts +17 -0
  97. package/dist/factories/procedure.factory.js +123 -0
  98. package/dist/factories/procedure.factory.js.map +1 -0
  99. package/dist/factories/router.factory.d.ts +9 -0
  100. package/dist/factories/router.factory.js +71 -0
  101. package/dist/factories/router.factory.js.map +1 -0
  102. package/dist/factories/trpc.factory.d.ts +10 -0
  103. package/dist/factories/trpc.factory.js +39 -0
  104. package/dist/factories/trpc.factory.js.map +1 -0
  105. package/dist/generators/__tests__/context.generator.spec.d.ts +1 -0
  106. package/dist/generators/__tests__/context.generator.spec.js +70 -0
  107. package/dist/generators/__tests__/context.generator.spec.js.map +1 -0
  108. package/dist/generators/__tests__/decorator.generator.spec.d.ts +1 -0
  109. package/dist/generators/__tests__/decorator.generator.spec.js +84 -0
  110. package/dist/generators/__tests__/decorator.generator.spec.js.map +1 -0
  111. package/dist/generators/__tests__/middleware.generator.spec.d.ts +1 -0
  112. package/dist/generators/__tests__/middleware.generator.spec.js +71 -0
  113. package/dist/generators/__tests__/middleware.generator.spec.js.map +1 -0
  114. package/dist/generators/__tests__/router.generator.spec.d.ts +1 -0
  115. package/dist/generators/__tests__/router.generator.spec.js +172 -0
  116. package/dist/generators/__tests__/router.generator.spec.js.map +1 -0
  117. package/dist/generators/__tests__/trpc.generator.spec.d.ts +1 -0
  118. package/dist/generators/__tests__/trpc.generator.spec.js +170 -0
  119. package/dist/generators/__tests__/trpc.generator.spec.js.map +1 -0
  120. package/dist/generators/context.generator.d.ts +9 -0
  121. package/dist/generators/context.generator.js +89 -0
  122. package/dist/generators/context.generator.js.map +1 -0
  123. package/dist/generators/context.handler.d.ts +9 -0
  124. package/dist/generators/context.handler.js +89 -0
  125. package/dist/generators/context.handler.js.map +1 -0
  126. package/dist/generators/decorator.generator.d.ts +7 -0
  127. package/dist/generators/decorator.generator.js +74 -0
  128. package/dist/generators/decorator.generator.js.map +1 -0
  129. package/dist/generators/decorator.handler.d.ts +11 -0
  130. package/dist/generators/decorator.handler.js +80 -0
  131. package/dist/generators/decorator.handler.js.map +1 -0
  132. package/dist/generators/middleware.generator.d.ts +12 -0
  133. package/dist/generators/middleware.generator.js +108 -0
  134. package/dist/generators/middleware.generator.js.map +1 -0
  135. package/dist/generators/middleware.handler.d.ts +12 -0
  136. package/dist/generators/middleware.handler.js +105 -0
  137. package/dist/generators/middleware.handler.js.map +1 -0
  138. package/dist/generators/router.generator.d.ts +9 -0
  139. package/dist/generators/router.generator.js +84 -0
  140. package/dist/generators/router.generator.js.map +1 -0
  141. package/dist/generators/serializer.handler.d.ts +11 -0
  142. package/dist/generators/serializer.handler.js +87 -0
  143. package/dist/generators/serializer.handler.js.map +1 -0
  144. package/dist/generators/trpc.generator.d.ts +19 -0
  145. package/dist/generators/trpc.generator.js +139 -0
  146. package/dist/generators/trpc.generator.js.map +1 -0
  147. package/dist/generators/types/index.ts +1 -0
  148. package/dist/handlers/context.handler.d.ts +9 -0
  149. package/dist/handlers/context.handler.js +89 -0
  150. package/dist/handlers/context.handler.js.map +1 -0
  151. package/dist/handlers/decorator.handler.d.ts +11 -0
  152. package/dist/handlers/decorator.handler.js +80 -0
  153. package/dist/handlers/decorator.handler.js.map +1 -0
  154. package/dist/handlers/middleware.handler.d.ts +12 -0
  155. package/dist/handlers/middleware.handler.js +105 -0
  156. package/dist/handlers/middleware.handler.js.map +1 -0
  157. package/dist/handlers/serializer.handler.d.ts +11 -0
  158. package/dist/handlers/serializer.handler.js +87 -0
  159. package/dist/handlers/serializer.handler.js.map +1 -0
  160. package/dist/index.d.ts +3 -0
  161. package/dist/index.js +20 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/interfaces/context.interface.d.ts +5 -0
  164. package/dist/interfaces/context.interface.js +3 -0
  165. package/dist/interfaces/context.interface.js.map +1 -0
  166. package/dist/interfaces/factory.interface.d.ts +59 -0
  167. package/dist/interfaces/factory.interface.js +13 -0
  168. package/dist/interfaces/factory.interface.js.map +1 -0
  169. package/dist/interfaces/generator.interface.d.ts +21 -0
  170. package/dist/interfaces/generator.interface.js +3 -0
  171. package/dist/interfaces/generator.interface.js.map +1 -0
  172. package/dist/interfaces/index.d.ts +4 -0
  173. package/dist/interfaces/index.js +21 -0
  174. package/dist/interfaces/index.js.map +1 -0
  175. package/dist/interfaces/middleware.interface.d.ts +19 -0
  176. package/dist/interfaces/middleware.interface.js +3 -0
  177. package/dist/interfaces/middleware.interface.js.map +1 -0
  178. package/dist/interfaces/module-options.interface.d.ts +14 -0
  179. package/dist/interfaces/module-options.interface.js +3 -0
  180. package/dist/interfaces/module-options.interface.js.map +1 -0
  181. package/dist/interfaces/procedure-options.interface.d.ts +7 -0
  182. package/dist/interfaces/procedure-options.interface.js +3 -0
  183. package/dist/interfaces/procedure-options.interface.js.map +1 -0
  184. package/dist/trpc.constants.d.ts +7 -0
  185. package/dist/trpc.constants.js +11 -0
  186. package/dist/trpc.constants.js.map +1 -0
  187. package/dist/trpc.driver.d.ts +14 -0
  188. package/dist/trpc.driver.js +85 -0
  189. package/dist/trpc.driver.js.map +1 -0
  190. package/dist/trpc.enum.d.ts +4 -0
  191. package/dist/trpc.enum.js +9 -0
  192. package/dist/trpc.enum.js.map +1 -0
  193. package/dist/trpc.generator.d.ts +24 -0
  194. package/dist/trpc.generator.js +114 -0
  195. package/dist/trpc.generator.js.map +1 -0
  196. package/dist/trpc.module.d.ts +10 -0
  197. package/dist/trpc.module.js +93 -0
  198. package/dist/trpc.module.js.map +1 -0
  199. package/dist/types/index.ts +5 -0
  200. package/dist/utils/__tests__/file.util.spec.d.ts +1 -0
  201. package/dist/utils/__tests__/file.util.spec.js +73 -0
  202. package/dist/utils/__tests__/file.util.spec.js.map +1 -0
  203. package/dist/utils/file.util.d.ts +5 -0
  204. package/dist/utils/file.util.js +61 -0
  205. package/dist/utils/file.util.js.map +1 -0
  206. package/dist/utils/type.util.d.ts +5 -0
  207. package/dist/utils/type.util.js +72 -0
  208. package/dist/utils/type.util.js.map +1 -0
  209. package/dist/utils/validate-each.util.d.ts +8 -0
  210. package/dist/utils/validate-each.util.js +26 -0
  211. package/dist/utils/validate-each.util.js.map +1 -0
  212. package/package.json +103 -0
@@ -0,0 +1,5 @@
1
+ import type { CreateExpressContextOptions } from '@trpc/server/adapters/express';
2
+ export type ExpressContextOptions = CreateExpressContextOptions;
3
+ export interface TRPCContext {
4
+ create(opts: ExpressContextOptions): Record<string, unknown> | Promise<Record<string, unknown>>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.interface.js","sourceRoot":"","sources":["../../src/interfaces/context.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import type { ProcedureRouterRecord, AnyRouter, AnyRootConfig, ProcedureBuilder, ProcedureType, Router, ProcedureParams } from '@trpc/server';
2
+ import type { RouterDef } from '@trpc/server/dist/core/router';
3
+ import type { ZodSchema, ZodType, ZodTypeDef } from 'zod';
4
+ import type { TRPCMiddleware } from './middleware.interface';
5
+ import type { Class } from 'type-fest';
6
+ export declare enum ProcedureParamDecoratorType {
7
+ Options = "options",
8
+ Ctx = "ctx",
9
+ Input = "input",
10
+ RawInput = "rawInput",
11
+ Type = "type",
12
+ Path = "path"
13
+ }
14
+ export type ProcedureImplementation = ({ input, output, }: {
15
+ input?: ZodType<any, ZodTypeDef, any>;
16
+ output?: ZodType<any, ZodTypeDef, any>;
17
+ }) => any;
18
+ interface ProcedureParamDecoratorBase {
19
+ type: ProcedureParamDecoratorType;
20
+ index: number;
21
+ }
22
+ export type ProcedureInputParamDecorator = ProcedureParamDecoratorBase & {
23
+ type: ProcedureParamDecoratorType.Input;
24
+ key?: string;
25
+ };
26
+ export type ProcedureParamDecorator = ProcedureParamDecoratorBase | ProcedureInputParamDecorator;
27
+ export interface ProcedureFactoryMetadata {
28
+ type: ProcedureType;
29
+ input: ZodSchema | undefined;
30
+ output: ZodSchema | undefined;
31
+ middlewares?: Class<TRPCMiddleware>;
32
+ name: string;
33
+ implementation: ProcedureImplementation;
34
+ params: Array<ProcedureParamDecorator> | undefined;
35
+ }
36
+ export interface CustomProcedureFactoryMetadata {
37
+ name: string;
38
+ instance: unknown;
39
+ }
40
+ export interface RouterInstance {
41
+ name: string;
42
+ instance: unknown;
43
+ alias?: string;
44
+ middlewares?: TRPCMiddleware;
45
+ }
46
+ export interface RoutersFactoryMetadata {
47
+ name: string;
48
+ alias?: string;
49
+ instance: RouterInstance;
50
+ procedures: Array<ProcedureFactoryMetadata>;
51
+ }
52
+ export type TRPCRouter = <TProcRouterRecord extends ProcedureRouterRecord>(procedures: TProcRouterRecord) => AnyRouter;
53
+ export type TRPCMergeRoutes = <TRouters extends AnyRouter[]>(...routerList_0: TRouters) => Router<RouterDef<AnyRootConfig, {}, {
54
+ queries: {};
55
+ mutations: {};
56
+ subscriptions: {};
57
+ }>>;
58
+ export type TRPCPublicProcedure = ProcedureBuilder<ProcedureParams>;
59
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcedureParamDecoratorType = void 0;
4
+ var ProcedureParamDecoratorType;
5
+ (function (ProcedureParamDecoratorType) {
6
+ ProcedureParamDecoratorType["Options"] = "options";
7
+ ProcedureParamDecoratorType["Ctx"] = "ctx";
8
+ ProcedureParamDecoratorType["Input"] = "input";
9
+ ProcedureParamDecoratorType["RawInput"] = "rawInput";
10
+ ProcedureParamDecoratorType["Type"] = "type";
11
+ ProcedureParamDecoratorType["Path"] = "path";
12
+ })(ProcedureParamDecoratorType = exports.ProcedureParamDecoratorType || (exports.ProcedureParamDecoratorType = {}));
13
+ //# sourceMappingURL=factory.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.interface.js","sourceRoot":"","sources":["../../src/interfaces/factory.interface.ts"],"names":[],"mappings":";;;AAiBA,IAAY,2BAOX;AAPD,WAAY,2BAA2B;IACrC,kDAAmB,CAAA;IACnB,0CAAW,CAAA;IACX,8CAAe,CAAA;IACf,oDAAqB,CAAA;IACrB,4CAAa,CAAA;IACb,4CAAa,CAAA;AACf,CAAC,EAPW,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAOtC"}
@@ -0,0 +1,21 @@
1
+ import { Expression, SourceFile } from 'ts-morph';
2
+ export interface RouterGeneratorMetadata {
3
+ name: string;
4
+ alias?: string;
5
+ procedures: Array<ProcedureGeneratorMetadata>;
6
+ }
7
+ export interface ProcedureGeneratorMetadata {
8
+ name: string;
9
+ decorators: Array<DecoratorGeneratorMetadata>;
10
+ }
11
+ export interface DecoratorGeneratorMetadata {
12
+ name: 'Query' | 'Mutation';
13
+ arguments: {
14
+ input?: string;
15
+ output?: string;
16
+ };
17
+ }
18
+ export interface SourceFileImportsMap {
19
+ initializer: Expression;
20
+ sourceFile: SourceFile;
21
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generator.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.interface.js","sourceRoot":"","sources":["../../src/interfaces/generator.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './module-options.interface';
2
+ export * from './middleware.interface';
3
+ export * from './procedure-options.interface';
4
+ export * from './context.interface';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./module-options.interface"), exports);
18
+ __exportStar(require("./middleware.interface"), exports);
19
+ __exportStar(require("./procedure-options.interface"), exports);
20
+ __exportStar(require("./context.interface"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,yDAAuC;AACvC,gEAA8C;AAC9C,sDAAoC"}
@@ -0,0 +1,19 @@
1
+ import type { ProcedureType, ProcedureParams } from '@trpc/server';
2
+ import type { MiddlewareResult } from '@trpc/server/dist/core/middleware';
3
+ export type MiddlewareResponse = Promise<MiddlewareResult<ProcedureParams>> | (<$Context>(opts: {
4
+ ctx: $Context;
5
+ }) => Promise<MiddlewareResult<ProcedureParams>>);
6
+ export type MiddlewareOptions<TContext extends object = object> = {
7
+ ctx: TContext;
8
+ type: ProcedureType;
9
+ path: string;
10
+ input: unknown;
11
+ rawInput: unknown;
12
+ meta: unknown;
13
+ next: (opts?: {
14
+ ctx: Record<string, unknown>;
15
+ }) => Promise<MiddlewareResult<ProcedureParams>>;
16
+ };
17
+ export interface TRPCMiddleware {
18
+ use(opts: MiddlewareOptions): MiddlewareResponse | Promise<MiddlewareResponse>;
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=middleware.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.interface.js","sourceRoot":"","sources":["../../src/interfaces/middleware.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { RootConfigTypes } from '@trpc/server/dist/core/internals/config';
2
+ import { ErrorFormatter } from '@trpc/server/dist/error/formatter';
3
+ import { TRPCErrorShape } from '@trpc/server/dist/rpc';
4
+ import { TRPCContext } from './context.interface';
5
+ import type { Class } from 'type-fest';
6
+ export interface TRPCModuleOptions {
7
+ autoSchemaFile?: string;
8
+ basePath?: string;
9
+ context?: Class<TRPCContext>;
10
+ errorShape?: ErrorFormatter<RootConfigTypes['ctx'], TRPCErrorShape<number> & {
11
+ [key: string]: any;
12
+ }>;
13
+ transformer?: RootConfigTypes['transformer'];
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/module-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ProcedureParams } from '@trpc/server';
2
+ import { ResolveOptions } from '@trpc/server/dist/core/internals/utils';
3
+ export type ProcedureOptions = ResolveOptions<ProcedureParams> & {
4
+ type: string;
5
+ path: string;
6
+ rawInput: string;
7
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=procedure-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedure-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/procedure-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export declare const TRPC_MODULE_OPTIONS = "TrpcModuleOptions";
2
+ export declare const ROUTER_METADATA_KEY: unique symbol;
3
+ export declare const PROCEDURE_TYPE_KEY: unique symbol;
4
+ export declare const PROCEDURE_METADATA_KEY: unique symbol;
5
+ export declare const PROCEDURE_PARAM_METADATA_KEY: unique symbol;
6
+ export declare const MIDDLEWARE_KEY: unique symbol;
7
+ export declare const LOGGER_CONTEXT = "TRPC";
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LOGGER_CONTEXT = exports.MIDDLEWARE_KEY = exports.PROCEDURE_PARAM_METADATA_KEY = exports.PROCEDURE_METADATA_KEY = exports.PROCEDURE_TYPE_KEY = exports.ROUTER_METADATA_KEY = exports.TRPC_MODULE_OPTIONS = void 0;
4
+ exports.TRPC_MODULE_OPTIONS = 'TrpcModuleOptions';
5
+ exports.ROUTER_METADATA_KEY = Symbol('trpc:router_type');
6
+ exports.PROCEDURE_TYPE_KEY = Symbol('trpc:procedure_type');
7
+ exports.PROCEDURE_METADATA_KEY = Symbol('trpc:procedure_metadata');
8
+ exports.PROCEDURE_PARAM_METADATA_KEY = Symbol('trpc:procedure_param_metadata');
9
+ exports.MIDDLEWARE_KEY = Symbol('trpc:middleware_key');
10
+ exports.LOGGER_CONTEXT = 'TRPC';
11
+ //# sourceMappingURL=trpc.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.constants.js","sourceRoot":"","sources":["../src/trpc.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AAE1C,QAAA,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEjD,QAAA,kBAAkB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACnD,QAAA,sBAAsB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAE3D,QAAA,4BAA4B,GAAG,MAAM,CAChD,+BAA+B,CAChC,CAAC;AAEW,QAAA,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAG/C,QAAA,cAAc,GAAG,MAAM,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ConsoleLogger } from '@nestjs/common';
2
+ import { HttpAdapterHost, ModuleRef } from '@nestjs/core';
3
+ import { TRPCModuleOptions } from './interfaces';
4
+ import { TRPCFactory } from './factories/trpc.factory';
5
+ import { TRPCGenerator } from './generators/trpc.generator';
6
+ export declare class TRPCDriver<TOptions extends Record<string, any> = TRPCModuleOptions> {
7
+ private moduleRef;
8
+ protected readonly httpAdapterHost: HttpAdapterHost;
9
+ protected readonly trpcFactory: TRPCFactory;
10
+ protected readonly trpcGenerator: TRPCGenerator;
11
+ protected readonly consoleLogger: ConsoleLogger;
12
+ constructor(moduleRef: ModuleRef);
13
+ start(options: TRPCModuleOptions): Promise<void>;
14
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.TRPCDriver = void 0;
22
+ const common_1 = require("@nestjs/common");
23
+ const core_1 = require("@nestjs/core");
24
+ const server_1 = require("@trpc/server");
25
+ const trpcExpress = require("@trpc/server/adapters/express");
26
+ const trpc_factory_1 = require("./factories/trpc.factory");
27
+ const trpc_generator_1 = require("./generators/trpc.generator");
28
+ let TRPCDriver = class TRPCDriver {
29
+ constructor(moduleRef) {
30
+ this.moduleRef = moduleRef;
31
+ }
32
+ start(options) {
33
+ var _a;
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const { httpAdapter } = this.httpAdapterHost;
36
+ const platformName = httpAdapter.getType();
37
+ if (platformName !== 'express') {
38
+ throw new Error(`No support for current HttpAdapter: ${platformName}`);
39
+ }
40
+ const app = httpAdapter.getInstance();
41
+ const { procedure, router } = server_1.initTRPC.context().create(Object.assign(Object.assign({}, (options.transformer != null
42
+ ? { transformer: options.transformer }
43
+ : {})), (options.errorShape != null ? { errorShape: options.errorShape } : {})));
44
+ const appRouter = this.trpcFactory.serializeAppRoutes(router, procedure);
45
+ const contextClass = options.context;
46
+ const contextInstance = contextClass != null ? this.moduleRef.get(contextClass, {
47
+ strict: false,
48
+ }) : null;
49
+ app.use((_a = options.basePath) !== null && _a !== void 0 ? _a : '/trpc', trpcExpress.createExpressMiddleware(Object.assign({ router: appRouter }, (options.context != null && contextInstance != null
50
+ ? {
51
+ createContext: (opts) => contextInstance.create(opts),
52
+ }
53
+ : {}))));
54
+ if (options.autoSchemaFile != null) {
55
+ yield this.trpcGenerator.generateSchemaFile(options.autoSchemaFile);
56
+ yield this.trpcGenerator.generateHelpersFile(options.context);
57
+ }
58
+ else {
59
+ this.consoleLogger.log('Skipping appRouter types generation - `autoSchemaFile` was not provided.', 'TRPC Driver');
60
+ }
61
+ });
62
+ }
63
+ };
64
+ __decorate([
65
+ (0, common_1.Inject)(core_1.HttpAdapterHost),
66
+ __metadata("design:type", core_1.HttpAdapterHost)
67
+ ], TRPCDriver.prototype, "httpAdapterHost", void 0);
68
+ __decorate([
69
+ (0, common_1.Inject)(trpc_factory_1.TRPCFactory),
70
+ __metadata("design:type", trpc_factory_1.TRPCFactory)
71
+ ], TRPCDriver.prototype, "trpcFactory", void 0);
72
+ __decorate([
73
+ (0, common_1.Inject)(trpc_generator_1.TRPCGenerator),
74
+ __metadata("design:type", trpc_generator_1.TRPCGenerator)
75
+ ], TRPCDriver.prototype, "trpcGenerator", void 0);
76
+ __decorate([
77
+ (0, common_1.Inject)(common_1.ConsoleLogger),
78
+ __metadata("design:type", common_1.ConsoleLogger)
79
+ ], TRPCDriver.prototype, "consoleLogger", void 0);
80
+ TRPCDriver = __decorate([
81
+ (0, common_1.Injectable)(),
82
+ __metadata("design:paramtypes", [core_1.ModuleRef])
83
+ ], TRPCDriver);
84
+ exports.TRPCDriver = TRPCDriver;
85
+ //# sourceMappingURL=trpc.driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.driver.js","sourceRoot":"","sources":["../src/trpc.driver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAAyE;AACzE,uCAA6E;AAG7E,yCAAmD;AACnD,6DAA6D;AAC7D,2DAAuD;AACvD,gEAA4D;AAG5D,IACa,UAAU,GADvB,MACa,UAAU;IAerB,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE/B,KAAK,CAAC,OAA0B;;;YAC3C,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;YAE3C,IAAI,YAAY,KAAK,SAAS,EAAE;gBAE9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAC;aACxE;YAED,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,EAAsB,CAAC;YAG1D,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,iBAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,iCAClD,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI;gBAC7B,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC,GACJ,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACzE,CAAC;YAEH,MAAM,SAAS,GAAc,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAC9D,MAAM,EACN,SAAS,CACV,CAAC;YAEF,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;YACrC,MAAM,eAAe,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAC/D,YAAY,EACZ;gBACE,MAAM,EAAE,KAAK;aACd,CACF,CAAC,CAAC,CAAC,IAAI,CAAC;YAET,GAAG,CAAC,GAAG,CACL,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,EAC3B,WAAW,CAAC,uBAAuB,iBACjC,MAAM,EAAE,SAAS,IACd,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,eAAe,IAAI,IAAI;gBACpD,CAAC,CAAC;oBACE,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;iBACtD;gBACH,CAAC,CAAC,EAAE,CAAC,EACP,CACH,CAAC;YAEF,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;gBAClC,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAC/D;iBAAM;gBACL,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,0EAA0E,EAC1E,aAAa,CACd,CAAC;aACH;;KACF;CACF,CAAA;AAnEoB;IADlB,IAAA,eAAM,EAAC,sBAAe,CAAC;8BACa,sBAAe;mDAAC;AAGlC;IADlB,IAAA,eAAM,EAAC,0BAAW,CAAC;8BACa,0BAAW;+CAAC;AAG1B;IADlB,IAAA,eAAM,EAAC,8BAAa,CAAC;8BACa,8BAAa;iDAAC;AAG9B;IADlB,IAAA,eAAM,EAAC,sBAAa,CAAC;8BACa,sBAAa;iDAAC;AAbtC,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAgBoB,gBAAS;GAf7B,UAAU,CAuEtB;AAvEY,gCAAU"}
@@ -0,0 +1,4 @@
1
+ export declare enum ProcedureType {
2
+ Query = "Query",
3
+ Mutation = "Mutation"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcedureType = void 0;
4
+ var ProcedureType;
5
+ (function (ProcedureType) {
6
+ ProcedureType["Query"] = "Query";
7
+ ProcedureType["Mutation"] = "Mutation";
8
+ })(ProcedureType = exports.ProcedureType || (exports.ProcedureType = {}));
9
+ //# sourceMappingURL=trpc.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.enum.js","sourceRoot":"","sources":["../src/trpc.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;AACvB,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB"}
@@ -0,0 +1,24 @@
1
+ import { ConsoleLogger, OnModuleInit } from '@nestjs/common';
2
+ import { RoutersFactoryMetadata } from './interfaces/factory.interface';
3
+ import { SerializerHandler } from './generators/serializer.handler';
4
+ import { TRPCContext, TRPCMiddleware } from './interfaces';
5
+ import { MiddlewareHandler } from './generators/middleware.handler';
6
+ import type { Class } from 'type-fest';
7
+ import { ContextHandler } from './generators/context.handler';
8
+ export declare class TRPCGenerator implements OnModuleInit {
9
+ private readonly consoleLogger;
10
+ private readonly middlewareHandler;
11
+ private readonly contextHandler;
12
+ private readonly serializerHandler;
13
+ private project;
14
+ private readonly APP_ROUTER_OUTPUT_FILE;
15
+ private readonly HELPER_TYPES_OUTPUT_FILE;
16
+ private readonly HELPER_TYPES_OUTPUT_PATH;
17
+ constructor(consoleLogger: ConsoleLogger, middlewareHandler: MiddlewareHandler, contextHandler: ContextHandler, serializerHandler: SerializerHandler);
18
+ onModuleInit(): void;
19
+ generateSchemaFile(routers: RoutersFactoryMetadata[], outputDirPath: string): Promise<void>;
20
+ generateHelpersFile(resources: {
21
+ middlewares: Array<Class<TRPCMiddleware>>;
22
+ context?: Class<TRPCContext>;
23
+ }): Promise<void>;
24
+ }
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.TRPCGenerator = void 0;
25
+ const path = require("node:path");
26
+ const common_1 = require("@nestjs/common");
27
+ const ts_morph_1 = require("ts-morph");
28
+ const file_util_1 = require("./utils/file.util");
29
+ const serializer_handler_1 = require("./generators/serializer.handler");
30
+ const middleware_handler_1 = require("./generators/middleware.handler");
31
+ const context_handler_1 = require("./generators/context.handler");
32
+ let TRPCGenerator = class TRPCGenerator {
33
+ constructor(consoleLogger, middlewareHandler, contextHandler, serializerHandler) {
34
+ this.consoleLogger = consoleLogger;
35
+ this.middlewareHandler = middlewareHandler;
36
+ this.contextHandler = contextHandler;
37
+ this.serializerHandler = serializerHandler;
38
+ this.APP_ROUTER_OUTPUT_FILE = 'server.ts';
39
+ this.HELPER_TYPES_OUTPUT_FILE = 'index.ts';
40
+ this.HELPER_TYPES_OUTPUT_PATH = path.join(__dirname, 'types');
41
+ }
42
+ onModuleInit() {
43
+ const defaultCompilerOptions = {
44
+ target: ts_morph_1.ScriptTarget.ES2019,
45
+ module: ts_morph_1.ModuleKind.CommonJS,
46
+ emitDecoratorMetadata: true,
47
+ experimentalDecorators: true,
48
+ esModuleInterop: true,
49
+ };
50
+ this.project = new ts_morph_1.Project({ compilerOptions: defaultCompilerOptions });
51
+ }
52
+ generateSchemaFile(routers, outputDirPath) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ try {
55
+ const appRouterSourceFile = this.project.createSourceFile(path.resolve(outputDirPath, this.APP_ROUTER_OUTPUT_FILE), undefined, { overwrite: true });
56
+ (0, file_util_1.generateStaticDeclaration)(appRouterSourceFile);
57
+ const routersMetadata = yield this.serializerHandler.serializeRouters(routers, this.project);
58
+ const routersStringDeclarations = this.serializerHandler.generateRoutersStringFromMetadata(routersMetadata);
59
+ appRouterSourceFile.addStatements(`
60
+ const appRouter = t.router({${routersStringDeclarations}});
61
+ export type AppRouter = typeof appRouter;
62
+ `);
63
+ yield (0, file_util_1.saveOrOverrideFile)(appRouterSourceFile);
64
+ this.consoleLogger.log(`AppRouter has been updated successfully at "${outputDirPath}/${this.APP_ROUTER_OUTPUT_FILE}".`, 'TRPC Generator');
65
+ }
66
+ catch (e) {
67
+ console.error(e);
68
+ this.consoleLogger.warn('TRPC Generator encountered an error.', e);
69
+ }
70
+ });
71
+ }
72
+ generateHelpersFile(resources) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ try {
75
+ const { middlewares, context } = resources;
76
+ const helperTypesSourceFile = this.project.createSourceFile(path.resolve(this.HELPER_TYPES_OUTPUT_PATH, this.HELPER_TYPES_OUTPUT_FILE), undefined, { overwrite: true });
77
+ const contextType = yield this.contextHandler.getContextInterface(context, this.project);
78
+ helperTypesSourceFile.addTypeAlias({
79
+ isExported: true,
80
+ name: 'Context',
81
+ type: contextType !== null && contextType !== void 0 ? contextType : '{}',
82
+ });
83
+ for (const middleware of middlewares) {
84
+ const middlewareInterface = yield this.middlewareHandler.getMiddlewareInterface(middleware, this.project);
85
+ helperTypesSourceFile.addInterface({
86
+ isExported: true,
87
+ name: `${middlewareInterface.name}Context`,
88
+ extends: ['Context'],
89
+ properties: middlewareInterface.properties,
90
+ });
91
+ }
92
+ yield (0, file_util_1.saveOrOverrideFile)(helperTypesSourceFile);
93
+ this.consoleLogger.log(`Helper types has been updated successfully at "nestjs-trpc/types".`, 'TRPC Generator');
94
+ }
95
+ catch (e) {
96
+ console.error(e);
97
+ this.consoleLogger.warn('TRPC Generator encountered an error.', e);
98
+ }
99
+ });
100
+ }
101
+ };
102
+ TRPCGenerator = __decorate([
103
+ (0, common_1.Injectable)(),
104
+ __param(0, (0, common_1.Inject)(common_1.ConsoleLogger)),
105
+ __param(1, (0, common_1.Inject)(middleware_handler_1.MiddlewareHandler)),
106
+ __param(2, (0, common_1.Inject)(context_handler_1.ContextHandler)),
107
+ __param(3, (0, common_1.Inject)(serializer_handler_1.SerializerHandler)),
108
+ __metadata("design:paramtypes", [common_1.ConsoleLogger,
109
+ middleware_handler_1.MiddlewareHandler,
110
+ context_handler_1.ContextHandler,
111
+ serializer_handler_1.SerializerHandler])
112
+ ], TRPCGenerator);
113
+ exports.TRPCGenerator = TRPCGenerator;
114
+ //# sourceMappingURL=trpc.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.generator.js","sourceRoot":"","sources":["../src/trpc.generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { DynamicModule, OnModuleInit } from '@nestjs/common/interfaces';
2
+ import { TRPCModuleOptions } from './interfaces';
3
+ export declare class TRPCModule implements OnModuleInit {
4
+ private readonly options;
5
+ private readonly consoleLogger;
6
+ private readonly httpAdapterHost;
7
+ private readonly trpcDriver;
8
+ static forRoot<TOptions extends Record<string, any> = TRPCModuleOptions>(options?: TOptions): DynamicModule;
9
+ onModuleInit(): Promise<void>;
10
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ var TRPCModule_1;
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.TRPCModule = void 0;
23
+ const common_1 = require("@nestjs/common");
24
+ const core_1 = require("@nestjs/core");
25
+ const trpc_constants_1 = require("./trpc.constants");
26
+ const trpc_driver_1 = require("./trpc.driver");
27
+ const trpc_factory_1 = require("./factories/trpc.factory");
28
+ const router_factory_1 = require("./factories/router.factory");
29
+ const procedure_factory_1 = require("./factories/procedure.factory");
30
+ const middleware_factory_1 = require("./factories/middleware.factory");
31
+ const trpc_generator_1 = require("./generators/trpc.generator");
32
+ const decorator_generator_1 = require("./generators/decorator.generator");
33
+ const router_generator_1 = require("./generators/router.generator");
34
+ const middleware_generator_1 = require("./generators/middleware.generator");
35
+ const context_generator_1 = require("./generators/context.generator");
36
+ let TRPCModule = TRPCModule_1 = class TRPCModule {
37
+ static forRoot(options = {}) {
38
+ return {
39
+ module: TRPCModule_1,
40
+ providers: [{ provide: trpc_constants_1.TRPC_MODULE_OPTIONS, useValue: options }],
41
+ };
42
+ }
43
+ onModuleInit() {
44
+ var _a;
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const httpAdapter = (_a = this.httpAdapterHost) === null || _a === void 0 ? void 0 : _a.httpAdapter;
47
+ if (!httpAdapter) {
48
+ return;
49
+ }
50
+ this.consoleLogger.setContext(trpc_constants_1.LOGGER_CONTEXT);
51
+ yield this.trpcDriver.start(this.options);
52
+ this.consoleLogger.log('Server has been initialized successfully.', 'TRPC Server');
53
+ });
54
+ }
55
+ };
56
+ __decorate([
57
+ (0, common_1.Inject)(trpc_constants_1.TRPC_MODULE_OPTIONS),
58
+ __metadata("design:type", Object)
59
+ ], TRPCModule.prototype, "options", void 0);
60
+ __decorate([
61
+ (0, common_1.Inject)(common_1.ConsoleLogger),
62
+ __metadata("design:type", common_1.ConsoleLogger)
63
+ ], TRPCModule.prototype, "consoleLogger", void 0);
64
+ __decorate([
65
+ (0, common_1.Inject)(core_1.HttpAdapterHost),
66
+ __metadata("design:type", core_1.HttpAdapterHost)
67
+ ], TRPCModule.prototype, "httpAdapterHost", void 0);
68
+ __decorate([
69
+ (0, common_1.Inject)(trpc_driver_1.TRPCDriver),
70
+ __metadata("design:type", trpc_driver_1.TRPCDriver)
71
+ ], TRPCModule.prototype, "trpcDriver", void 0);
72
+ TRPCModule = TRPCModule_1 = __decorate([
73
+ (0, common_1.Module)({
74
+ imports: [],
75
+ providers: [
76
+ common_1.ConsoleLogger,
77
+ trpc_driver_1.TRPCDriver,
78
+ trpc_factory_1.TRPCFactory,
79
+ core_1.MetadataScanner,
80
+ router_factory_1.RouterFactory,
81
+ procedure_factory_1.ProcedureFactory,
82
+ middleware_factory_1.MiddlewareFactory,
83
+ decorator_generator_1.DecoratorGenerator,
84
+ middleware_generator_1.MiddlewareGenerator,
85
+ context_generator_1.ContextGenerator,
86
+ router_generator_1.RouterGenerator,
87
+ trpc_generator_1.TRPCGenerator,
88
+ ],
89
+ exports: [],
90
+ })
91
+ ], TRPCModule);
92
+ exports.TRPCModule = TRPCModule;
93
+ //# sourceMappingURL=trpc.module.js.map