@sera4/essentia 1.1.66-rc.1 → 1.1.66

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 (242) hide show
  1. package/package.json +1 -1
  2. package/package.tar.gz +0 -0
  3. package/coverage/base.css +0 -224
  4. package/coverage/block-navigation.js +0 -87
  5. package/coverage/configurations/index.html +0 -116
  6. package/coverage/configurations/server-config.ts.html +0 -94
  7. package/coverage/dns/DnsCache.ts.html +0 -598
  8. package/coverage/dns/index.html +0 -131
  9. package/coverage/dns/index.ts.html +0 -94
  10. package/coverage/favicon.png +0 -0
  11. package/coverage/health/index.html +0 -116
  12. package/coverage/health/index.ts.html +0 -778
  13. package/coverage/index.html +0 -161
  14. package/coverage/lcov-report/base.css +0 -224
  15. package/coverage/lcov-report/block-navigation.js +0 -87
  16. package/coverage/lcov-report/configurations/index.html +0 -116
  17. package/coverage/lcov-report/configurations/server-config.ts.html +0 -94
  18. package/coverage/lcov-report/dns/DnsCache.ts.html +0 -598
  19. package/coverage/lcov-report/dns/index.html +0 -131
  20. package/coverage/lcov-report/dns/index.ts.html +0 -94
  21. package/coverage/lcov-report/favicon.png +0 -0
  22. package/coverage/lcov-report/health/index.html +0 -116
  23. package/coverage/lcov-report/health/index.ts.html +0 -778
  24. package/coverage/lcov-report/index.html +0 -161
  25. package/coverage/lcov-report/logger/index.html +0 -131
  26. package/coverage/lcov-report/logger/index.ts.html +0 -94
  27. package/coverage/lcov-report/logger/s4-logger.ts.html +0 -514
  28. package/coverage/lcov-report/prettify.css +0 -1
  29. package/coverage/lcov-report/prettify.js +0 -2
  30. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  31. package/coverage/lcov-report/sorter.js +0 -196
  32. package/coverage/lcov.info +0 -747
  33. package/coverage/logger/index.html +0 -131
  34. package/coverage/logger/index.ts.html +0 -94
  35. package/coverage/logger/s4-logger.ts.html +0 -514
  36. package/coverage/prettify.css +0 -1
  37. package/coverage/prettify.js +0 -2
  38. package/coverage/sort-arrow-sprite.png +0 -0
  39. package/coverage/sorter.js +0 -196
  40. package/coverage/tmp/coverage-24302-1746472691313-0.json +0 -1
  41. package/coverage/tmp/coverage-24302-1746472691366-1.json +0 -1
  42. package/dist/cache/index.d.ts +0 -22
  43. package/dist/cache/index.js +0 -166
  44. package/dist/cache/index.js.map +0 -1
  45. package/dist/constants/index.d.ts +0 -6
  46. package/dist/constants/index.js +0 -9
  47. package/dist/constants/index.js.map +0 -1
  48. package/dist/coverage/block-navigation.d.ts +0 -1
  49. package/dist/coverage/block-navigation.js +0 -70
  50. package/dist/coverage/block-navigation.js.map +0 -1
  51. package/dist/coverage/lcov-report/block-navigation.d.ts +0 -1
  52. package/dist/coverage/lcov-report/block-navigation.js +0 -70
  53. package/dist/coverage/lcov-report/block-navigation.js.map +0 -1
  54. package/dist/coverage/lcov-report/prettify.d.ts +0 -0
  55. package/dist/coverage/lcov-report/prettify.js +0 -477
  56. package/dist/coverage/lcov-report/prettify.js.map +0 -1
  57. package/dist/coverage/lcov-report/sorter.d.ts +0 -1
  58. package/dist/coverage/lcov-report/sorter.js +0 -163
  59. package/dist/coverage/lcov-report/sorter.js.map +0 -1
  60. package/dist/coverage/prettify.d.ts +0 -0
  61. package/dist/coverage/prettify.js +0 -477
  62. package/dist/coverage/prettify.js.map +0 -1
  63. package/dist/coverage/sorter.d.ts +0 -1
  64. package/dist/coverage/sorter.js +0 -163
  65. package/dist/coverage/sorter.js.map +0 -1
  66. package/dist/formatter/index.d.ts +0 -37
  67. package/dist/formatter/index.js +0 -75
  68. package/dist/formatter/index.js.map +0 -1
  69. package/dist/hal/index.d.ts +0 -5
  70. package/dist/hal/index.js +0 -69
  71. package/dist/hal/index.js.map +0 -1
  72. package/dist/health/health-logger.d.ts +0 -9
  73. package/dist/health/health-logger.js +0 -34
  74. package/dist/health/health-logger.js.map +0 -1
  75. package/dist/health/index.d.ts +0 -19
  76. package/dist/health/index.js +0 -175
  77. package/dist/health/index.js.map +0 -1
  78. package/dist/helpers/index.d.ts +0 -1
  79. package/dist/helpers/index.js +0 -2
  80. package/dist/helpers/index.js.map +0 -1
  81. package/dist/helpers/test-server-wrapper.d.ts +0 -120
  82. package/dist/helpers/test-server-wrapper.js +0 -165
  83. package/dist/helpers/test-server-wrapper.js.map +0 -1
  84. package/dist/index.d.ts +0 -1
  85. package/dist/index.js +0 -17
  86. package/dist/index.js.map +0 -1
  87. package/dist/last-commit.d.ts +0 -1
  88. package/dist/last-commit.js +0 -12
  89. package/dist/last-commit.js.map +0 -1
  90. package/dist/last_commit/index.d.ts +0 -7
  91. package/dist/last_commit/index.js +0 -83
  92. package/dist/last_commit/index.js.map +0 -1
  93. package/dist/paginator/s4-pagination.d.ts +0 -9
  94. package/dist/paginator/s4-pagination.js +0 -49
  95. package/dist/paginator/s4-pagination.js.map +0 -1
  96. package/dist/paginator/sql-pagination.d.ts +0 -27
  97. package/dist/paginator/sql-pagination.js +0 -166
  98. package/dist/paginator/sql-pagination.js.map +0 -1
  99. package/dist/paper-trail/helpers.d.ts +0 -11
  100. package/dist/paper-trail/helpers.js +0 -74
  101. package/dist/paper-trail/helpers.js.map +0 -1
  102. package/dist/paper-trail/index.d.ts +0 -13
  103. package/dist/paper-trail/index.js +0 -662
  104. package/dist/paper-trail/index.js.map +0 -1
  105. package/dist/prompts/index.d.ts +0 -14
  106. package/dist/prompts/index.js +0 -63
  107. package/dist/prompts/index.js.map +0 -1
  108. package/dist/queue/index.d.ts +0 -166
  109. package/dist/queue/index.js +0 -371
  110. package/dist/queue/index.js.map +0 -1
  111. package/dist/queue/publisher.d.ts +0 -31
  112. package/dist/queue/publisher.js +0 -84
  113. package/dist/queue/publisher.js.map +0 -1
  114. package/dist/queue/queue-logger.d.ts +0 -9
  115. package/dist/queue/queue-logger.js +0 -35
  116. package/dist/queue/queue-logger.js.map +0 -1
  117. package/dist/queue/subscriber.d.ts +0 -39
  118. package/dist/queue/subscriber.js +0 -97
  119. package/dist/queue/subscriber.js.map +0 -1
  120. package/dist/safe_proxy/index.d.ts +0 -13
  121. package/dist/safe_proxy/index.js +0 -54
  122. package/dist/safe_proxy/index.js.map +0 -1
  123. package/dist/serializer/index.d.ts +0 -5
  124. package/dist/serializer/index.js +0 -83
  125. package/dist/serializer/index.js.map +0 -1
  126. package/dist/test/debug-array.d.ts +0 -0
  127. package/dist/test/debug-array.js +0 -1
  128. package/dist/test/debug-array.js.map +0 -1
  129. package/dist/test/debug-setJSONB.d.ts +0 -0
  130. package/dist/test/debug-setJSONB.js +0 -1
  131. package/dist/test/debug-setJSONB.js.map +0 -1
  132. package/dist/test/prompt.test.d.ts +0 -1
  133. package/dist/test/prompt.test.js +0 -74
  134. package/dist/test/prompt.test.js.map +0 -1
  135. package/dist/test/s4-formatter.spec.d.ts +0 -1
  136. package/dist/test/s4-formatter.spec.js +0 -67
  137. package/dist/test/s4-formatter.spec.js.map +0 -1
  138. package/dist/test/s4-pagination.spec.d.ts +0 -1
  139. package/dist/test/s4-pagination.spec.js +0 -170
  140. package/dist/test/s4-pagination.spec.js.map +0 -1
  141. package/dist/test/safe-proxy.spec.d.ts +0 -1
  142. package/dist/test/safe-proxy.spec.js +0 -252
  143. package/dist/test/safe-proxy.spec.js.map +0 -1
  144. package/dist/test/serializer.spec.d.ts +0 -1
  145. package/dist/test/serializer.spec.js +0 -27
  146. package/dist/test/serializer.spec.js.map +0 -1
  147. package/dist/test/utils.spec.d.ts +0 -1
  148. package/dist/test/utils.spec.js +0 -446
  149. package/dist/test/utils.spec.js.map +0 -1
  150. package/dist/ts/cache/index.d.ts +0 -33
  151. package/dist/ts/cache/index.js +0 -171
  152. package/dist/ts/cache/index.js.map +0 -1
  153. package/dist/ts/configurations/server-config.d.ts +0 -4
  154. package/dist/ts/configurations/server-config.js +0 -2
  155. package/dist/ts/configurations/server-config.js.map +0 -1
  156. package/dist/ts/constants/index.d.ts +0 -7
  157. package/dist/ts/constants/index.js +0 -8
  158. package/dist/ts/constants/index.js.map +0 -1
  159. package/dist/ts/cycle/index.d.ts +0 -53
  160. package/dist/ts/cycle/index.js +0 -169
  161. package/dist/ts/cycle/index.js.map +0 -1
  162. package/dist/ts/dns/DnsCache.d.ts +0 -50
  163. package/dist/ts/dns/DnsCache.js +0 -137
  164. package/dist/ts/dns/DnsCache.js.map +0 -1
  165. package/dist/ts/dns/index.d.ts +0 -4
  166. package/dist/ts/dns/index.js +0 -4
  167. package/dist/ts/dns/index.js.map +0 -1
  168. package/dist/ts/formatter/index.d.ts +0 -44
  169. package/dist/ts/formatter/index.js +0 -76
  170. package/dist/ts/formatter/index.js.map +0 -1
  171. package/dist/ts/hal/index.d.ts +0 -26
  172. package/dist/ts/hal/index.js +0 -70
  173. package/dist/ts/hal/index.js.map +0 -1
  174. package/dist/ts/health/index.d.ts +0 -53
  175. package/dist/ts/health/index.js +0 -165
  176. package/dist/ts/health/index.js.map +0 -1
  177. package/dist/ts/helpers/index.d.ts +0 -1
  178. package/dist/ts/helpers/index.js +0 -2
  179. package/dist/ts/helpers/index.js.map +0 -1
  180. package/dist/ts/helpers/test-server-wrapper.d.ts +0 -56
  181. package/dist/ts/helpers/test-server-wrapper.js +0 -144
  182. package/dist/ts/helpers/test-server-wrapper.js.map +0 -1
  183. package/dist/ts/index.d.ts +0 -22
  184. package/dist/ts/index.js +0 -27
  185. package/dist/ts/index.js.map +0 -1
  186. package/dist/ts/last-commit/index.d.ts +0 -12
  187. package/dist/ts/last-commit/index.js +0 -82
  188. package/dist/ts/last-commit/index.js.map +0 -1
  189. package/dist/ts/logger/index.d.ts +0 -3
  190. package/dist/ts/logger/index.js +0 -4
  191. package/dist/ts/logger/index.js.map +0 -1
  192. package/dist/ts/logger/s4-logger.d.ts +0 -23
  193. package/dist/ts/logger/s4-logger.js +0 -105
  194. package/dist/ts/logger/s4-logger.js.map +0 -1
  195. package/dist/ts/paginator/index.d.ts +0 -2
  196. package/dist/ts/paginator/index.js +0 -3
  197. package/dist/ts/paginator/index.js.map +0 -1
  198. package/dist/ts/paginator/s4-pagination.d.ts +0 -26
  199. package/dist/ts/paginator/s4-pagination.js +0 -49
  200. package/dist/ts/paginator/s4-pagination.js.map +0 -1
  201. package/dist/ts/paginator/sql-pagination.d.ts +0 -52
  202. package/dist/ts/paginator/sql-pagination.js +0 -157
  203. package/dist/ts/paginator/sql-pagination.js.map +0 -1
  204. package/dist/ts/paper-trail/helpers.d.ts +0 -14
  205. package/dist/ts/paper-trail/helpers.js +0 -74
  206. package/dist/ts/paper-trail/helpers.js.map +0 -1
  207. package/dist/ts/paper-trail/index.d.ts +0 -54
  208. package/dist/ts/paper-trail/index.js +0 -236
  209. package/dist/ts/paper-trail/index.js.map +0 -1
  210. package/dist/ts/prompts/index.d.ts +0 -21
  211. package/dist/ts/prompts/index.js +0 -68
  212. package/dist/ts/prompts/index.js.map +0 -1
  213. package/dist/ts/queue/index.d.ts +0 -232
  214. package/dist/ts/queue/index.js +0 -440
  215. package/dist/ts/queue/index.js.map +0 -1
  216. package/dist/ts/queue/publisher.d.ts +0 -41
  217. package/dist/ts/queue/publisher.js +0 -84
  218. package/dist/ts/queue/publisher.js.map +0 -1
  219. package/dist/ts/queue/queue-logger.d.ts +0 -10
  220. package/dist/ts/queue/queue-logger.js +0 -35
  221. package/dist/ts/queue/queue-logger.js.map +0 -1
  222. package/dist/ts/queue/subscriber.d.ts +0 -55
  223. package/dist/ts/queue/subscriber.js +0 -98
  224. package/dist/ts/queue/subscriber.js.map +0 -1
  225. package/dist/ts/safe-proxy/index.d.ts +0 -35
  226. package/dist/ts/safe-proxy/index.js +0 -54
  227. package/dist/ts/safe-proxy/index.js.map +0 -1
  228. package/dist/ts/serializer/index.d.ts +0 -52
  229. package/dist/ts/serializer/index.js +0 -83
  230. package/dist/ts/serializer/index.js.map +0 -1
  231. package/dist/ts/task-scheduler/index.d.ts +0 -130
  232. package/dist/ts/task-scheduler/index.js +0 -259
  233. package/dist/ts/task-scheduler/index.js.map +0 -1
  234. package/dist/ts/utils/index.d.ts +0 -49
  235. package/dist/ts/utils/index.js +0 -157
  236. package/dist/ts/utils/index.js.map +0 -1
  237. package/test/health.spec.js +0 -213
  238. package/test/prompt.test.js +0 -91
  239. package/test/s4-formatter.spec.js +0 -80
  240. package/test/s4-pagination.spec.js +0 -196
  241. package/test/serializer.spec.js +0 -34
  242. package/test/utils.spec.js +0 -145
