@creator.co/wapi 1.7.1-alpha3 → 1.7.1-alpha4

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 (73) hide show
  1. package/dist/package-lock.json +2 -2
  2. package/dist/package.json +1 -1
  3. package/package.json +1 -1
  4. package/coverage/clover.xml +0 -1088
  5. package/coverage/coverage/coverage.txt +0 -40
  6. package/coverage/coverage-final.json +0 -37
  7. package/coverage/coverage-summary.json +0 -38
  8. package/coverage/coverage.txt +0 -59
  9. package/coverage/lcov-report/base.css +0 -224
  10. package/coverage/lcov-report/block-navigation.js +0 -87
  11. package/coverage/lcov-report/favicon.png +0 -0
  12. package/coverage/lcov-report/index.html +0 -371
  13. package/coverage/lcov-report/prettify.css +0 -1
  14. package/coverage/lcov-report/prettify.js +0 -2
  15. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  16. package/coverage/lcov-report/sorter.js +0 -196
  17. package/coverage/lcov-report/src/API/Request.ts.html +0 -727
  18. package/coverage/lcov-report/src/API/Response.ts.html +0 -1189
  19. package/coverage/lcov-report/src/API/Utils.ts.html +0 -313
  20. package/coverage/lcov-report/src/API/index.html +0 -131
  21. package/coverage/lcov-report/src/BaseEvent/EventProcessor.ts.html +0 -496
  22. package/coverage/lcov-report/src/BaseEvent/Process.ts.html +0 -346
  23. package/coverage/lcov-report/src/BaseEvent/Transaction.ts.html +0 -1015
  24. package/coverage/lcov-report/src/BaseEvent/index.html +0 -146
  25. package/coverage/lcov-report/src/Cache/Redis.ts.html +0 -367
  26. package/coverage/lcov-report/src/Cache/index.html +0 -116
  27. package/coverage/lcov-report/src/Config/Configuration.ts.html +0 -700
  28. package/coverage/lcov-report/src/Config/EnvironmentVar.ts.html +0 -526
  29. package/coverage/lcov-report/src/Config/index.html +0 -131
  30. package/coverage/lcov-report/src/Crypto/Crypto.ts.html +0 -352
  31. package/coverage/lcov-report/src/Crypto/JWT.ts.html +0 -337
  32. package/coverage/lcov-report/src/Crypto/index.html +0 -131
  33. package/coverage/lcov-report/src/Database/Database.ts.html +0 -151
  34. package/coverage/lcov-report/src/Database/DatabaseManager.ts.html +0 -289
  35. package/coverage/lcov-report/src/Database/DatabaseTransaction.ts.html +0 -595
  36. package/coverage/lcov-report/src/Database/index.html +0 -161
  37. package/coverage/lcov-report/src/Database/index.ts.html +0 -169
  38. package/coverage/lcov-report/src/Database/integrations/knex/KnexDatabase.ts.html +0 -283
  39. package/coverage/lcov-report/src/Database/integrations/knex/KnexTransaction.ts.html +0 -337
  40. package/coverage/lcov-report/src/Database/integrations/knex/index.html +0 -131
  41. package/coverage/lcov-report/src/Database/integrations/kysely/KyselyDatabase.ts.html +0 -376
  42. package/coverage/lcov-report/src/Database/integrations/kysely/KyselyTransaction.ts.html +0 -601
  43. package/coverage/lcov-report/src/Database/integrations/kysely/index.html +0 -131
  44. package/coverage/lcov-report/src/Database/integrations/pgsql/PostgresDatabase.ts.html +0 -250
  45. package/coverage/lcov-report/src/Database/integrations/pgsql/PostgresTransaction.ts.html +0 -346
  46. package/coverage/lcov-report/src/Database/integrations/pgsql/index.html +0 -131
  47. package/coverage/lcov-report/src/Database/types.d.ts.html +0 -232
  48. package/coverage/lcov-report/src/Globals.ts.html +0 -394
  49. package/coverage/lcov-report/src/Logger/Logger.ts.html +0 -1138
  50. package/coverage/lcov-report/src/Logger/index.html +0 -116
  51. package/coverage/lcov-report/src/Mailer/Mailer.ts.html +0 -754
  52. package/coverage/lcov-report/src/Mailer/index.html +0 -116
  53. package/coverage/lcov-report/src/Publisher/Publisher.ts.html +0 -460
  54. package/coverage/lcov-report/src/Publisher/index.html +0 -116
  55. package/coverage/lcov-report/src/Server/RouteResolver.ts.html +0 -442
  56. package/coverage/lcov-report/src/Server/Router.ts.html +0 -616
  57. package/coverage/lcov-report/src/Server/index.html +0 -131
  58. package/coverage/lcov-report/src/Server/lib/ContainerServer.ts.html +0 -280
  59. package/coverage/lcov-report/src/Server/lib/Server.ts.html +0 -403
  60. package/coverage/lcov-report/src/Server/lib/container/GenericHandler.ts.html +0 -331
  61. package/coverage/lcov-report/src/Server/lib/container/GenericHandlerEvent.ts.html +0 -547
  62. package/coverage/lcov-report/src/Server/lib/container/HealthHandler.ts.html +0 -118
  63. package/coverage/lcov-report/src/Server/lib/container/Proxy.ts.html +0 -619
  64. package/coverage/lcov-report/src/Server/lib/container/Utils.ts.html +0 -184
  65. package/coverage/lcov-report/src/Server/lib/container/index.html +0 -176
  66. package/coverage/lcov-report/src/Server/lib/index.html +0 -131
  67. package/coverage/lcov-report/src/Util/AsyncSingleton.ts.html +0 -343
  68. package/coverage/lcov-report/src/Util/Utils.ts.html +0 -313
  69. package/coverage/lcov-report/src/Util/index.html +0 -131
  70. package/coverage/lcov-report/src/Validation/Validator.ts.html +0 -217
  71. package/coverage/lcov-report/src/Validation/index.html +0 -116
  72. package/coverage/lcov-report/src/index.html +0 -116
  73. package/coverage/lcov.info +0 -2326
