@node-c/core 1.0.0-alpha9 → 1.0.0-beta0

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 (140) hide show
  1. package/coverage/src/app.ts.html +349 -0
  2. package/coverage/src/common/configProvider/configProvider.module.ts.html +160 -0
  3. package/coverage/src/common/configProvider/configProvider.service.ts.html +658 -0
  4. package/coverage/src/common/configProvider/index.html +146 -0
  5. package/coverage/src/common/configProvider/index.ts.html +94 -0
  6. package/coverage/src/common/definitions/common.constants.ts.html +160 -0
  7. package/coverage/src/common/definitions/common.errors.ts.html +124 -0
  8. package/coverage/src/common/definitions/index.html +146 -0
  9. package/coverage/src/common/definitions/index.ts.html +94 -0
  10. package/coverage/src/common/utils/index.html +131 -0
  11. package/coverage/src/common/utils/index.ts.html +88 -0
  12. package/coverage/src/common/utils/utils.loadDynamicModules.ts.html +265 -0
  13. package/coverage/src/domain/entityService/domain.entity.service.ts.html +784 -0
  14. package/coverage/src/domain/entityService/index.html +131 -0
  15. package/coverage/src/domain/entityService/index.ts.html +91 -0
  16. package/coverage/src/index.html +116 -0
  17. package/coverage/src/persistance/entityService/index.html +131 -0
  18. package/coverage/src/persistance/entityService/index.ts.html +91 -0
  19. package/coverage/src/persistance/entityService/persistance.entity.service.ts.html +268 -0
  20. package/dist/app.d.ts +2 -2
  21. package/dist/app.js +27 -15
  22. package/dist/app.js.map +1 -1
  23. package/dist/common/configProvider/configProvider.definitions.d.ts +156 -20
  24. package/dist/common/configProvider/configProvider.definitions.js +21 -7
  25. package/dist/common/configProvider/configProvider.definitions.js.map +1 -1
  26. package/dist/common/configProvider/configProvider.module.js +13 -2
  27. package/dist/common/configProvider/configProvider.module.js.map +1 -1
  28. package/dist/common/configProvider/configProvider.service.js +21 -18
  29. package/dist/common/configProvider/configProvider.service.js.map +1 -1
  30. package/dist/common/definitions/common.constants.d.ts +2 -1
  31. package/dist/common/definitions/common.constants.js +1 -0
  32. package/dist/common/definitions/common.constants.js.map +1 -1
  33. package/dist/common/utils/base64UrlEncode/base64UrlEncode.method.d.ts +1 -0
  34. package/dist/common/utils/base64UrlEncode/base64UrlEncode.method.js +9 -0
  35. package/dist/common/utils/base64UrlEncode/base64UrlEncode.method.js.map +1 -0
  36. package/dist/common/utils/base64UrlEncode/index.d.ts +1 -0
  37. package/dist/{persistance/entityService → common/utils/base64UrlEncode}/index.js +1 -2
  38. package/dist/common/utils/base64UrlEncode/index.js.map +1 -0
  39. package/dist/common/utils/getNested/getNested.definitions.d.ts +4 -0
  40. package/dist/common/utils/getNested/getNested.definitions.js +3 -0
  41. package/dist/common/utils/getNested/getNested.definitions.js.map +1 -0
  42. package/dist/common/utils/getNested/getNested.method.d.ts +6 -0
  43. package/dist/common/utils/getNested/getNested.method.js +88 -0
  44. package/dist/common/utils/getNested/getNested.method.js.map +1 -0
  45. package/dist/common/utils/getNested/index.d.ts +2 -0
  46. package/dist/common/utils/getNested/index.js +19 -0
  47. package/dist/common/utils/getNested/index.js.map +1 -0
  48. package/dist/common/utils/httpRequest/httpRequest.definitions.d.ts +19 -0
  49. package/dist/common/utils/httpRequest/httpRequest.definitions.js +3 -0
  50. package/dist/common/utils/httpRequest/httpRequest.definitions.js.map +1 -0
  51. package/dist/common/utils/httpRequest/httpRequest.method.d.ts +2 -0
  52. package/dist/common/utils/httpRequest/httpRequest.method.js +56 -0
  53. package/dist/common/utils/httpRequest/httpRequest.method.js.map +1 -0
  54. package/dist/common/utils/httpRequest/index.d.ts +2 -0
  55. package/dist/common/utils/httpRequest/index.js +19 -0
  56. package/dist/common/utils/httpRequest/index.js.map +1 -0
  57. package/dist/common/utils/index.d.ts +5 -1
  58. package/dist/common/utils/index.js +5 -1
  59. package/dist/common/utils/index.js.map +1 -1
  60. package/dist/common/utils/loadDynamicModules/index.d.ts +1 -0
  61. package/dist/common/utils/loadDynamicModules/index.js +18 -0
  62. package/dist/common/utils/loadDynamicModules/index.js.map +1 -0
  63. package/dist/common/utils/{utils.loadDynamicModules.d.ts → loadDynamicModules/utils.loadDynamicModules.d.ts} +1 -1
  64. package/dist/common/utils/loadDynamicModules/utils.loadDynamicModules.js.map +1 -0
  65. package/dist/common/utils/setNested/index.d.ts +2 -0
  66. package/dist/common/utils/setNested/index.js +19 -0
  67. package/dist/common/utils/setNested/index.js.map +1 -0
  68. package/dist/common/utils/setNested/setNested.definitions.d.ts +4 -0
  69. package/dist/common/utils/setNested/setNested.definitions.js +3 -0
  70. package/dist/common/utils/setNested/setNested.definitions.js.map +1 -0
  71. package/dist/common/utils/setNested/setNested.method.d.ts +2 -0
  72. package/dist/common/utils/setNested/setNested.method.js +70 -0
  73. package/dist/common/utils/setNested/setNested.method.js.map +1 -0
  74. package/dist/data/entityService/data.entity.service.d.ts +17 -0
  75. package/dist/data/entityService/data.entity.service.definitions.d.ts +117 -0
  76. package/dist/data/entityService/data.entity.service.definitions.js +28 -0
  77. package/dist/data/entityService/data.entity.service.definitions.js.map +1 -0
  78. package/dist/{persistance/entityService/persistance.entity.service.js → data/entityService/data.entity.service.js} +41 -9
  79. package/dist/data/entityService/data.entity.service.js.map +1 -0
  80. package/dist/data/entityService/index.d.ts +2 -0
  81. package/dist/data/entityService/index.js +19 -0
  82. package/dist/data/entityService/index.js.map +1 -0
  83. package/dist/domain/entityService/domain.entity.service.d.ts +28 -13
  84. package/dist/domain/entityService/domain.entity.service.definitions.d.ts +26 -19
  85. package/dist/domain/entityService/domain.entity.service.definitions.js +6 -6
  86. package/dist/domain/entityService/domain.entity.service.definitions.js.map +1 -1
  87. package/dist/domain/entityService/domain.entity.service.js +77 -69
  88. package/dist/domain/entityService/domain.entity.service.js.map +1 -1
  89. package/dist/index.d.ts +1 -1
  90. package/dist/index.js +1 -1
  91. package/dist/index.js.map +1 -1
  92. package/package.json +11 -10
  93. package/src/app.spec.ts +138 -0
  94. package/src/app.ts +115 -0
  95. package/src/common/configProvider/configProvider.definitions.ts +445 -0
  96. package/src/common/configProvider/configProvider.module.spec.ts +90 -0
  97. package/src/common/configProvider/configProvider.module.ts +25 -0
  98. package/src/common/configProvider/configProvider.service.spec.ts +206 -0
  99. package/src/common/configProvider/configProvider.service.ts +204 -0
  100. package/src/common/configProvider/index.ts +3 -0
  101. package/src/common/definitions/common.constants.ts +27 -0
  102. package/src/common/definitions/common.definitions.ts +13 -0
  103. package/src/common/definitions/common.errors.ts +13 -0
  104. package/src/common/definitions/index.ts +3 -0
  105. package/src/common/utils/base64UrlEncode/base64UrlEncode.method.ts +4 -0
  106. package/src/common/utils/base64UrlEncode/index.ts +1 -0
  107. package/src/common/utils/getNested/getNested.definitions.ts +4 -0
  108. package/src/common/utils/getNested/getNested.method.ts +108 -0
  109. package/src/common/utils/getNested/getNested.spec.ts +151 -0
  110. package/src/common/utils/getNested/index.ts +2 -0
  111. package/src/common/utils/httpRequest/httpRequest.definitions.ts +22 -0
  112. package/src/common/utils/httpRequest/httpRequest.method.ts +46 -0
  113. package/src/common/utils/httpRequest/index.ts +2 -0
  114. package/src/common/utils/index.ts +5 -0
  115. package/src/common/utils/loadDynamicModules/index.ts +1 -0
  116. package/src/common/utils/loadDynamicModules/utils.loadDynamicModules.spec.ts +111 -0
  117. package/src/common/utils/loadDynamicModules/utils.loadDynamicModules.ts +69 -0
  118. package/src/common/utils/setNested/index.ts +2 -0
  119. package/src/common/utils/setNested/setNested.definitions.ts +4 -0
  120. package/src/common/utils/setNested/setNested.method.ts +83 -0
  121. package/src/common/utils/setNested/setNested.spec.ts +184 -0
  122. package/src/data/entityService/data.entity.service.definitions.ts +154 -0
  123. package/src/data/entityService/data.entity.service.spec.ts +112 -0
  124. package/src/data/entityService/data.entity.service.ts +144 -0
  125. package/src/data/entityService/index.ts +2 -0
  126. package/src/domain/entityService/domain.entity.service.definitions.ts +142 -0
  127. package/src/domain/entityService/domain.entity.service.spec.ts +126 -0
  128. package/src/domain/entityService/domain.entity.service.ts +421 -0
  129. package/src/domain/entityService/index.ts +2 -0
  130. package/src/index.ts +6 -0
  131. package/src/vitest.config.ts +9 -0
  132. package/dist/common/utils/utils.loadDynamicModules.js.map +0 -1
  133. package/dist/persistance/entityService/index.d.ts +0 -2
  134. package/dist/persistance/entityService/index.js.map +0 -1
  135. package/dist/persistance/entityService/persistance.entity.service.d.ts +0 -11
  136. package/dist/persistance/entityService/persistance.entity.service.definitions.d.ts +0 -76
  137. package/dist/persistance/entityService/persistance.entity.service.definitions.js +0 -23
  138. package/dist/persistance/entityService/persistance.entity.service.definitions.js.map +0 -1
  139. package/dist/persistance/entityService/persistance.entity.service.js.map +0 -1
  140. /package/dist/common/utils/{utils.loadDynamicModules.js → loadDynamicModules/utils.loadDynamicModules.js} +0 -0