@@ -1,778 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for health/index.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">health</a> index.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">72.41% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>168/232</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">47.61% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>10/21</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>6/9</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">72.41% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>168/232</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 medium'></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>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
298
- <span class="cline-any cline-yes">1x</span>
299
- <span class="cline-any cline-yes">1x</span>
300
- <span class="cline-any cline-yes">1x</span>
301
- <span class="cline-any cline-yes">1x</span>
302
- <span class="cline-any cline-yes">1x</span>
303
- <span class="cline-any cline-yes">1x</span>
304
- <span class="cline-any cline-yes">1x</span>
305
- <span class="cline-any cline-yes">1x</span>
306
- <span class="cline-any cline-yes">1x</span>
307
- <span class="cline-any cline-yes">1x</span>
308
- <span class="cline-any cline-yes">1x</span>
309
- <span class="cline-any cline-yes">1x</span>
310
- <span class="cline-any cline-yes">1x</span>
311
- <span class="cline-any cline-yes">1x</span>
312
- <span class="cline-any cline-yes">1x</span>
313
- <span class="cline-any cline-yes">1x</span>
314
- <span class="cline-any cline-yes">1x</span>
315
- <span class="cline-any cline-yes">1x</span>
316
- <span class="cline-any cline-yes">1x</span>
317
- <span class="cline-any cline-yes">1x</span>
318
- <span class="cline-any cline-yes">1x</span>
319
- <span class="cline-any cline-yes">1x</span>
320
- <span class="cline-any cline-yes">1x</span>
321
- <span class="cline-any cline-yes">1x</span>
322
- <span class="cline-any cline-yes">1x</span>
323
- <span class="cline-any cline-yes">1x</span>
324
- <span class="cline-any cline-yes">1x</span>
325
- <span class="cline-any cline-yes">1x</span>
326
- <span class="cline-any cline-yes">1x</span>
327
- <span class="cline-any cline-yes">1x</span>
328
- <span class="cline-any cline-yes">1x</span>
329
- <span class="cline-any cline-yes">1x</span>
330
- <span class="cline-any cline-yes">1x</span>
331
- <span class="cline-any cline-yes">1x</span>
332
- <span class="cline-any cline-yes">1x</span>
333
- <span class="cline-any cline-yes">1x</span>
334
- <span class="cline-any cline-yes">1x</span>
335
- <span class="cline-any cline-yes">1x</span>
336
- <span class="cline-any cline-yes">1x</span>
337
- <span class="cline-any cline-yes">1x</span>
338
- <span class="cline-any cline-yes">1x</span>
339
- <span class="cline-any cline-yes">1x</span>
340
- <span class="cline-any cline-yes">1x</span>
341
- <span class="cline-any cline-yes">1x</span>
342
- <span class="cline-any cline-yes">1x</span>
343
- <span class="cline-any cline-yes">1x</span>
344
- <span class="cline-any cline-yes">1x</span>
345
- <span class="cline-any cline-yes">1x</span>
346
- <span class="cline-any cline-yes">1x</span>
347
- <span class="cline-any cline-yes">1x</span>
348
- <span class="cline-any cline-yes">1x</span>
349
- <span class="cline-any cline-yes">1x</span>
350
- <span class="cline-any cline-yes">1x</span>
351
- <span class="cline-any cline-yes">1x</span>
352
- <span class="cline-any cline-yes">1x</span>
353
- <span class="cline-any cline-yes">1x</span>
354
- <span class="cline-any cline-yes">1x</span>
355
- <span class="cline-any cline-yes">1x</span>
356
- <span class="cline-any cline-yes">1x</span>
357
- <span class="cline-any cline-yes">1x</span>
358
- <span class="cline-any cline-yes">1x</span>
359
- <span class="cline-any cline-yes">1x</span>
360
- <span class="cline-any cline-yes">1x</span>
361
- <span class="cline-any cline-yes">1x</span>
362
- <span class="cline-any cline-yes">1x</span>
363
- <span class="cline-any cline-yes">1x</span>
364
- <span class="cline-any cline-yes">1x</span>
365
- <span class="cline-any cline-yes">5x</span>
366
- <span class="cline-any cline-yes">5x</span>
367
- <span class="cline-any cline-yes">5x</span>
368
- <span class="cline-any cline-yes">5x</span>
369
- <span class="cline-any cline-yes">5x</span>
370
- <span class="cline-any cline-yes">5x</span>
371
- <span class="cline-any cline-yes">5x</span>
372
- <span class="cline-any cline-yes">5x</span>
373
- <span class="cline-any cline-yes">5x</span>
374
- <span class="cline-any cline-yes">5x</span>
375
- <span class="cline-any cline-yes">5x</span>
376
- <span class="cline-any cline-yes">5x</span>
377
- <span class="cline-any cline-yes">5x</span>
378
- <span class="cline-any cline-yes">5x</span>
379
- <span class="cline-any cline-yes">5x</span>
380
- <span class="cline-any cline-yes">1x</span>
381
- <span class="cline-any cline-yes">1x</span>
382
- <span class="cline-any cline-yes">1x</span>
383
- <span class="cline-any cline-yes">1x</span>
384
- <span class="cline-any cline-yes">1x</span>
385
- <span class="cline-any cline-no">&nbsp;</span>
386
- <span class="cline-any cline-no">&nbsp;</span>
387
- <span class="cline-any cline-yes">1x</span>
388
- <span class="cline-any cline-yes">1x</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
390
- <span class="cline-any cline-no">&nbsp;</span>
391
- <span class="cline-any cline-yes">1x</span>
392
- <span class="cline-any cline-yes">1x</span>
393
- <span class="cline-any cline-yes">1x</span>
394
- <span class="cline-any cline-yes">1x</span>
395
- <span class="cline-any cline-yes">1x</span>
396
- <span class="cline-any cline-yes">1x</span>
397
- <span class="cline-any cline-yes">1x</span>
398
- <span class="cline-any cline-yes">1x</span>
399
- <span class="cline-any cline-yes">1x</span>
400
- <span class="cline-any cline-yes">4x</span>
401
- <span class="cline-any cline-yes">1x</span>
402
- <span class="cline-any cline-yes">1x</span>
403
- <span class="cline-any cline-yes">3x</span>
404
- <span class="cline-any cline-yes">3x</span>
405
- <span class="cline-any cline-no">&nbsp;</span>
406
- <span class="cline-any cline-yes">3x</span>
407
- <span class="cline-any cline-yes">3x</span>
408
- <span class="cline-any cline-yes">3x</span>
409
- <span class="cline-any cline-yes">3x</span>
410
- <span class="cline-any cline-yes">1x</span>
411
- <span class="cline-any cline-yes">1x</span>
412
- <span class="cline-any cline-no">&nbsp;</span>
413
- <span class="cline-any cline-no">&nbsp;</span>
414
- <span class="cline-any cline-no">&nbsp;</span>
415
- <span class="cline-any cline-no">&nbsp;</span>
416
- <span class="cline-any cline-no">&nbsp;</span>
417
- <span class="cline-any cline-no">&nbsp;</span>
418
- <span class="cline-any cline-no">&nbsp;</span>
419
- <span class="cline-any cline-yes">1x</span>
420
- <span class="cline-any cline-yes">1x</span>
421
- <span class="cline-any cline-yes">2x</span>
422
- <span class="cline-any cline-yes">2x</span>
423
- <span class="cline-any cline-yes">1x</span>
424
- <span class="cline-any cline-yes">1x</span>
425
- <span class="cline-any cline-yes">2x</span>
426
- <span class="cline-any cline-yes">2x</span>
427
- <span class="cline-any cline-yes">2x</span>
428
- <span class="cline-any cline-yes">2x</span>
429
- <span class="cline-any cline-no">&nbsp;</span>
430
- <span class="cline-any cline-no">&nbsp;</span>
431
- <span class="cline-any cline-no">&nbsp;</span>
432
- <span class="cline-any cline-no">&nbsp;</span>
433
- <span class="cline-any cline-no">&nbsp;</span>
434
- <span class="cline-any cline-yes">2x</span>
435
- <span class="cline-any cline-yes">2x</span>
436
- <span class="cline-any cline-yes">2x</span>
437
- <span class="cline-any cline-yes">2x</span>
438
- <span class="cline-any cline-yes">2x</span>
439
- <span class="cline-any cline-yes">2x</span>
440
- <span class="cline-any cline-yes">2x</span>
441
- <span class="cline-any cline-yes">2x</span>
442
- <span class="cline-any cline-yes">2x</span>
443
- <span class="cline-any cline-no">&nbsp;</span>
444
- <span class="cline-any cline-yes">2x</span>
445
- <span class="cline-any cline-yes">2x</span>
446
- <span class="cline-any cline-yes">2x</span>
447
- <span class="cline-any cline-yes">2x</span>
448
- <span class="cline-any cline-yes">2x</span>
449
- <span class="cline-any cline-no">&nbsp;</span>
450
- <span class="cline-any cline-no">&nbsp;</span>
451
- <span class="cline-any cline-no">&nbsp;</span>
452
- <span class="cline-any cline-no">&nbsp;</span>
453
- <span class="cline-any cline-no">&nbsp;</span>
454
- <span class="cline-any cline-no">&nbsp;</span>
455
- <span class="cline-any cline-no">&nbsp;</span>
456
- <span class="cline-any cline-no">&nbsp;</span>
457
- <span class="cline-any cline-yes">2x</span>
458
- <span class="cline-any cline-yes">2x</span>
459
- <span class="cline-any cline-yes">2x</span>
460
- <span class="cline-any cline-yes">2x</span>
461
- <span class="cline-any cline-yes">2x</span>
462
- <span class="cline-any cline-yes">2x</span>
463
- <span class="cline-any cline-yes">2x</span>
464
- <span class="cline-any cline-no">&nbsp;</span>
465
- <span class="cline-any cline-no">&nbsp;</span>
466
- <span class="cline-any cline-yes">2x</span>
467
- <span class="cline-any cline-yes">2x</span>
468
- <span class="cline-any cline-yes">2x</span>
469
- <span class="cline-any cline-yes">2x</span>
470
- <span class="cline-any cline-yes">2x</span>
471
- <span class="cline-any cline-yes">2x</span>
472
- <span class="cline-any cline-yes">2x</span>
473
- <span class="cline-any cline-no">&nbsp;</span>
474
- <span class="cline-any cline-no">&nbsp;</span>
475
- <span class="cline-any cline-no">&nbsp;</span>
476
- <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-no">&nbsp;</span>
479
- <span class="cline-any cline-no">&nbsp;</span>
480
- <span class="cline-any cline-no">&nbsp;</span>
481
- <span class="cline-any cline-yes">2x</span>
482
- <span class="cline-any cline-yes">2x</span>
483
- <span class="cline-any cline-yes">2x</span>
484
- <span class="cline-any cline-yes">2x</span>
485
- <span class="cline-any cline-yes">2x</span>
486
- <span class="cline-any cline-yes">2x</span>
487
- <span class="cline-any cline-no">&nbsp;</span>
488
- <span class="cline-any cline-no">&nbsp;</span>
489
- <span class="cline-any cline-no">&nbsp;</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
491
- <span class="cline-any cline-no">&nbsp;</span>
492
- <span class="cline-any cline-no">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
- <span class="cline-any cline-no">&nbsp;</span>
495
- <span class="cline-any cline-no">&nbsp;</span>
496
- <span class="cline-any cline-no">&nbsp;</span>
497
- <span class="cline-any cline-no">&nbsp;</span>
498
- <span class="cline-any cline-no">&nbsp;</span>
499
- <span class="cline-any cline-no">&nbsp;</span>
500
- <span class="cline-any cline-no">&nbsp;</span>
501
- <span class="cline-any cline-no">&nbsp;</span>
502
- <span class="cline-any cline-no">&nbsp;</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-no">&nbsp;</span>
506
- <span class="cline-any cline-no">&nbsp;</span>
507
- <span class="cline-any cline-no">&nbsp;</span>
508
- <span class="cline-any cline-no">&nbsp;</span>
509
- <span class="cline-any cline-yes">2x</span>
510
- <span class="cline-any cline-yes">2x</span>
511
- <span class="cline-any cline-yes">2x</span>
512
- <span class="cline-any cline-no">&nbsp;</span>
513
- <span class="cline-any cline-yes">2x</span>
514
- <span class="cline-any cline-yes">2x</span>
515
- <span class="cline-any cline-yes">2x</span>
516
- <span class="cline-any cline-no">&nbsp;</span>
517
- <span class="cline-any cline-no">&nbsp;</span>
518
- <span class="cline-any cline-yes">2x</span>
519
- <span class="cline-any cline-yes">2x</span>
520
- <span class="cline-any cline-yes">2x</span>
521
- <span class="cline-any cline-yes">2x</span>
522
- <span class="cline-any cline-no">&nbsp;</span>
523
- <span class="cline-any cline-no">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
- <span class="cline-any cline-yes">2x</span>
526
- <span class="cline-any cline-yes">1x</span>
527
- <span class="cline-any cline-yes">1x</span>
528
- <span class="cline-any cline-yes">1x</span></td><td class="text"><pre class="prettyprint lang-js">import path from 'path';
529
- import morgan from 'morgan';
530
- import { IncomingMessage, ServerResponse } from 'http';
531
- import { Request, Response } from 'express';
532
- import { Logger } from '../logger/index.js';
533
- &nbsp;
534
- interface HealthCheckResult {
535
- name: string;
536
- result: 'success' | 'fail';
537
- critical?: boolean;
538
- status?: number;
539
- }
540
- &nbsp;
541
- interface HealthCheckConfig {
542
- name: string;
543
- checkResult?: boolean;
544
- critical: boolean;
545
- healthFunction: () =&gt; Promise&lt;boolean | HealthCheckResult&gt;;
546
- }
547
- &nbsp;
548
- interface HealthCheckResponse {
549
- check: number;
550
- healthy: boolean;
551
- message: string;
552
- services?: HealthCheckResult[];
553
- }
554
- &nbsp;
555
- interface ExpressRequest extends Request {
556
- baseUrl: string;
557
- path: string;
558
- }
559
- &nbsp;
560
- interface ExpressResponse extends Response {
561
- status: (code: number) =&gt; this;
562
- json: (data: any) =&gt; this;
563
- send: (data: any) =&gt; this;
564
- setHeader: (name: string, value: string | number) =&gt; this;
565
- }
566
- &nbsp;
567
- interface ExpressRouter {
568
- get: (path: string, handler: (req: ExpressRequest, res: ExpressResponse) =&gt; void) =&gt; void;
569
- }
570
- &nbsp;
571
- interface ExpressApp {
572
- use: (middleware: any) =&gt; void;
573
- }
574
- &nbsp;
575
- export class HealthCheckError extends Error {
576
- constructor(message: string) {
577
- super(message);
578
- this.name = 'HealthCheckError';
579
- }
580
- }
581
- &nbsp;
582
- export class HealthCheck {
583
- private readonly logger: Logger;
584
- private readonly defaultResponse: {
585
- appendData: Record&lt;string, unknown&gt;;
586
- status: number;
587
- errors: Record&lt;string, unknown&gt;;
588
- };
589
- private readonly defaultPathRoute: string;
590
- private suppressLogs: boolean;
591
- private lastCallId: number;
592
- private pathPrefix: string;
593
- private healthChecks: (HealthCheckConfig | (() =&gt; Promise&lt;HealthCheckResult&gt;))[];
594
- &nbsp;
595
- constructor(appendData: Record&lt;string, unknown&gt; = {}, enableLogging = true) {
596
- this.logger = Logger.getInstance();
597
- this.logger.configure({ level: enableLogging ? 'debug' <span class="branch-0 cbranch-no" title="branch not covered" >: 'error' </span>});
598
- &nbsp;
599
- this.defaultResponse = {
600
- appendData,
601
- status: 200,
602
- errors: {}
603
- };
604
- &nbsp;
605
- this.defaultPathRoute = 'health_check(.*)?';
606
- this.suppressLogs = false;
607
- this.lastCallId = 0;
608
- this.pathPrefix = '';
609
- this.healthChecks = [];
610
- }
611
- &nbsp;
612
- /**
613
- * @deprecated Use setupCheck instead
614
- */
615
- public <span class="fstat-no" title="function not covered" >addCheck(fcn: () =&gt; Promise&lt;HealthCheckResult&gt;): void {</span>
616
- <span class="cstat-no" title="statement not covered" > this.healthChecks.push(fcn);</span>
617
- <span class="cstat-no" title="statement not covered" > }</span>
618
- &nbsp;
619
- public <span class="fstat-no" title="function not covered" >setPrefix(prefix: string): void {</span>
620
- <span class="cstat-no" title="statement not covered" > this.pathPrefix = prefix;</span>
621
- <span class="cstat-no" title="statement not covered" > }</span>
622
- &nbsp;
623
- public defaultPath(prefix = ''): string {
624
- if (prefix === '') {
625
- prefix = this.pathPrefix;
626
- }
627
- return `${prefix}/${this.defaultPathRoute}`;
628
- }
629
- &nbsp;
630
- public routes(router: ExpressRouter): ExpressRouter {
631
- if (!router) {
632
- throw new HealthCheckError('missing_express_router');
633
- }
634
- &nbsp;
635
- router.get('/', (req: ExpressRequest, res: ExpressResponse) =&gt; {
636
- <span class="cstat-no" title="statement not covered" > this.checkHealth(req, res);</span>
637
- });
638
- &nbsp;
639
- return router;
640
- }
641
- &nbsp;
642
- public <span class="fstat-no" title="function not covered" >suppressHealthCheckLog(app: ExpressApp): void {</span>
643
- <span class="cstat-no" title="statement not covered" > app.use(morgan('combined', {</span>
644
- <span class="cstat-no" title="statement not covered" > skip: (req: IncomingMessage) =&gt; {</span>
645
- <span class="cstat-no" title="statement not covered" > const expressReq = req as ExpressRequest;</span>
646
- <span class="cstat-no" title="statement not covered" > return expressReq.path === this.defaultPath();</span>
647
- <span class="cstat-no" title="statement not covered" > }</span>
648
- <span class="cstat-no" title="statement not covered" > }));</span>
649
- <span class="cstat-no" title="statement not covered" > }</span>
650
- &nbsp;
651
- public setupCheck(config: HealthCheckConfig): void {
652
- this.healthChecks.push(config);
653
- }
654
- &nbsp;
655
- private async checkHealth(req: ExpressRequest, res: ExpressResponse): Promise&lt;void&gt; {
656
- const checkFormat = path.extname(req.baseUrl);
657
- &nbsp;
658
- const result = await Promise.all(this.healthChecks.map(async (hc) =&gt; {
659
- if (typeof hc === 'function') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
660
- <span class="cstat-no" title="statement not covered" > try {</span>
661
- <span class="cstat-no" title="statement not covered" > return await hc();</span>
662
- <span class="cstat-no" title="statement not covered" > } catch (e: any) {</span>
663
- <span class="cstat-no" title="statement not covered" > return { name: 'unknown', result: 'fail', status: e.status };</span>
664
- <span class="cstat-no" title="statement not covered" > }</span>
665
- } else {
666
- const res: Partial&lt;HealthCheckResult&gt; = {
667
- name: hc.name,
668
- critical: hc.critical
669
- };
670
- &nbsp;
671
- try {
672
- const result = await hc.healthFunction();
673
- if (typeof result === 'boolean') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
674
- <span class="cstat-no" title="statement not covered" > res.result = result ? 'success' : 'fail';</span>
675
- } else {
676
- res.result = 'success';
677
- }
678
- return res as HealthCheckResult;
679
- } <span class="branch-0 cbranch-no" title="branch not covered" >catch (e: any) {</span>
680
- <span class="cstat-no" title="statement not covered" > const appendStatus = e.status ? ` (${e.status})` : '';</span>
681
- <span class="cstat-no" title="statement not covered" > this.logger.warn(`${hc.name} service failed${appendStatus}`);</span>
682
- <span class="cstat-no" title="statement not covered" > return {</span>
683
- <span class="cstat-no" title="statement not covered" > ...res,</span>
684
- <span class="cstat-no" title="statement not covered" > result: 'fail',</span>
685
- <span class="cstat-no" title="statement not covered" > status: e.status</span>
686
- <span class="cstat-no" title="statement not covered" > } as HealthCheckResult;</span>
687
- <span class="cstat-no" title="statement not covered" > }</span>
688
- }
689
- }));
690
- &nbsp;
691
- try {
692
- let callId = ++this.lastCallId;
693
- &nbsp;
694
- if ((callId % (1 &lt;&lt; 30)) === 0) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
695
- <span class="cstat-no" title="statement not covered" > callId = this.lastCallId = 1;</span>
696
- <span class="cstat-no" title="statement not covered" > }</span>
697
- &nbsp;
698
- let status = this.defaultResponse.status;
699
- let nonCriticalFail = false;
700
- let criticalFail = false;
701
- &nbsp;
702
- result.some((e) =&gt; {
703
- if (e.result.match(/fail/)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
704
- <span class="cstat-no" title="statement not covered" > if ('critical' in e &amp;&amp; e.critical === false) {</span>
705
- <span class="cstat-no" title="statement not covered" > nonCriticalFail = true;</span>
706
- <span class="cstat-no" title="statement not covered" > } else {</span>
707
- <span class="cstat-no" title="statement not covered" > criticalFail = true;</span>
708
- <span class="cstat-no" title="statement not covered" > status = 500;</span>
709
- <span class="cstat-no" title="statement not covered" > return true;</span>
710
- <span class="cstat-no" title="statement not covered" > }</span>
711
- <span class="cstat-no" title="statement not covered" > }</span>
712
- return false;
713
- });
714
- &nbsp;
715
- res.setHeader('check', callId);
716
- &nbsp;
717
- if (checkFormat === '.json') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
718
- <span class="cstat-no" title="statement not covered" > const payload: HealthCheckResponse = {</span>
719
- <span class="cstat-no" title="statement not covered" > check: callId,</span>
720
- <span class="cstat-no" title="statement not covered" > healthy: true,</span>
721
- <span class="cstat-no" title="statement not covered" > message: 'success'</span>
722
- <span class="cstat-no" title="statement not covered" > };</span>
723
- <span class="cstat-no" title="statement not covered" ></span>
724
- <span class="cstat-no" title="statement not covered" > if (criticalFail) {</span>
725
- <span class="cstat-no" title="statement not covered" > res.status(status).json({</span>
726
- <span class="cstat-no" title="statement not covered" > ...payload,</span>
727
- <span class="cstat-no" title="statement not covered" > healthy: false,</span>
728
- <span class="cstat-no" title="statement not covered" > message: 'fail',</span>
729
- <span class="cstat-no" title="statement not covered" > services: result</span>
730
- <span class="cstat-no" title="statement not covered" > });</span>
731
- <span class="cstat-no" title="statement not covered" > } else if (nonCriticalFail) {</span>
732
- <span class="cstat-no" title="statement not covered" > res.status(status).json({</span>
733
- <span class="cstat-no" title="statement not covered" > ...payload,</span>
734
- <span class="cstat-no" title="statement not covered" > message: 'fail',</span>
735
- <span class="cstat-no" title="statement not covered" > services: result</span>
736
- <span class="cstat-no" title="statement not covered" > });</span>
737
- <span class="cstat-no" title="statement not covered" > } else if (status === 200) {</span>
738
- <span class="cstat-no" title="statement not covered" > res.status(status).json(payload);</span>
739
- <span class="cstat-no" title="statement not covered" > }</span>
740
- } else {
741
- let statusMessage: string;
742
- if (criticalFail) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
743
- <span class="cstat-no" title="statement not covered" > statusMessage = 'fail';</span>
744
- } else if ((status === 200)<span class="branch-0 cbranch-no" title="branch not covered" > || nonCriticalFail)</span> {
745
- statusMessage = 'success';
746
- }<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
747
- <span class="cstat-no" title="statement not covered" > statusMessage = 'unknown';</span>
748
- <span class="cstat-no" title="statement not covered" > }</span>
749
- &nbsp;
750
- res.status(status).send(statusMessage);
751
- }
752
- } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
753
- <span class="cstat-no" title="statement not covered" > this.logger.error('Health check error:', error);</span>
754
- <span class="cstat-no" title="statement not covered" > res.status(500).send('Internal Server Error');</span>
755
- <span class="cstat-no" title="statement not covered" > }</span>
756
- }
757
- }
758
- &nbsp;
759
- export default HealthCheck;</pre></td></tr></table></pre>
760
-
761
- <div class='push'></div><!-- for sticky footer -->
762
- </div><!-- /wrapper -->
763
- <div class='footer quiet pad2 space-top1 center small'>
764
- Code coverage generated by
765
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
766
- at 2025-05-05T19:18:11.902Z
767
- </div>
768
- <script src="../prettify.js"></script>
769
- <script>
770
- window.onload = function () {
771
- prettyPrint();
772
- };
773
- </script>
774
- <script src="../sorter.js"></script>
775
- <script src="../block-navigation.js"></script>
776
- </body>
777
- </html>
778
-