@@ -1,403 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/Server/lib/Server.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/Server/lib</a> Server.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>35/35</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>14/14</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>6/6</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>31/31</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-yes">3x</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-yes">3x</span>
177
- <span class="cline-any cline-yes">3x</span>
178
- <span class="cline-any cline-yes">3x</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-yes">3x</span>
181
- <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-yes">3x</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-yes">22x</span>
206
- <span class="cline-any cline-yes">22x</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">2x</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-yes">18x</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">18x</span>
230
- <span class="cline-any cline-yes">18x</span>
231
- <span class="cline-any cline-yes">18x</span>
232
- <span class="cline-any cline-yes">18x</span>
233
- <span class="cline-any cline-yes">15x</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">15x</span>
236
- <span class="cline-any cline-yes">6x</span>
237
- <span class="cline-any cline-yes">6x</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-yes">10x</span>
242
- <span class="cline-any cline-yes">5x</span>
243
- <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-yes">5x</span>
247
- <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">6x</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-yes">6x</span>
253
- <span class="cline-any cline-yes">2x</span>
254
- <span class="cline-any cline-yes">2x</span>
255
- <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-yes">5x</span>
259
- <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-yes">3x</span>
262
- <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">6x</span>
273
- <span class="cline-any cline-yes">6x</span>
274
- <span class="cline-any cline-yes">6x</span>
275
- <span class="cline-any cline-yes">6x</span>
276
- <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { APIGatewayProxyEvent, Context } from 'aws-lambda'
279
- import { pathToRegexp } from 'path-to-regexp'
280
- &nbsp;
281
- import Request from '../../API/Request'
282
- import Response, { ResponseErrorType } from '../../API/Response'
283
- import Transaction, { StringMap } from '../../BaseEvent/Transaction'
284
- import Validator from '../../Validation/Validator'
285
- import { RouterConfig } from '../Router'
286
- import RouteResolver from '../RouteResolver'
287
- &nbsp;
288
- /**
289
- * Represents a server that handles serverless events and routes them to appropriate handlers.
290
- */
291
- export default class Server {
292
- /**
293
- * The configuration object for the router.
294
- * @readonly
295
- * @type {RouterConfig}
296
- */
297
- protected readonly config: RouterConfig
298
- /**
299
- * A protected property that holds a RouteResolver object.
300
- * The RouteResolver is responsible for resolving routes and returning the appropriate response.
301
- * @type {RouteResolver}
302
- */
303
- protected readonly routeResolver: RouteResolver
304
- &nbsp;
305
- /**
306
- * Constructs a new instance of the Router class.
307
- * @param {RouterConfig} config - The configuration object for the router.
308
- * @returns None
309
- */
310
- constructor(config: RouterConfig) {
311
- this.config = config
312
- this.routeResolver = new RouteResolver(config)
313
- }
314
- &nbsp;
315
- /**
316
- * Returns a callable function that is bound to the `handleServerlessEvent` method of the current object.
317
- * @returns {CallableFunction} - A callable function that is bound to the `handleServerlessEvent` method.
318
- */
319
- public getExport(): CallableFunction {
320
- return this.handleServerlessEvent.bind(this)
321
- }
322
- &nbsp;
323
- /**
324
- * Handles a serverless event by executing a transaction and resolving the route based on the event.
325
- * @param {APIGatewayProxyEvent} event - The serverless event object.
326
- * @param {Context} context - The serverless context object.
327
- * @returns None
328
- */
329
- public async handleServerlessEvent(event: APIGatewayProxyEvent, context: Context) {
330
- // init transaction
331
- await new Transaction&lt;never, ResponseErrorType, never, StringMap, StringMap&gt;(
332
- event,
333
- context,
334
- this.config
335
- ).execute(async transaction =&gt; {
336
- const request = transaction.request
337
- const route = this.routeResolver.resolveRoute(request.getMethod(), request.getPath())
338
- if (route) {
339
- transaction.logger.log('Router accepted route:', route.path)
340
- // Validate input
341
- if (route.inputSchema) {
342
- const validationResp = Validator.validateSchema(request.getBody(), route.inputSchema)
343
- if (validationResp &amp;&amp; validationResp instanceof Response) return validationResp
344
- }
345
- &nbsp;
346
- // Validate query
347
- if (route.querySchema) {
348
- const validationResp = Validator.validateSchema(
349
- request.getQueryParams(),
350
- route.querySchema
351
- )
352
- if (validationResp &amp;&amp; validationResp instanceof Response) return validationResp
353
- }
354
- &nbsp;
355
- // parse before validating
356
- this.parsePathParams(request, route.path)
357
- // Validate path
358
- if (route.pathSchema) {
359
- const validationResp = Validator.validateSchema(request.getPathParams(), route.pathSchema)
360
- if (validationResp &amp;&amp; validationResp instanceof Response) return validationResp
361
- }
362
- &nbsp;
363
- // Continue to route handler
364
- return await route.handler(transaction)
365
- }
366
- //No route found :/
367
- return new Response(404, { err: 'Route not found!' })
368
- })
369
- }
370
- &nbsp;
371
- /**
372
- * Parses the path parameters from the request URL based on the given route path.
373
- * @param {Request&lt;any&gt;} req - The request object.
374
- * @param {string} routePath - The route path pattern to match against.
375
- * @returns None
376
- */
377
- private parsePathParams(req: Request&lt;any, any, any&gt;, routePath: string) {
378
- const path = req.getPath()
379
- const keys = []
380
- const result = pathToRegexp(routePath, keys).exec(path)
381
- if (result) req.setFixedPathParams(keys, result)
382
- }
383
- }
384
- &nbsp;</pre></td></tr></table></pre>
385
-
386
- <div class='push'></div><!-- for sticky footer -->
387
- </div><!-- /wrapper -->
388
- <div class='footer quiet pad2 space-top1 center small'>
389
- Code coverage generated by
390
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
391
- at 2024-04-29T19:32:33.683Z
392
- </div>
393
- <script src="../../../prettify.js"></script>
394
- <script>
395
- window.onload = function () {
396
- prettyPrint();
397
- };
398
- </script>
399
- <script src="../../../sorter.js"></script>
400
- <script src="../../../block-navigation.js"></script>
401
- </body>
402
- </html>
403
-