@@ -0,0 +1,784 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/domain/entityService/domain.entity.service.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/domain/entityService</a> domain.entity.service.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">72.06% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>129/179</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">51.11% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>23/45</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'>9/9</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">72.06% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>129/179</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>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-yes">1x</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-yes">1x</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-yes">12x</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-yes">12x</span>
333
+ <span class="cline-any cline-yes">12x</span>
334
+ <span class="cline-any cline-yes">12x</span>
335
+ <span class="cline-any cline-yes">12x</span>
336
+ <span class="cline-any cline-yes">12x</span>
337
+ <span class="cline-any cline-yes">12x</span>
338
+ <span class="cline-any cline-yes">12x</span>
339
+ <span class="cline-any cline-yes">12x</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-yes">12x</span>
342
+ <span class="cline-any cline-yes">12x</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-yes">1x</span>
351
+ <span class="cline-any cline-yes">2x</span>
352
+ <span class="cline-any cline-yes">2x</span>
353
+ <span class="cline-any cline-yes">2x</span>
354
+ <span class="cline-any cline-yes">2x</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-yes">2x</span>
358
+ <span class="cline-any cline-yes">2x</span>
359
+ <span class="cline-any cline-yes">2x</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">2x</span>
363
+ <span class="cline-any cline-yes">2x</span>
364
+ <span class="cline-any cline-yes">2x</span>
365
+ <span class="cline-any cline-yes">2x</span>
366
+ <span class="cline-any cline-yes">1x</span>
367
+ <span class="cline-any cline-yes">2x</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-yes">1x</span>
372
+ <span class="cline-any cline-yes">2x</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
+ <span class="cline-any cline-no">&nbsp;</span>
375
+ <span class="cline-any cline-yes">2x</span>
376
+ <span class="cline-any cline-yes">2x</span>
377
+ <span class="cline-any cline-yes">2x</span>
378
+ <span class="cline-any cline-yes">1x</span>
379
+ <span class="cline-any cline-yes">1x</span>
380
+ <span class="cline-any cline-yes">2x</span>
381
+ <span class="cline-any cline-yes">2x</span>
382
+ <span class="cline-any cline-yes">2x</span>
383
+ <span class="cline-any cline-yes">2x</span>
384
+ <span class="cline-any cline-yes">1x</span>
385
+ <span class="cline-any cline-yes">2x</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-yes">1x</span>
390
+ <span class="cline-any cline-yes">2x</span>
391
+ <span class="cline-any cline-no">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
+ <span class="cline-any cline-yes">2x</span>
394
+ <span class="cline-any cline-yes">2x</span>
395
+ <span class="cline-any cline-yes">2x</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">2x</span>
399
+ <span class="cline-any cline-yes">2x</span>
400
+ <span class="cline-any cline-yes">2x</span>
401
+ <span class="cline-any cline-yes">2x</span>
402
+ <span class="cline-any cline-yes">1x</span>
403
+ <span class="cline-any cline-yes">2x</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-yes">1x</span>
408
+ <span class="cline-any cline-yes">2x</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
410
+ <span class="cline-any cline-no">&nbsp;</span>
411
+ <span class="cline-any cline-yes">2x</span>
412
+ <span class="cline-any cline-yes">2x</span>
413
+ <span class="cline-any cline-yes">2x</span>
414
+ <span class="cline-any cline-yes">2x</span>
415
+ <span class="cline-any cline-yes">2x</span>
416
+ <span class="cline-any cline-yes">2x</span>
417
+ <span class="cline-any cline-yes">2x</span>
418
+ <span class="cline-any cline-yes">1x</span>
419
+ <span class="cline-any cline-yes">2x</span>
420
+ <span class="cline-any cline-yes">2x</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">2x</span>
424
+ <span class="cline-any cline-yes">2x</span>
425
+ <span class="cline-any cline-yes">2x</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</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-yes">1x</span>
433
+ <span class="cline-any cline-yes">1x</span>
434
+ <span class="cline-any cline-yes">1x</span>
435
+ <span class="cline-any cline-yes">1x</span>
436
+ <span class="cline-any cline-yes">2x</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-yes">1x</span>
441
+ <span class="cline-any cline-yes">2x</span>
442
+ <span class="cline-any cline-no">&nbsp;</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-yes">2x</span>
450
+ <span class="cline-any cline-yes">2x</span>
451
+ <span class="cline-any cline-yes">2x</span>
452
+ <span class="cline-any cline-yes">2x</span>
453
+ <span class="cline-any cline-yes">2x</span>
454
+ <span class="cline-any cline-yes">2x</span>
455
+ <span class="cline-any cline-yes">2x</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-no">&nbsp;</span>
458
+ <span class="cline-any cline-no">&nbsp;</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
460
+ <span class="cline-any cline-no">&nbsp;</span>
461
+ <span class="cline-any cline-no">&nbsp;</span>
462
+ <span class="cline-any cline-yes">1x</span>
463
+ <span class="cline-any cline-yes">1x</span>
464
+ <span class="cline-any cline-yes">1x</span>
465
+ <span class="cline-any cline-yes">1x</span>
466
+ <span class="cline-any cline-yes">2x</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-yes">1x</span>
469
+ <span class="cline-any cline-yes">12x</span>
470
+ <span class="cline-any cline-yes">12x</span>
471
+ <span class="cline-any cline-yes">12x</span>
472
+ <span class="cline-any cline-yes">12x</span>
473
+ <span class="cline-any cline-yes">12x</span>
474
+ <span class="cline-any cline-no">&nbsp;</span>
475
+ <span class="cline-any cline-yes">12x</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">12x</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-yes">1x</span>
484
+ <span class="cline-any cline-yes">6x</span>
485
+ <span class="cline-any cline-yes">6x</span>
486
+ <span class="cline-any cline-yes">6x</span>
487
+ <span class="cline-any cline-yes">6x</span>
488
+ <span class="cline-any cline-yes">6x</span>
489
+ <span class="cline-any cline-yes">6x</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-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-neutral">&nbsp;</span>
509
+ <span class="cline-any cline-no">&nbsp;</span>
510
+ <span class="cline-any cline-no">&nbsp;</span>
511
+ <span class="cline-any cline-no">&nbsp;</span>
512
+ <span class="cline-any cline-yes">6x</span>
513
+ <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-neutral">&nbsp;</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-yes">1x</span>
517
+ <span class="cline-any cline-yes">2x</span>
518
+ <span class="cline-any cline-no">&nbsp;</span>
519
+ <span class="cline-any cline-no">&nbsp;</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-yes">2x</span>
523
+ <span class="cline-any cline-yes">1x</span>
524
+ <span class="cline-any cline-yes">1x</span>
525
+ <span class="cline-any cline-yes">2x</span>
526
+ <span class="cline-any cline-yes">2x</span>
527
+ <span class="cline-any cline-yes">2x</span>
528
+ <span class="cline-any cline-yes">2x</span>
529
+ <span class="cline-any cline-yes">1x</span>
530
+ <span class="cline-any cline-yes">2x</span>
531
+ <span class="cline-any cline-yes">1x</span>
532
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
533
+ DomainBulkCreateOptions,
534
+ DomainBulkCreateResult,
535
+ DomainCreateOptions,
536
+ DomainCreateResult,
537
+ DomainDeleteOptions,
538
+ DomainDeleteResult,
539
+ DomainEntityServiceDefaultData,
540
+ DomainFindOneOptions,
541
+ DomainFindOneResult,
542
+ DomainFindOptions,
543
+ DomainFindResult,
544
+ DomainMethod,
545
+ DomainPersistanceEntityServiceType,
546
+ DomainUpdateOptions,
547
+ DomainUpdateResult
548
+ } from './domain.entity.service.definitions';
549
+ &nbsp;
550
+ import { ApplicationError, GenericObject } from '../../common/definitions';
551
+ &nbsp;
552
+ import { PersistanceEntityService, PersistanceFindResults } from '../../persistance/entityService';
553
+ &nbsp;
554
+ // TODO: persist in the main sevice on main service miss &amp; find/findOne additional service(s)
555
+ export class DomainEntityService&lt;
556
+ Entity,
557
+ EntityService extends PersistanceEntityService&lt;Entity&gt;,
558
+ Data extends DomainEntityServiceDefaultData&lt;Entity&gt; = DomainEntityServiceDefaultData&lt;Entity&gt;,
559
+ AdditionalEntityServices extends Record&lt;string, PersistanceEntityService&lt;Partial&lt;Entity&gt;&gt;&gt; | undefined = undefined
560
+ &gt; {
561
+ constructor(
562
+ // eslint-disable-next-line no-unused-vars
563
+ protected persistanceEntityService: EntityService,
564
+ // eslint-disable-next-line no-unused-vars
565
+ protected defaultMethods: string[] = [
566
+ DomainMethod.BulkCreate,
567
+ DomainMethod.Create,
568
+ DomainMethod.Delete,
569
+ DomainMethod.Find,
570
+ DomainMethod.FindOne,
571
+ DomainMethod.Update
572
+ ],
573
+ // eslint-disable-next-line no-unused-vars
574
+ protected additionalPersistanceEntityServices?: AdditionalEntityServices
575
+ ) {}
576
+ &nbsp;
577
+ public bulkCreate(
578
+ // eslint-disable-next-line no-unused-vars
579
+ data: Data['BulkCreate'],
580
+ // eslint-disable-next-line no-unused-vars
581
+ options?: DomainBulkCreateOptions
582
+ ): Promise&lt;DomainBulkCreateResult&lt;Entity&gt;&gt;;
583
+ async bulkCreate(
584
+ data: Data['BulkCreate'],
585
+ options?: DomainBulkCreateOptions
586
+ ): Promise&lt;DomainBulkCreateResult&lt;Entity&gt;&gt; {
587
+ if (!this.defaultMethods?.includes(DomainMethod.BulkCreate)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
588
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(`Method bulkCreate not implemented for class ${typeof this}.`);</span>
589
+ <span class="cstat-no" title="statement not covered" > }</span>
590
+ const { persistanceServices = [DomainPersistanceEntityServiceType.Main] } = options || {};
591
+ const [firstServiceName, ...otherServiceNames] = persistanceServices;
592
+ const result = await this.getPersistanceService(firstServiceName).bulkCreate(data);
593
+ return {
594
+ result,
595
+ resultsByService: await this.runMethodInAdditionalServices(<span class="branch-0 cbranch-no" title="branch not covered" >otherServiceNames || [], {</span>
596
+ methodArgs: [result],
597
+ methodName: 'bulkCreate'
598
+ })
599
+ };
600
+ }
601
+ &nbsp;
602
+ // eslint-disable-next-line no-unused-vars
603
+ public create(data: Data['Create'], options?: DomainCreateOptions): Promise&lt;DomainCreateResult&lt;Entity&gt;&gt;;
604
+ async create(data: Data['Create'], options?: DomainCreateOptions): Promise&lt;DomainCreateResult&lt;Entity&gt;&gt; {
605
+ if (!this.defaultMethods?.includes(DomainMethod.Create)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
606
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(`Method create not implemented for class ${typeof this}.`);</span>
607
+ <span class="cstat-no" title="statement not covered" > }</span>
608
+ const { persistanceServices = [DomainPersistanceEntityServiceType.Main] } = options || {};
609
+ const [firstServiceName, ...otherServiceNames] = persistanceServices;
610
+ const result = await this.getPersistanceService(firstServiceName).create(data);
611
+ return {
612
+ result,
613
+ resultsByService: await this.runMethodInAdditionalServices(<span class="branch-0 cbranch-no" title="branch not covered" >otherServiceNames || [], {</span>
614
+ methodArgs: [result],
615
+ methodName: 'create'
616
+ })
617
+ };
618
+ }
619
+ &nbsp;
620
+ // eslint-disable-next-line no-unused-vars
621
+ public delete(options: DomainDeleteOptions): Promise&lt;DomainDeleteResult&gt;;
622
+ async delete(options: DomainDeleteOptions): Promise&lt;DomainDeleteResult&gt; {
623
+ if (!this.defaultMethods?.includes(DomainMethod.Delete)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
624
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(`Method delete not implemented for class ${typeof this}.`);</span>
625
+ <span class="cstat-no" title="statement not covered" > }</span>
626
+ const { persistanceServices = [DomainPersistanceEntityServiceType.Main], ...otherOptions } = <span class="branch-0 cbranch-no" title="branch not covered" >options || {};</span>
627
+ const [firstServiceName, ...otherServiceNames] = persistanceServices;
628
+ const result = await this.getPersistanceService(firstServiceName).delete(otherOptions);
629
+ return {
630
+ result,
631
+ resultsByService: await this.runMethodInAdditionalServices(<span class="branch-0 cbranch-no" title="branch not covered" >otherServiceNames || [], {</span>
632
+ methodArgs: [otherOptions],
633
+ methodName: 'delete'
634
+ })
635
+ };
636
+ }
637
+ &nbsp;
638
+ // eslint-disable-next-line no-unused-vars
639
+ public find(options: DomainFindOptions): Promise&lt;DomainFindResult&lt;Entity&gt;&gt;;
640
+ async find(options: DomainFindOptions): Promise&lt;DomainFindResult&lt;Entity&gt;&gt; {
641
+ if (!this.defaultMethods?.includes(DomainMethod.Find)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
642
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(`Method find not implemented for class ${typeof this}.`);</span>
643
+ <span class="cstat-no" title="statement not covered" > }</span>
644
+ const {
645
+ saveAdditionalResultsInMain,
646
+ persistanceServices = [DomainPersistanceEntityServiceType.Main],
647
+ ...otherOptions
648
+ } = <span class="branch-0 cbranch-no" title="branch not covered" >options || {};</span>
649
+ const [firstServiceName, ...otherServiceNames] = persistanceServices;
650
+ const result = await this.getPersistanceService(firstServiceName).find(otherOptions);
651
+ const resultsByService = await this.runMethodInAdditionalServices&lt;PersistanceFindResults&lt;Entity&gt;&gt;(
652
+ <span class="branch-0 cbranch-no" title="branch not covered" > otherServiceNames || [],</span>
653
+ {
654
+ methodArgs: [otherOptions],
655
+ methodName: 'find'
656
+ }
657
+ );
658
+ if (<span class="branch-0 cbranch-no" title="branch not covered" >saveAdditionalResultsInMain &amp;&amp; resultsByService) <span class="branch-0 cbranch-no" title="branch not covered" >{</span></span>
659
+ <span class="cstat-no" title="statement not covered" > const { saveOptions, serviceName } = saveAdditionalResultsInMain;</span>
660
+ <span class="cstat-no" title="statement not covered" > const dataFromAdditionalService = resultsByService[serviceName];</span>
661
+ <span class="cstat-no" title="statement not covered" > if (dataFromAdditionalService.items.length) {</span>
662
+ <span class="cstat-no" title="statement not covered" > await this.persistanceEntityService.bulkCreate(dataFromAdditionalService.items, saveOptions);</span>
663
+ <span class="cstat-no" title="statement not covered" > }</span>
664
+ <span class="cstat-no" title="statement not covered" > }</span>
665
+ return {
666
+ result,
667
+ resultsByService
668
+ };
669
+ }
670
+ &nbsp;
671
+ // eslint-disable-next-line no-unused-vars
672
+ public findOne(options: DomainFindOneOptions): Promise&lt;DomainFindOneResult&lt;Entity&gt;&gt;;
673
+ async findOne(options: DomainFindOneOptions): Promise&lt;DomainFindOneResult&lt;Entity&gt;&gt; {
674
+ if (!this.defaultMethods?.includes(DomainMethod.FindOne)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
675
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(`Method findOne not implemented for class ${typeof this}.`);</span>
676
+ <span class="cstat-no" title="statement not covered" > }</span>
677
+ const {
678
+ saveAdditionalResultsInMain,
679
+ persistanceServices = [DomainPersistanceEntityServiceType.Main],
680
+ ...otherOptions
681
+ } = <span class="branch-0 cbranch-no" title="branch not covered" >options || {};</span>
682
+ const [firstServiceName, ...otherServiceNames] = persistanceServices;
683
+ const result = await this.getPersistanceService(firstServiceName).findOne(otherOptions);
684
+ const resultsByService = await this.runMethodInAdditionalServices&lt;Entity | null&gt;(<span class="branch-0 cbranch-no" title="branch not covered" >otherServiceNames || [], {</span>
685
+ methodArgs: [otherOptions],
686
+ methodName: 'findOne'
687
+ });
688
+ if (<span class="branch-0 cbranch-no" title="branch not covered" >saveAdditionalResultsInMain &amp;&amp; resultsByService) <span class="branch-0 cbranch-no" title="branch not covered" >{</span></span>
689
+ <span class="cstat-no" title="statement not covered" > const { saveOptions, serviceName } = saveAdditionalResultsInMain;</span>
690
+ <span class="cstat-no" title="statement not covered" > const dataFromAdditionalService = resultsByService[serviceName];</span>
691
+ <span class="cstat-no" title="statement not covered" > if (dataFromAdditionalService) {</span>
692
+ <span class="cstat-no" title="statement not covered" > await this.persistanceEntityService.create(dataFromAdditionalService, saveOptions);</span>
693
+ <span class="cstat-no" title="statement not covered" > }</span>
694
+ <span class="cstat-no" title="statement not covered" > }</span>
695
+ return {
696
+ result,
697
+ resultsByService
698
+ };
699
+ }
700
+ &nbsp;
701
+ protected getPersistanceService(
702
+ serviceName: DomainPersistanceEntityServiceType.Main | string
703
+ ): PersistanceEntityService&lt;Entity&gt; {
704
+ if (serviceName === DomainPersistanceEntityServiceType.Main) {
705
+ return this.persistanceEntityService;
706
+ <span class="branch-0 cbranch-no" title="branch not covered" > }</span>
707
+ <span class="cstat-no" title="statement not covered" > const service = this.additionalPersistanceEntityServices?.[serviceName];</span>
708
+ if (!service) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
709
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(</span>
710
+ <span class="cstat-no" title="statement not covered" > `PersistanceEntityService ${serviceName} does not exist for DomainEntityService ${this.persistanceEntityService.getEntityName()}.`</span>
711
+ <span class="cstat-no" title="statement not covered" > );</span>
712
+ <span class="cstat-no" title="statement not covered" > }</span>
713
+ <span class="cstat-no" title="statement not covered" > return service as PersistanceEntityService&lt;Entity&gt;;</span>
714
+ }
715
+ &nbsp;
716
+ protected async runMethodInAdditionalServices&lt;ServiceReturnData&gt;(
717
+ serviceNames: string[],
718
+ options: { methodArgs?: unknown[]; methodName: string }
719
+ ): Promise&lt;GenericObject&lt;ServiceReturnData&gt; | undefined&gt; {
720
+ if (!serviceNames.length) {
721
+ return undefined;
722
+ <span class="branch-0 cbranch-no" title="branch not covered" > }</span>
723
+ <span class="cstat-no" title="statement not covered" > const { methodArgs = [], methodName } = options;</span>
724
+ <span class="cstat-no" title="statement not covered" > const returnDataByService: GenericObject&lt;ServiceReturnData&gt; = {};</span>
725
+ <span class="cstat-no" title="statement not covered" > if (!this.additionalPersistanceEntityServices) {</span>
726
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(</span>
727
+ <span class="cstat-no" title="statement not covered" > `No additional PersistanceEntityServices exist for DomainEntityService ${this.persistanceEntityService.getEntityName()}.`</span>
728
+ <span class="cstat-no" title="statement not covered" > );</span>
729
+ <span class="cstat-no" title="statement not covered" > }</span>
730
+ <span class="cstat-no" title="statement not covered" > for (const i in serviceNames) {</span>
731
+ <span class="cstat-no" title="statement not covered" > const serviceName = serviceNames[i];</span>
732
+ <span class="cstat-no" title="statement not covered" > const service = this.additionalPersistanceEntityServices[serviceName];</span>
733
+ <span class="cstat-no" title="statement not covered" > if (!service) {</span>
734
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(</span>
735
+ <span class="cstat-no" title="statement not covered" > `PersistanceEntityService ${serviceName} does not exist for DomainEntityService ${this.persistanceEntityService.getEntityName()}.`</span>
736
+ <span class="cstat-no" title="statement not covered" > );</span>
737
+ <span class="cstat-no" title="statement not covered" > }</span>
738
+ <span class="cstat-no" title="statement not covered" > returnDataByService[serviceName] = (await (</span>
739
+ <span class="cstat-no" title="statement not covered" > service[methodName as keyof PersistanceEntityService&lt;Entity&gt;] as unknown as (</span>
740
+ ..._args: unknown[]
741
+ ) =&gt; Promise&lt;ServiceReturnData&gt;
742
+ <span class="cstat-no" title="statement not covered" > ).apply(service, methodArgs)) as ServiceReturnData;</span>
743
+ <span class="cstat-no" title="statement not covered" > }</span>
744
+ <span class="cstat-no" title="statement not covered" > return returnDataByService;</span>
745
+ }
746
+ &nbsp;
747
+ // eslint-disable-next-line no-unused-vars
748
+ public update(data: Data['Update'], options: DomainUpdateOptions): Promise&lt;DomainUpdateResult&lt;Entity&gt;&gt;;
749
+ async update(data: Data['Update'], options: DomainUpdateOptions): Promise&lt;DomainUpdateResult&lt;Entity&gt;&gt; {
750
+ if (!this.defaultMethods?.includes(DomainMethod.Update)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
751
+ <span class="cstat-no" title="statement not covered" > throw new ApplicationError(`Method update not implemented for class ${typeof this}.`);</span>
752
+ <span class="cstat-no" title="statement not covered" > }</span>
753
+ const { persistanceServices = [DomainPersistanceEntityServiceType.Main], ...otherOptions } = options;
754
+ const [firstServiceName, ...otherServiceNames] = persistanceServices;
755
+ const result = await this.getPersistanceService(firstServiceName).update(data, otherOptions);
756
+ return {
757
+ result,
758
+ resultsByService: await this.runMethodInAdditionalServices(<span class="branch-0 cbranch-no" title="branch not covered" >otherServiceNames || [], {</span>
759
+ methodArgs: [data, otherOptions],
760
+ methodName: 'update'
761
+ })
762
+ };
763
+ }
764
+ }
765
+ &nbsp;</pre></td></tr></table></pre>
766
+
767
+ <div class='push'></div><!-- for sticky footer -->
768
+ </div><!-- /wrapper -->
769
+ <div class='footer quiet pad2 space-top1 center small'>
770
+ Code coverage generated by
771
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
772
+ at 2025-03-29T20:31:24.841Z
773
+ </div>
774
+ <script src="../../../prettify.js"></script>
775
+ <script>
776
+ window.onload = function () {
777
+ prettyPrint();
778
+ };
779
+ </script>
780
+ <script src="../../../sorter.js"></script>
781
+ <script src="../../../block-navigation.js"></script>
782
+ </body>
783
+ </html>
784
+