@creator.co/wapi 1.7.1-alpha1 → 1.7.1-alpha3
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.
- package/coverage/clover.xml +1088 -0
- package/coverage/coverage/coverage.txt +40 -0
- package/coverage/coverage-final.json +37 -0
- package/coverage/coverage-summary.json +38 -0
- package/coverage/coverage.txt +59 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +371 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/API/Request.ts.html +727 -0
- package/coverage/lcov-report/src/API/Response.ts.html +1189 -0
- package/coverage/lcov-report/src/API/Utils.ts.html +313 -0
- package/coverage/lcov-report/src/API/index.html +131 -0
- package/coverage/lcov-report/src/BaseEvent/EventProcessor.ts.html +496 -0
- package/coverage/lcov-report/src/BaseEvent/Process.ts.html +346 -0
- package/coverage/lcov-report/src/BaseEvent/Transaction.ts.html +1015 -0
- package/coverage/lcov-report/src/BaseEvent/index.html +146 -0
- package/coverage/lcov-report/src/Cache/Redis.ts.html +367 -0
- package/coverage/lcov-report/src/Cache/index.html +116 -0
- package/coverage/lcov-report/src/Config/Configuration.ts.html +700 -0
- package/coverage/lcov-report/src/Config/EnvironmentVar.ts.html +526 -0
- package/coverage/lcov-report/src/Config/index.html +131 -0
- package/coverage/lcov-report/src/Crypto/Crypto.ts.html +352 -0
- package/coverage/lcov-report/src/Crypto/JWT.ts.html +337 -0
- package/coverage/lcov-report/src/Crypto/index.html +131 -0
- package/coverage/lcov-report/src/Database/Database.ts.html +151 -0
- package/coverage/lcov-report/src/Database/DatabaseManager.ts.html +289 -0
- package/coverage/lcov-report/src/Database/DatabaseTransaction.ts.html +595 -0
- package/coverage/lcov-report/src/Database/index.html +161 -0
- package/coverage/lcov-report/src/Database/index.ts.html +169 -0
- package/coverage/lcov-report/src/Database/integrations/knex/KnexDatabase.ts.html +283 -0
- package/coverage/lcov-report/src/Database/integrations/knex/KnexTransaction.ts.html +337 -0
- package/coverage/lcov-report/src/Database/integrations/knex/index.html +131 -0
- package/coverage/lcov-report/src/Database/integrations/kysely/KyselyDatabase.ts.html +376 -0
- package/coverage/lcov-report/src/Database/integrations/kysely/KyselyTransaction.ts.html +601 -0
- package/coverage/lcov-report/src/Database/integrations/kysely/index.html +131 -0
- package/coverage/lcov-report/src/Database/integrations/pgsql/PostgresDatabase.ts.html +250 -0
- package/coverage/lcov-report/src/Database/integrations/pgsql/PostgresTransaction.ts.html +346 -0
- package/coverage/lcov-report/src/Database/integrations/pgsql/index.html +131 -0
- package/coverage/lcov-report/src/Database/types.d.ts.html +232 -0
- package/coverage/lcov-report/src/Globals.ts.html +394 -0
- package/coverage/lcov-report/src/Logger/Logger.ts.html +1138 -0
- package/coverage/lcov-report/src/Logger/index.html +116 -0
- package/coverage/lcov-report/src/Mailer/Mailer.ts.html +754 -0
- package/coverage/lcov-report/src/Mailer/index.html +116 -0
- package/coverage/lcov-report/src/Publisher/Publisher.ts.html +460 -0
- package/coverage/lcov-report/src/Publisher/index.html +116 -0
- package/coverage/lcov-report/src/Server/RouteResolver.ts.html +442 -0
- package/coverage/lcov-report/src/Server/Router.ts.html +616 -0
- package/coverage/lcov-report/src/Server/index.html +131 -0
- package/coverage/lcov-report/src/Server/lib/ContainerServer.ts.html +280 -0
- package/coverage/lcov-report/src/Server/lib/Server.ts.html +403 -0
- package/coverage/lcov-report/src/Server/lib/container/GenericHandler.ts.html +331 -0
- package/coverage/lcov-report/src/Server/lib/container/GenericHandlerEvent.ts.html +547 -0
- package/coverage/lcov-report/src/Server/lib/container/HealthHandler.ts.html +118 -0
- package/coverage/lcov-report/src/Server/lib/container/Proxy.ts.html +619 -0
- package/coverage/lcov-report/src/Server/lib/container/Utils.ts.html +184 -0
- package/coverage/lcov-report/src/Server/lib/container/index.html +176 -0
- package/coverage/lcov-report/src/Server/lib/index.html +131 -0
- package/coverage/lcov-report/src/Util/AsyncSingleton.ts.html +343 -0
- package/coverage/lcov-report/src/Util/Utils.ts.html +313 -0
- package/coverage/lcov-report/src/Util/index.html +131 -0
- package/coverage/lcov-report/src/Validation/Validator.ts.html +217 -0
- package/coverage/lcov-report/src/Validation/index.html +116 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov.info +2326 -0
- package/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/.eslintignore +0 -3
- package/.eslintrc.cjs +0 -60
- package/.github/workflows/npmpublish.yml +0 -11
- package/.github/workflows/prs.yml +0 -13
- package/jest.config.ts +0 -33
- package/jest.smoke.config.ts +0 -35
- package/tests/API/Request.test.ts +0 -273
- package/tests/API/Response.test.ts +0 -367
- package/tests/API/Utils.test.ts +0 -167
- package/tests/BaseEvent/EventProcessor.test.ts +0 -261
- package/tests/BaseEvent/Process.test.ts +0 -49
- package/tests/BaseEvent/Transaction.test.ts +0 -408
- package/tests/Cache/Redis-client.test.ts +0 -90
- package/tests/Cache/Redis-cluster.test.ts +0 -100
- package/tests/Config/Config.test.ts +0 -205
- package/tests/Config/EnvironmentVar.test.ts +0 -250
- package/tests/Crypto/Crypto.test.ts +0 -88
- package/tests/Crypto/JWT.test.ts +0 -92
- package/tests/Database/DatabaseManager.test.ts +0 -71
- package/tests/Database/integrations/knex/KnexDatabase.test.ts +0 -76
- package/tests/Database/integrations/knex/KnexTransaction.test.ts +0 -149
- package/tests/Database/integrations/kysely/KyselyDatabase.test.ts +0 -113
- package/tests/Database/integrations/kysely/KyselyTransaction.test.ts +0 -119
- package/tests/Database/integrations/pg/PostgresDatabase.test.ts +0 -76
- package/tests/Database/integrations/pg/PostgresTransaction.test.ts +0 -118
- package/tests/Logger/Logger.test.ts +0 -219
- package/tests/Mailer/Mailer.test.ts +0 -59
- package/tests/Publisher/Publisher.test.ts +0 -94
- package/tests/Server/RouteResolver.test.ts +0 -102
- package/tests/Server/Router.test.ts +0 -39
- package/tests/Server/lib/ContainerServer.test.ts +0 -531
- package/tests/Server/lib/Server.test.ts +0 -12
- package/tests/Server/lib/container/GenericHandler.test.ts +0 -131
- package/tests/Server/lib/container/GenericHandlerEvent.test.ts +0 -103
- package/tests/Server/lib/container/HealthHandler.test.ts +0 -30
- package/tests/Server/lib/container/Proxy.test.ts +0 -268
- package/tests/Server/lib/container/Utils.test.ts +0 -47
- package/tests/Test.utils.ts +0 -74
- package/tests/Validation/Validator.test.ts +0 -76
- package/tsconfig.json +0 -26
- package/tsconfig.smoke.json +0 -26
|
@@ -0,0 +1,403 @@
|
|
|
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"> </span>
|
|
173
|
+
<span class="cline-any cline-yes">3x</span>
|
|
174
|
+
<span class="cline-any cline-neutral"> </span>
|
|
175
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
180
|
+
<span class="cline-any cline-yes">3x</span>
|
|
181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
185
|
+
<span class="cline-any cline-yes">3x</span>
|
|
186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-neutral"> </span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
204
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
208
|
+
<span class="cline-any cline-neutral"> </span>
|
|
209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
214
|
+
<span class="cline-any cline-yes">2x</span>
|
|
215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
216
|
+
<span class="cline-any cline-neutral"> </span>
|
|
217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
218
|
+
<span class="cline-any cline-neutral"> </span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-neutral"> </span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
225
|
+
<span class="cline-any cline-yes">18x</span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
228
|
+
<span class="cline-any cline-neutral"> </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"> </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"> </span>
|
|
239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-yes">5x</span>
|
|
247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-yes">6x</span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-yes">5x</span>
|
|
259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-yes">3x</span>
|
|
262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { APIGatewayProxyEvent, Context } from 'aws-lambda'
|
|
279
|
+
import { pathToRegexp } from 'path-to-regexp'
|
|
280
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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
|
+
|
|
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<never, ResponseErrorType, never, StringMap, StringMap>(
|
|
332
|
+
event,
|
|
333
|
+
context,
|
|
334
|
+
this.config
|
|
335
|
+
).execute(async transaction => {
|
|
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 && validationResp instanceof Response) return validationResp
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
// Validate query
|
|
347
|
+
if (route.querySchema) {
|
|
348
|
+
const validationResp = Validator.validateSchema(
|
|
349
|
+
request.getQueryParams(),
|
|
350
|
+
route.querySchema
|
|
351
|
+
)
|
|
352
|
+
if (validationResp && validationResp instanceof Response) return validationResp
|
|
353
|
+
}
|
|
354
|
+
|
|
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 && validationResp instanceof Response) return validationResp
|
|
361
|
+
}
|
|
362
|
+
|
|
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
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Parses the path parameters from the request URL based on the given route path.
|
|
373
|
+
* @param {Request<any>} req - The request object.
|
|
374
|
+
* @param {string} routePath - The route path pattern to match against.
|
|
375
|
+
* @returns None
|
|
376
|
+
*/
|
|
377
|
+
private parsePathParams(req: Request<any, any, any>, 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
|
+
</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
|
+
|