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,19 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { TRPCContext } from '../interfaces';
3
+ import type { Class } from 'type-fest';
4
+ export declare class TRPCGenerator implements OnModuleInit {
5
+ private project;
6
+ private readonly APP_ROUTER_OUTPUT_FILE;
7
+ private readonly HELPER_TYPES_OUTPUT_FILE;
8
+ private readonly HELPER_TYPES_OUTPUT_PATH;
9
+ private readonly consoleLogger;
10
+ private readonly middlewareHandler;
11
+ private readonly contextHandler;
12
+ private readonly serializerHandler;
13
+ private readonly routerFactory;
14
+ private readonly procedureFactory;
15
+ private readonly middlewareFactory;
16
+ onModuleInit(): void;
17
+ generateSchemaFile(outputDirPath: string): Promise<void>;
18
+ generateHelpersFile(context?: Class<TRPCContext>): Promise<void>;
19
+ }
@@ -0,0 +1,139 @@
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.TRPCGenerator = void 0;
22
+ const path = require("node:path");
23
+ const common_1 = require("@nestjs/common");
24
+ const ts_morph_1 = require("ts-morph");
25
+ const file_util_1 = require("../utils/file.util");
26
+ const router_generator_1 = require("./router.generator");
27
+ const middleware_generator_1 = require("./middleware.generator");
28
+ const context_generator_1 = require("./context.generator");
29
+ const router_factory_1 = require("../factories/router.factory");
30
+ const middleware_factory_1 = require("../factories/middleware.factory");
31
+ const procedure_factory_1 = require("../factories/procedure.factory");
32
+ let TRPCGenerator = class TRPCGenerator {
33
+ constructor() {
34
+ this.APP_ROUTER_OUTPUT_FILE = 'server.ts';
35
+ this.HELPER_TYPES_OUTPUT_FILE = 'index.ts';
36
+ this.HELPER_TYPES_OUTPUT_PATH = path.join(__dirname, 'types');
37
+ }
38
+ onModuleInit() {
39
+ const defaultCompilerOptions = {
40
+ target: ts_morph_1.ScriptTarget.ES2019,
41
+ module: ts_morph_1.ModuleKind.CommonJS,
42
+ emitDecoratorMetadata: true,
43
+ experimentalDecorators: true,
44
+ esModuleInterop: true,
45
+ };
46
+ this.project = new ts_morph_1.Project({ compilerOptions: defaultCompilerOptions });
47
+ }
48
+ generateSchemaFile(outputDirPath) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ try {
51
+ const routers = this.routerFactory.getRouters();
52
+ const mappedRoutesAndProcedures = routers.map((route) => {
53
+ const { instance, name, alias } = route;
54
+ const prototype = Object.getPrototypeOf(instance);
55
+ const procedures = this.procedureFactory.getProcedures(instance, prototype);
56
+ return { name, alias, instance: Object.assign({}, route), procedures };
57
+ });
58
+ const appRouterSourceFile = this.project.createSourceFile(path.resolve(outputDirPath, this.APP_ROUTER_OUTPUT_FILE), undefined, { overwrite: true });
59
+ (0, file_util_1.generateStaticDeclaration)(appRouterSourceFile);
60
+ const routersMetadata = yield this.serializerHandler.serializeRouters(mappedRoutesAndProcedures, this.project);
61
+ const routersStringDeclarations = this.serializerHandler.generateRoutersStringFromMetadata(routersMetadata);
62
+ appRouterSourceFile.addStatements(`
63
+ const appRouter = t.router({${routersStringDeclarations}});
64
+ export type AppRouter = typeof appRouter;
65
+ `);
66
+ yield (0, file_util_1.saveOrOverrideFile)(appRouterSourceFile);
67
+ this.consoleLogger.log(`AppRouter has been updated successfully at "${outputDirPath}/${this.APP_ROUTER_OUTPUT_FILE}".`, 'TRPC Generator');
68
+ }
69
+ catch (e) {
70
+ this.consoleLogger.warn('TRPC Generator encountered an error.', e);
71
+ }
72
+ });
73
+ }
74
+ generateHelpersFile(context) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ try {
77
+ const middlewares = this.middlewareFactory.getMiddlewares();
78
+ const helperTypesSourceFile = this.project.createSourceFile(path.resolve(this.HELPER_TYPES_OUTPUT_PATH, this.HELPER_TYPES_OUTPUT_FILE), undefined, { overwrite: true });
79
+ if (context != null) {
80
+ const contextType = yield this.contextHandler.getContextInterface(context, this.project);
81
+ helperTypesSourceFile.addTypeAlias({
82
+ isExported: true,
83
+ name: 'Context',
84
+ type: contextType !== null && contextType !== void 0 ? contextType : '{}',
85
+ });
86
+ }
87
+ for (const middleware of middlewares) {
88
+ const middlewareInterface = yield this.middlewareHandler.getMiddlewareInterface(middleware, this.project);
89
+ if (middlewareInterface != null) {
90
+ helperTypesSourceFile.addInterface({
91
+ isExported: true,
92
+ name: `${middlewareInterface.name}Context`,
93
+ extends: ['Context'],
94
+ properties: middlewareInterface.properties,
95
+ });
96
+ }
97
+ }
98
+ yield (0, file_util_1.saveOrOverrideFile)(helperTypesSourceFile);
99
+ this.consoleLogger.log(`Helper types has been updated successfully at "nestjs-trpc/types".`, 'TRPC Generator');
100
+ }
101
+ catch (e) {
102
+ this.consoleLogger.warn('TRPC Generator encountered an error.', e);
103
+ }
104
+ });
105
+ }
106
+ };
107
+ __decorate([
108
+ (0, common_1.Inject)(common_1.ConsoleLogger),
109
+ __metadata("design:type", common_1.ConsoleLogger)
110
+ ], TRPCGenerator.prototype, "consoleLogger", void 0);
111
+ __decorate([
112
+ (0, common_1.Inject)(middleware_generator_1.MiddlewareGenerator),
113
+ __metadata("design:type", middleware_generator_1.MiddlewareGenerator)
114
+ ], TRPCGenerator.prototype, "middlewareHandler", void 0);
115
+ __decorate([
116
+ (0, common_1.Inject)(context_generator_1.ContextGenerator),
117
+ __metadata("design:type", context_generator_1.ContextGenerator)
118
+ ], TRPCGenerator.prototype, "contextHandler", void 0);
119
+ __decorate([
120
+ (0, common_1.Inject)(router_generator_1.RouterGenerator),
121
+ __metadata("design:type", router_generator_1.RouterGenerator)
122
+ ], TRPCGenerator.prototype, "serializerHandler", void 0);
123
+ __decorate([
124
+ (0, common_1.Inject)(router_factory_1.RouterFactory),
125
+ __metadata("design:type", router_factory_1.RouterFactory)
126
+ ], TRPCGenerator.prototype, "routerFactory", void 0);
127
+ __decorate([
128
+ (0, common_1.Inject)(procedure_factory_1.ProcedureFactory),
129
+ __metadata("design:type", procedure_factory_1.ProcedureFactory)
130
+ ], TRPCGenerator.prototype, "procedureFactory", void 0);
131
+ __decorate([
132
+ (0, common_1.Inject)(middleware_factory_1.MiddlewareFactory),
133
+ __metadata("design:type", middleware_factory_1.MiddlewareFactory)
134
+ ], TRPCGenerator.prototype, "middlewareFactory", void 0);
135
+ TRPCGenerator = __decorate([
136
+ (0, common_1.Injectable)()
137
+ ], TRPCGenerator);
138
+ exports.TRPCGenerator = TRPCGenerator;
139
+ //# sourceMappingURL=trpc.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.generator.js","sourceRoot":"","sources":["../../src/generators/trpc.generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,9 @@
1
+ import { Project } from 'ts-morph';
2
+ import type { TRPCContext } from '../interfaces';
3
+ import type { Class } from 'type-fest';
4
+ export declare class ContextHandler {
5
+ getContextInterface(context: Class<TRPCContext>, project: Project): Promise<string | null>;
6
+ private extractReturnTypeFromCreateMethod;
7
+ private isPromiseType;
8
+ private getClassDeclaration;
9
+ }
@@ -0,0 +1,89 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ContextHandler = void 0;
19
+ const ts_morph_1 = require("ts-morph");
20
+ const common_1 = require("@nestjs/common");
21
+ const func_loc_1 = require("func-loc");
22
+ let ContextHandler = class ContextHandler {
23
+ getContextInterface(context, project) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const className = context === null || context === void 0 ? void 0 : context.name;
26
+ if (!className) {
27
+ return null;
28
+ }
29
+ const contextInstance = new context();
30
+ if (typeof contextInstance.create !== 'function') {
31
+ return null;
32
+ }
33
+ const contextFileLocation = yield (0, func_loc_1.locate)(contextInstance.create, {
34
+ sourceMap: true,
35
+ });
36
+ const contextSourceFile = project.addSourceFileAtPath(contextFileLocation.path);
37
+ const classDeclaration = this.getClassDeclaration(contextSourceFile, context.name);
38
+ if (!classDeclaration) {
39
+ return null;
40
+ }
41
+ const createMethod = classDeclaration.getMethod('create');
42
+ if (!createMethod) {
43
+ return null;
44
+ }
45
+ const ctxType = this.extractReturnTypeFromCreateMethod(createMethod);
46
+ if (!ctxType) {
47
+ return null;
48
+ }
49
+ return ctxType.getText();
50
+ });
51
+ }
52
+ extractReturnTypeFromCreateMethod(createMethod) {
53
+ const body = createMethod.getBody();
54
+ if (!body)
55
+ return null;
56
+ const returnStatement = body
57
+ .getDescendantsOfKind(ts_morph_1.SyntaxKind.ReturnStatement)
58
+ .find((statement) => statement.getExpression() !== undefined);
59
+ if (!returnStatement)
60
+ return null;
61
+ const returnExpression = returnStatement.getExpression();
62
+ if (!returnExpression)
63
+ return null;
64
+ const returnType = returnExpression.getType();
65
+ if (this.isPromiseType(returnType)) {
66
+ const typeArguments = returnType.getTypeArguments();
67
+ return typeArguments.length > 0 ? typeArguments[0] : null;
68
+ }
69
+ return returnType;
70
+ }
71
+ isPromiseType(type) {
72
+ var _a, _b;
73
+ return (((_a = type.getSymbol()) === null || _a === void 0 ? void 0 : _a.getName()) === 'Promise' ||
74
+ ((_b = type.getSymbol()) === null || _b === void 0 ? void 0 : _b.getName()) === '__global.Promise' ||
75
+ type.getText().startsWith('Promise<'));
76
+ }
77
+ getClassDeclaration(sourceFile, className) {
78
+ const classDeclaration = sourceFile.getClass(className);
79
+ if (classDeclaration) {
80
+ return classDeclaration;
81
+ }
82
+ return undefined;
83
+ }
84
+ };
85
+ ContextHandler = __decorate([
86
+ (0, common_1.Injectable)()
87
+ ], ContextHandler);
88
+ exports.ContextHandler = ContextHandler;
89
+ //# sourceMappingURL=context.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.handler.js","sourceRoot":"","sources":["../../src/handlers/context.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Decorator, SourceFile, Project } from 'ts-morph';
2
+ import { DecoratorGeneratorMetadata } from '../interfaces/generator.interface';
3
+ import { ConsoleLogger } from '@nestjs/common';
4
+ import { TRPCModuleOptions } from '../interfaces';
5
+ export declare class DecoratorHandler {
6
+ private readonly consoleLogger;
7
+ private readonly options;
8
+ constructor(consoleLogger: ConsoleLogger, options: TRPCModuleOptions);
9
+ serializeProcedureDecorators(decorators: Decorator[], sourceFile: SourceFile, project: Project): DecoratorGeneratorMetadata[];
10
+ private buildSourceFileImportsMap;
11
+ }
@@ -0,0 +1,80 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DecoratorHandler = void 0;
16
+ const file_util_1 = require("../utils/file.util");
17
+ const common_1 = require("@nestjs/common");
18
+ const path = require("node:path");
19
+ const trpc_constants_1 = require("../trpc.constants");
20
+ let DecoratorHandler = class DecoratorHandler {
21
+ constructor(consoleLogger, options) {
22
+ this.consoleLogger = consoleLogger;
23
+ this.options = options;
24
+ }
25
+ serializeProcedureDecorators(decorators, sourceFile, project) {
26
+ const sourceFileImportsMap = this.buildSourceFileImportsMap(sourceFile, project);
27
+ return decorators.reduce((array, decorator) => {
28
+ const decoratorName = decorator.getName();
29
+ if (decoratorName === 'Query' || decoratorName === 'Mutation') {
30
+ const input = (0, file_util_1.getDecoratorPropertyValue)(decorator, 'input', sourceFile, sourceFileImportsMap);
31
+ const output = (0, file_util_1.getDecoratorPropertyValue)(decorator, 'output', sourceFile, sourceFileImportsMap);
32
+ array.push({
33
+ name: decoratorName,
34
+ arguments: Object.assign(Object.assign({}, (input ? { input } : {})), (output ? { output } : {})),
35
+ });
36
+ }
37
+ else if (decoratorName === 'Middlewares') {
38
+ return array;
39
+ }
40
+ else {
41
+ this.consoleLogger.warn(`Decorator ${decoratorName}, not supported.`);
42
+ }
43
+ return array;
44
+ }, []);
45
+ }
46
+ buildSourceFileImportsMap(sourceFile, project) {
47
+ const sourceFileImportsMap = new Map();
48
+ const importDeclarations = sourceFile.getImportDeclarations();
49
+ for (const importDeclaration of importDeclarations) {
50
+ const namedImports = importDeclaration.getNamedImports();
51
+ for (const namedImport of namedImports) {
52
+ const name = namedImport.getName();
53
+ const moduleSpecifier = importDeclaration.getModuleSpecifierValue();
54
+ const resolvedPath = path.resolve(path.dirname(sourceFile.getFilePath()), moduleSpecifier + '.ts');
55
+ const importedSourceFile = project.addSourceFileAtPathIfExists(resolvedPath);
56
+ if (!importedSourceFile)
57
+ continue;
58
+ const schemaVariable = importedSourceFile.getVariableDeclaration(name);
59
+ if (schemaVariable) {
60
+ const initializer = schemaVariable.getInitializer();
61
+ if (initializer) {
62
+ sourceFileImportsMap.set(name, {
63
+ initializer,
64
+ sourceFile: importedSourceFile,
65
+ });
66
+ }
67
+ }
68
+ }
69
+ }
70
+ return sourceFileImportsMap;
71
+ }
72
+ };
73
+ DecoratorHandler = __decorate([
74
+ (0, common_1.Injectable)(),
75
+ __param(0, (0, common_1.Inject)(common_1.ConsoleLogger)),
76
+ __param(1, (0, common_1.Inject)(trpc_constants_1.TRPC_MODULE_OPTIONS)),
77
+ __metadata("design:paramtypes", [common_1.ConsoleLogger, Object])
78
+ ], DecoratorHandler);
79
+ exports.DecoratorHandler = DecoratorHandler;
80
+ //# sourceMappingURL=decorator.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator.handler.js","sourceRoot":"","sources":["../../src/handlers/decorator.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Project, OptionalKind, PropertySignatureStructure } from 'ts-morph';
2
+ import { TRPCMiddleware } from '../interfaces';
3
+ import type { Class } from 'type-fest';
4
+ export declare class MiddlewareHandler {
5
+ getMiddlewareInterface(middleware: Class<TRPCMiddleware>, project: Project): Promise<{
6
+ name: string;
7
+ properties: Array<OptionalKind<PropertySignatureStructure>>;
8
+ } | null>;
9
+ private extractCtxTypeFromUseMethod;
10
+ private getClassDeclaration;
11
+ private typeToProperties;
12
+ }
@@ -0,0 +1,105 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MiddlewareHandler = void 0;
19
+ const ts_morph_1 = require("ts-morph");
20
+ const common_1 = require("@nestjs/common");
21
+ const func_loc_1 = require("func-loc");
22
+ let MiddlewareHandler = class MiddlewareHandler {
23
+ getMiddlewareInterface(middleware, project) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const className = middleware.name;
26
+ if (!className) {
27
+ return null;
28
+ }
29
+ const middlewareInstance = new middleware();
30
+ if (typeof middlewareInstance.use !== 'function') {
31
+ return null;
32
+ }
33
+ const contextFileLocation = yield (0, func_loc_1.locate)(middlewareInstance.use, {
34
+ sourceMap: true,
35
+ });
36
+ const contextSourceFile = project.addSourceFileAtPath(contextFileLocation.path);
37
+ const classDeclaration = this.getClassDeclaration(contextSourceFile, middleware.name);
38
+ if (!classDeclaration) {
39
+ return null;
40
+ }
41
+ const useMethod = classDeclaration.getMethod('use');
42
+ if (!useMethod) {
43
+ return null;
44
+ }
45
+ const ctxType = this.extractCtxTypeFromUseMethod(useMethod);
46
+ if (!ctxType) {
47
+ return null;
48
+ }
49
+ return {
50
+ name: className,
51
+ properties: this.typeToProperties(ctxType),
52
+ };
53
+ });
54
+ }
55
+ extractCtxTypeFromUseMethod(useMethod) {
56
+ var _a;
57
+ const body = useMethod.getBody();
58
+ if (!body)
59
+ return null;
60
+ const nextCall = body
61
+ .getDescendantsOfKind(ts_morph_1.SyntaxKind.CallExpression)
62
+ .find((call) => {
63
+ const expression = call.getExpression();
64
+ return (ts_morph_1.Node.isPropertyAccessExpression(expression) &&
65
+ expression.getName() === 'next' &&
66
+ ts_morph_1.Node.isIdentifier(expression.getExpression()) &&
67
+ expression.getExpression().getText() === 'opts');
68
+ });
69
+ if (!nextCall)
70
+ return null;
71
+ const nextArg = nextCall.getArguments()[0];
72
+ if (!ts_morph_1.Node.isObjectLiteralExpression(nextArg))
73
+ return null;
74
+ const ctxProperty = nextArg
75
+ .getProperties()
76
+ .find((prop) => ts_morph_1.Node.isPropertyAssignment(prop) && prop.getName() === 'ctx');
77
+ if (!ts_morph_1.Node.isPropertyAssignment(ctxProperty))
78
+ return null;
79
+ return ((_a = ctxProperty.getInitializer()) === null || _a === void 0 ? void 0 : _a.getType()) || null;
80
+ }
81
+ getClassDeclaration(sourceFile, className) {
82
+ const classDeclaration = sourceFile.getClass(className);
83
+ if (classDeclaration) {
84
+ return classDeclaration;
85
+ }
86
+ return undefined;
87
+ }
88
+ typeToProperties(type) {
89
+ const properties = [];
90
+ if (type.isObject()) {
91
+ type.getProperties().forEach((prop) => {
92
+ properties.push({
93
+ name: prop.getName(),
94
+ type: prop.getTypeAtLocation(prop.getValueDeclaration()).getText(),
95
+ });
96
+ });
97
+ }
98
+ return properties;
99
+ }
100
+ };
101
+ MiddlewareHandler = __decorate([
102
+ (0, common_1.Injectable)()
103
+ ], MiddlewareHandler);
104
+ exports.MiddlewareHandler = MiddlewareHandler;
105
+ //# sourceMappingURL=middleware.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.handler.js","sourceRoot":"","sources":["../../src/handlers/middleware.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Project } from 'ts-morph';
2
+ import { RouterGeneratorMetadata } from '../interfaces/generator.interface';
3
+ import { RoutersFactoryMetadata } from '../interfaces/factory.interface';
4
+ import { DecoratorHandler } from './decorator.handler';
5
+ export declare class SerializerHandler {
6
+ private readonly decoratorHandler;
7
+ constructor(decoratorHandler: DecoratorHandler);
8
+ serializeRouters(routers: RoutersFactoryMetadata[], project: Project): Promise<RouterGeneratorMetadata[]>;
9
+ private serializeRouterProcedures;
10
+ generateRoutersStringFromMetadata(routers: RouterGeneratorMetadata[]): string;
11
+ }
@@ -0,0 +1,87 @@
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.SerializerHandler = void 0;
25
+ const func_loc_1 = require("func-loc");
26
+ const decorator_handler_1 = require("./decorator.handler");
27
+ const type_util_1 = require("../utils/type.util");
28
+ const common_1 = require("@nestjs/common");
29
+ const lodash_1 = require("lodash");
30
+ let SerializerHandler = class SerializerHandler {
31
+ constructor(decoratorHandler) {
32
+ this.decoratorHandler = decoratorHandler;
33
+ }
34
+ serializeRouters(routers, project) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ return Promise.all(routers.map((router) => __awaiter(this, void 0, void 0, function* () {
37
+ const proceduresMetadata = yield Promise.all(router.procedures.map((procedure) => __awaiter(this, void 0, void 0, function* () { return this.serializeRouterProcedures(procedure, router.name, project); })));
38
+ return {
39
+ name: router.name,
40
+ alias: router.alias,
41
+ procedures: proceduresMetadata,
42
+ };
43
+ })));
44
+ });
45
+ }
46
+ serializeRouterProcedures(procedure, routerName, project) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const location = yield (0, func_loc_1.locate)(procedure.implementation, {
49
+ sourceMap: true,
50
+ });
51
+ const sourceFile = project.addSourceFileAtPath(location.path);
52
+ const classDeclaration = sourceFile.getClass(routerName);
53
+ if (!classDeclaration) {
54
+ throw new Error(`Could not find router ${routerName}, class declaration.`);
55
+ }
56
+ const methodDeclaration = classDeclaration.getMethod(procedure.name);
57
+ if (!methodDeclaration) {
58
+ throw new Error(`Could not find ${routerName}, method declarations.`);
59
+ }
60
+ const decorators = methodDeclaration.getDecorators();
61
+ if (!decorators) {
62
+ throw new Error(`could not find ${methodDeclaration.getName()}, method decorators.`);
63
+ }
64
+ return {
65
+ name: procedure.name,
66
+ decorators: this.decoratorHandler.serializeProcedureDecorators(decorators, sourceFile, project),
67
+ };
68
+ });
69
+ }
70
+ generateRoutersStringFromMetadata(routers) {
71
+ return routers
72
+ .map((router) => {
73
+ const { name, procedures, alias } = router;
74
+ return `${alias !== null && alias !== void 0 ? alias : (0, lodash_1.camelCase)(name)}: { ${procedures
75
+ .map(type_util_1.generateProcedureString)
76
+ .join(',\n')} }`;
77
+ })
78
+ .join(',\n');
79
+ }
80
+ };
81
+ SerializerHandler = __decorate([
82
+ (0, common_1.Injectable)(),
83
+ __param(0, (0, common_1.Inject)(decorator_handler_1.DecoratorHandler)),
84
+ __metadata("design:paramtypes", [decorator_handler_1.DecoratorHandler])
85
+ ], SerializerHandler);
86
+ exports.SerializerHandler = SerializerHandler;
87
+ //# sourceMappingURL=serializer.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.handler.js","sourceRoot":"","sources":["../../src/handlers/serializer.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAkC;AAUlC,2DAAuD;AACvD,kDAA6D;AAC7D,2CAAoD;AACpD,mCAAmC;AAEnC,IACa,iBAAiB,GAD9B,MACa,iBAAiB;IAC5B,YAEmB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAClD,CAAC;IAES,gBAAgB,CAC3B,OAAiC,EACjC,OAAgB;;YAEhB,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,CAAO,MAAM,EAAE,EAAE;gBAC3B,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAO,SAAS,EAAE,EAAE,gDACxC,OAAA,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA,GAAA,CAChE,CACF,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,kBAAkB;iBAC/B,CAAC;YACJ,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEa,yBAAyB,CACrC,SAAmC,EACnC,UAAkB,EAClB,OAAgB;;YAEhB,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAM,EAAC,SAAS,CAAC,cAAc,EAAE;gBACtD,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEzD,IAAI,CAAC,gBAAgB,EAAE;gBACrB,MAAM,IAAI,KAAK,CACb,yBAAyB,UAAU,sBAAsB,CAC1D,CAAC;aACH;YAED,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAErE,IAAI,CAAC,iBAAiB,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,wBAAwB,CAAC,CAAC;aACvE;YAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAErD,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,KAAK,CACb,kBAAkB,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,CACpE,CAAC;aACH;YAED,OAAO;gBACL,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAC5D,UAAU,EACV,UAAU,EACV,OAAO,CACR;aACF,CAAC;QACJ,CAAC;KAAA;IAEM,iCAAiC,CACtC,OAAkC;QAElC,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YAC3C,OAAO,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAA,kBAAS,EAAC,IAAI,CAAC,OAAO,UAAU;iBAChD,GAAG,CAAC,mCAAuB,CAAC;iBAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC;aACD,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;CACF,CAAA;AAhFY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,oCAAgB,CAAC,CAAA;qCACU,oCAAgB;GAH1C,iBAAiB,CAgF7B;AAhFY,8CAAiB"}
@@ -0,0 +1,3 @@
1
+ export * from './trpc.module';
2
+ export * from './interfaces';
3
+ export * from './decorators';
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
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("./trpc.module"), exports);
18
+ __exportStar(require("./interfaces"), exports);
19
+ __exportStar(require("./decorators"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B"}