topkat-utils 1.3.12 → 1.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/.yarn/install-state.gz +0 -0
- package/coverage/clover.xml +0 -1991
- package/coverage/coverage-final.json +0 -17
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/clean-stack-trace.ts.html +0 -199
- package/coverage/lcov-report/config.ts.html +0 -352
- package/coverage/lcov-report/error-utils.ts.html +0 -766
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -341
- package/coverage/lcov-report/is-empty.ts.html +0 -103
- package/coverage/lcov-report/is-nodejs.ts.html +0 -109
- package/coverage/lcov-report/is-object.ts.html +0 -91
- package/coverage/lcov-report/isset.ts.html +0 -91
- package/coverage/lcov-report/logger-utils.ts.html +0 -1159
- package/coverage/lcov-report/loop-utils.ts.html +0 -574
- package/coverage/lcov-report/math-utils.ts.html +0 -259
- package/coverage/lcov-report/object-utils.ts.html +0 -1471
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/regexp-utils.ts.html +0 -238
- package/coverage/lcov-report/remove-circular-json-stringify.ts.html +0 -139
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/string-utils.ts.html +0 -964
- package/coverage/lcov-report/timer-utils.ts.html +0 -349
- package/coverage/lcov-report/transaction-utils.ts.html +0 -274
- package/coverage/lcov.info +0 -2405
|
@@ -1,964 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for string-utils.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> string-utils.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">34.81% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>102/293</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/0</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">0% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/24</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">34.81% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>102/293</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 low'></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>
|
|
300
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
-
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
-
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
-
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
-
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
-
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
-
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
-
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
-
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
-
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
-
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
-
<a name='L294'></a><a href='#L294'>294</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
360
|
-
<span class="cline-any cline-yes">2x</span>
|
|
361
|
-
<span class="cline-any cline-yes">2x</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">2x</span>
|
|
367
|
-
<span class="cline-any cline-yes">2x</span>
|
|
368
|
-
<span class="cline-any cline-yes">2x</span>
|
|
369
|
-
<span class="cline-any cline-no"> </span>
|
|
370
|
-
<span class="cline-any cline-no"> </span>
|
|
371
|
-
<span class="cline-any cline-no"> </span>
|
|
372
|
-
<span class="cline-any cline-no"> </span>
|
|
373
|
-
<span class="cline-any cline-yes">2x</span>
|
|
374
|
-
<span class="cline-any cline-yes">2x</span>
|
|
375
|
-
<span class="cline-any cline-no"> </span>
|
|
376
|
-
<span class="cline-any cline-no"> </span>
|
|
377
|
-
<span class="cline-any cline-no"> </span>
|
|
378
|
-
<span class="cline-any cline-no"> </span>
|
|
379
|
-
<span class="cline-any cline-yes">2x</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-no"> </span>
|
|
385
|
-
<span class="cline-any cline-no"> </span>
|
|
386
|
-
<span class="cline-any cline-no"> </span>
|
|
387
|
-
<span class="cline-any cline-no"> </span>
|
|
388
|
-
<span class="cline-any cline-yes">2x</span>
|
|
389
|
-
<span class="cline-any cline-yes">2x</span>
|
|
390
|
-
<span class="cline-any cline-yes">2x</span>
|
|
391
|
-
<span class="cline-any cline-yes">2x</span>
|
|
392
|
-
<span class="cline-any cline-no"> </span>
|
|
393
|
-
<span class="cline-any cline-no"> </span>
|
|
394
|
-
<span class="cline-any cline-no"> </span>
|
|
395
|
-
<span class="cline-any cline-no"> </span>
|
|
396
|
-
<span class="cline-any cline-yes">2x</span>
|
|
397
|
-
<span class="cline-any cline-yes">2x</span>
|
|
398
|
-
<span class="cline-any cline-yes">2x</span>
|
|
399
|
-
<span class="cline-any cline-no"> </span>
|
|
400
|
-
<span class="cline-any cline-no"> </span>
|
|
401
|
-
<span class="cline-any cline-no"> </span>
|
|
402
|
-
<span class="cline-any cline-no"> </span>
|
|
403
|
-
<span class="cline-any cline-yes">2x</span>
|
|
404
|
-
<span class="cline-any cline-yes">2x</span>
|
|
405
|
-
<span class="cline-any cline-yes">2x</span>
|
|
406
|
-
<span class="cline-any cline-yes">2x</span>
|
|
407
|
-
<span class="cline-any cline-no"> </span>
|
|
408
|
-
<span class="cline-any cline-no"> </span>
|
|
409
|
-
<span class="cline-any cline-no"> </span>
|
|
410
|
-
<span class="cline-any cline-no"> </span>
|
|
411
|
-
<span class="cline-any cline-yes">2x</span>
|
|
412
|
-
<span class="cline-any cline-no"> </span>
|
|
413
|
-
<span class="cline-any cline-yes">2x</span>
|
|
414
|
-
<span class="cline-any cline-no"> </span>
|
|
415
|
-
<span class="cline-any cline-no"> </span>
|
|
416
|
-
<span class="cline-any cline-no"> </span>
|
|
417
|
-
<span class="cline-any cline-yes">2x</span>
|
|
418
|
-
<span class="cline-any cline-yes">2x</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-no"> </span>
|
|
423
|
-
<span class="cline-any cline-no"> </span>
|
|
424
|
-
<span class="cline-any cline-no"> </span>
|
|
425
|
-
<span class="cline-any cline-no"> </span>
|
|
426
|
-
<span class="cline-any cline-no"> </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-yes">2x</span>
|
|
430
|
-
<span class="cline-any cline-yes">2x</span>
|
|
431
|
-
<span class="cline-any cline-yes">2x</span>
|
|
432
|
-
<span class="cline-any cline-yes">2x</span>
|
|
433
|
-
<span class="cline-any cline-yes">2x</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-no"> </span>
|
|
438
|
-
<span class="cline-any cline-no"> </span>
|
|
439
|
-
<span class="cline-any cline-no"> </span>
|
|
440
|
-
<span class="cline-any cline-no"> </span>
|
|
441
|
-
<span class="cline-any cline-no"> </span>
|
|
442
|
-
<span class="cline-any cline-no"> </span>
|
|
443
|
-
<span class="cline-any cline-no"> </span>
|
|
444
|
-
<span class="cline-any cline-no"> </span>
|
|
445
|
-
<span class="cline-any cline-no"> </span>
|
|
446
|
-
<span class="cline-any cline-no"> </span>
|
|
447
|
-
<span class="cline-any cline-no"> </span>
|
|
448
|
-
<span class="cline-any cline-no"> </span>
|
|
449
|
-
<span class="cline-any cline-no"> </span>
|
|
450
|
-
<span class="cline-any cline-no"> </span>
|
|
451
|
-
<span class="cline-any cline-no"> </span>
|
|
452
|
-
<span class="cline-any cline-no"> </span>
|
|
453
|
-
<span class="cline-any cline-no"> </span>
|
|
454
|
-
<span class="cline-any cline-no"> </span>
|
|
455
|
-
<span class="cline-any cline-no"> </span>
|
|
456
|
-
<span class="cline-any cline-no"> </span>
|
|
457
|
-
<span class="cline-any cline-no"> </span>
|
|
458
|
-
<span class="cline-any cline-no"> </span>
|
|
459
|
-
<span class="cline-any cline-no"> </span>
|
|
460
|
-
<span class="cline-any cline-no"> </span>
|
|
461
|
-
<span class="cline-any cline-no"> </span>
|
|
462
|
-
<span class="cline-any cline-no"> </span>
|
|
463
|
-
<span class="cline-any cline-no"> </span>
|
|
464
|
-
<span class="cline-any cline-no"> </span>
|
|
465
|
-
<span class="cline-any cline-no"> </span>
|
|
466
|
-
<span class="cline-any cline-no"> </span>
|
|
467
|
-
<span class="cline-any cline-no"> </span>
|
|
468
|
-
<span class="cline-any cline-no"> </span>
|
|
469
|
-
<span class="cline-any cline-no"> </span>
|
|
470
|
-
<span class="cline-any cline-no"> </span>
|
|
471
|
-
<span class="cline-any cline-no"> </span>
|
|
472
|
-
<span class="cline-any cline-no"> </span>
|
|
473
|
-
<span class="cline-any cline-no"> </span>
|
|
474
|
-
<span class="cline-any cline-no"> </span>
|
|
475
|
-
<span class="cline-any cline-no"> </span>
|
|
476
|
-
<span class="cline-any cline-no"> </span>
|
|
477
|
-
<span class="cline-any cline-no"> </span>
|
|
478
|
-
<span class="cline-any cline-no"> </span>
|
|
479
|
-
<span class="cline-any cline-no"> </span>
|
|
480
|
-
<span class="cline-any cline-no"> </span>
|
|
481
|
-
<span class="cline-any cline-no"> </span>
|
|
482
|
-
<span class="cline-any cline-no"> </span>
|
|
483
|
-
<span class="cline-any cline-no"> </span>
|
|
484
|
-
<span class="cline-any cline-no"> </span>
|
|
485
|
-
<span class="cline-any cline-no"> </span>
|
|
486
|
-
<span class="cline-any cline-no"> </span>
|
|
487
|
-
<span class="cline-any cline-no"> </span>
|
|
488
|
-
<span class="cline-any cline-no"> </span>
|
|
489
|
-
<span class="cline-any cline-no"> </span>
|
|
490
|
-
<span class="cline-any cline-no"> </span>
|
|
491
|
-
<span class="cline-any cline-no"> </span>
|
|
492
|
-
<span class="cline-any cline-no"> </span>
|
|
493
|
-
<span class="cline-any cline-no"> </span>
|
|
494
|
-
<span class="cline-any cline-yes">2x</span>
|
|
495
|
-
<span class="cline-any cline-yes">2x</span>
|
|
496
|
-
<span class="cline-any cline-yes">2x</span>
|
|
497
|
-
<span class="cline-any cline-yes">2x</span>
|
|
498
|
-
<span class="cline-any cline-yes">2x</span>
|
|
499
|
-
<span class="cline-any cline-yes">2x</span>
|
|
500
|
-
<span class="cline-any cline-no"> </span>
|
|
501
|
-
<span class="cline-any cline-no"> </span>
|
|
502
|
-
<span class="cline-any cline-no"> </span>
|
|
503
|
-
<span class="cline-any cline-no"> </span>
|
|
504
|
-
<span class="cline-any cline-no"> </span>
|
|
505
|
-
<span class="cline-any cline-no"> </span>
|
|
506
|
-
<span class="cline-any cline-no"> </span>
|
|
507
|
-
<span class="cline-any cline-no"> </span>
|
|
508
|
-
<span class="cline-any cline-no"> </span>
|
|
509
|
-
<span class="cline-any cline-no"> </span>
|
|
510
|
-
<span class="cline-any cline-no"> </span>
|
|
511
|
-
<span class="cline-any cline-no"> </span>
|
|
512
|
-
<span class="cline-any cline-no"> </span>
|
|
513
|
-
<span class="cline-any cline-no"> </span>
|
|
514
|
-
<span class="cline-any cline-no"> </span>
|
|
515
|
-
<span class="cline-any cline-no"> </span>
|
|
516
|
-
<span class="cline-any cline-no"> </span>
|
|
517
|
-
<span class="cline-any cline-no"> </span>
|
|
518
|
-
<span class="cline-any cline-no"> </span>
|
|
519
|
-
<span class="cline-any cline-no"> </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">2x</span>
|
|
524
|
-
<span class="cline-any cline-yes">2x</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">2x</span>
|
|
530
|
-
<span class="cline-any cline-no"> </span>
|
|
531
|
-
<span class="cline-any cline-no"> </span>
|
|
532
|
-
<span class="cline-any cline-no"> </span>
|
|
533
|
-
<span class="cline-any cline-no"> </span>
|
|
534
|
-
<span class="cline-any cline-no"> </span>
|
|
535
|
-
<span class="cline-any cline-no"> </span>
|
|
536
|
-
<span class="cline-any cline-no"> </span>
|
|
537
|
-
<span class="cline-any cline-no"> </span>
|
|
538
|
-
<span class="cline-any cline-no"> </span>
|
|
539
|
-
<span class="cline-any cline-no"> </span>
|
|
540
|
-
<span class="cline-any cline-no"> </span>
|
|
541
|
-
<span class="cline-any cline-no"> </span>
|
|
542
|
-
<span class="cline-any cline-no"> </span>
|
|
543
|
-
<span class="cline-any cline-no"> </span>
|
|
544
|
-
<span class="cline-any cline-no"> </span>
|
|
545
|
-
<span class="cline-any cline-no"> </span>
|
|
546
|
-
<span class="cline-any cline-no"> </span>
|
|
547
|
-
<span class="cline-any cline-yes">2x</span>
|
|
548
|
-
<span class="cline-any cline-no"> </span>
|
|
549
|
-
<span class="cline-any cline-no"> </span>
|
|
550
|
-
<span class="cline-any cline-no"> </span>
|
|
551
|
-
<span class="cline-any cline-yes">2x</span>
|
|
552
|
-
<span class="cline-any cline-yes">2x</span>
|
|
553
|
-
<span class="cline-any cline-yes">2x</span>
|
|
554
|
-
<span class="cline-any cline-yes">2x</span>
|
|
555
|
-
<span class="cline-any cline-yes">2x</span>
|
|
556
|
-
<span class="cline-any cline-yes">2x</span>
|
|
557
|
-
<span class="cline-any cline-no"> </span>
|
|
558
|
-
<span class="cline-any cline-no"> </span>
|
|
559
|
-
<span class="cline-any cline-no"> </span>
|
|
560
|
-
<span class="cline-any cline-no"> </span>
|
|
561
|
-
<span class="cline-any cline-no"> </span>
|
|
562
|
-
<span class="cline-any cline-no"> </span>
|
|
563
|
-
<span class="cline-any cline-no"> </span>
|
|
564
|
-
<span class="cline-any cline-yes">2x</span>
|
|
565
|
-
<span class="cline-any cline-yes">2x</span>
|
|
566
|
-
<span class="cline-any cline-no"> </span>
|
|
567
|
-
<span class="cline-any cline-no"> </span>
|
|
568
|
-
<span class="cline-any cline-no"> </span>
|
|
569
|
-
<span class="cline-any cline-no"> </span>
|
|
570
|
-
<span class="cline-any cline-no"> </span>
|
|
571
|
-
<span class="cline-any cline-no"> </span>
|
|
572
|
-
<span class="cline-any cline-yes">2x</span>
|
|
573
|
-
<span class="cline-any cline-yes">2x</span>
|
|
574
|
-
<span class="cline-any cline-yes">2x</span>
|
|
575
|
-
<span class="cline-any cline-yes">2x</span>
|
|
576
|
-
<span class="cline-any cline-yes">2x</span>
|
|
577
|
-
<span class="cline-any cline-yes">2x</span>
|
|
578
|
-
<span class="cline-any cline-yes">2x</span>
|
|
579
|
-
<span class="cline-any cline-yes">2x</span>
|
|
580
|
-
<span class="cline-any cline-yes">2x</span>
|
|
581
|
-
<span class="cline-any cline-yes">2x</span>
|
|
582
|
-
<span class="cline-any cline-yes">2x</span>
|
|
583
|
-
<span class="cline-any cline-yes">2x</span>
|
|
584
|
-
<span class="cline-any cline-yes">2x</span>
|
|
585
|
-
<span class="cline-any cline-yes">2x</span>
|
|
586
|
-
<span class="cline-any cline-yes">2x</span>
|
|
587
|
-
<span class="cline-any cline-yes">2x</span>
|
|
588
|
-
<span class="cline-any cline-yes">2x</span>
|
|
589
|
-
<span class="cline-any cline-no"> </span>
|
|
590
|
-
<span class="cline-any cline-no"> </span>
|
|
591
|
-
<span class="cline-any cline-no"> </span>
|
|
592
|
-
<span class="cline-any cline-no"> </span>
|
|
593
|
-
<span class="cline-any cline-no"> </span>
|
|
594
|
-
<span class="cline-any cline-no"> </span>
|
|
595
|
-
<span class="cline-any cline-no"> </span>
|
|
596
|
-
<span class="cline-any cline-no"> </span>
|
|
597
|
-
<span class="cline-any cline-no"> </span>
|
|
598
|
-
<span class="cline-any cline-yes">2x</span>
|
|
599
|
-
<span class="cline-any cline-yes">2x</span>
|
|
600
|
-
<span class="cline-any cline-yes">2x</span>
|
|
601
|
-
<span class="cline-any cline-no"> </span>
|
|
602
|
-
<span class="cline-any cline-yes">2x</span>
|
|
603
|
-
<span class="cline-any cline-no"> </span>
|
|
604
|
-
<span class="cline-any cline-no"> </span>
|
|
605
|
-
<span class="cline-any cline-no"> </span>
|
|
606
|
-
<span class="cline-any cline-no"> </span>
|
|
607
|
-
<span class="cline-any cline-no"> </span>
|
|
608
|
-
<span class="cline-any cline-no"> </span>
|
|
609
|
-
<span class="cline-any cline-no"> </span>
|
|
610
|
-
<span class="cline-any cline-no"> </span>
|
|
611
|
-
<span class="cline-any cline-no"> </span>
|
|
612
|
-
<span class="cline-any cline-no"> </span>
|
|
613
|
-
<span class="cline-any cline-no"> </span>
|
|
614
|
-
<span class="cline-any cline-no"> </span>
|
|
615
|
-
<span class="cline-any cline-no"> </span>
|
|
616
|
-
<span class="cline-any cline-no"> </span>
|
|
617
|
-
<span class="cline-any cline-no"> </span>
|
|
618
|
-
<span class="cline-any cline-no"> </span>
|
|
619
|
-
<span class="cline-any cline-no"> </span>
|
|
620
|
-
<span class="cline-any cline-no"> </span>
|
|
621
|
-
<span class="cline-any cline-yes">2x</span>
|
|
622
|
-
<span class="cline-any cline-yes">2x</span>
|
|
623
|
-
<span class="cline-any cline-no"> </span>
|
|
624
|
-
<span class="cline-any cline-no"> </span>
|
|
625
|
-
<span class="cline-any cline-no"> </span>
|
|
626
|
-
<span class="cline-any cline-yes">2x</span>
|
|
627
|
-
<span class="cline-any cline-yes">2x</span>
|
|
628
|
-
<span class="cline-any cline-no"> </span>
|
|
629
|
-
<span class="cline-any cline-no"> </span>
|
|
630
|
-
<span class="cline-any cline-no"> </span>
|
|
631
|
-
<span class="cline-any cline-yes">2x</span>
|
|
632
|
-
<span class="cline-any cline-yes">2x</span>
|
|
633
|
-
<span class="cline-any cline-yes">2x</span>
|
|
634
|
-
<span class="cline-any cline-no"> </span>
|
|
635
|
-
<span class="cline-any cline-no"> </span>
|
|
636
|
-
<span class="cline-any cline-no"> </span>
|
|
637
|
-
<span class="cline-any cline-no"> </span>
|
|
638
|
-
<span class="cline-any cline-no"> </span>
|
|
639
|
-
<span class="cline-any cline-no"> </span>
|
|
640
|
-
<span class="cline-any cline-no"> </span>
|
|
641
|
-
<span class="cline-any cline-no"> </span>
|
|
642
|
-
<span class="cline-any cline-yes">2x</span>
|
|
643
|
-
<span class="cline-any cline-yes">2x</span>
|
|
644
|
-
<span class="cline-any cline-no"> </span>
|
|
645
|
-
<span class="cline-any cline-no"> </span>
|
|
646
|
-
<span class="cline-any cline-no"> </span>
|
|
647
|
-
<span class="cline-any cline-yes">2x</span>
|
|
648
|
-
<span class="cline-any cline-yes">2x</span>
|
|
649
|
-
<span class="cline-any cline-no"> </span>
|
|
650
|
-
<span class="cline-any cline-no"> </span>
|
|
651
|
-
<span class="cline-any cline-no"> </span>
|
|
652
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">//----------------------------------------
|
|
653
|
-
// STRING UTILS
|
|
654
|
-
//----------------------------------------
|
|
655
|
-
import { err500IfEmptyOrNotSet } from './error-utils'
|
|
656
|
-
import { ObjectGeneric } from './types'
|
|
657
|
-
import { isset } from './isset'
|
|
658
|
-
|
|
659
|
-
const getWordBits = <span class="fstat-no" title="function not covered" >(wb: string[] | [string[]]): string[] => Array.isArray(wb[0]) ? wb[0] : wb as any</span>
|
|
660
|
-
|
|
661
|
-
/**Eg: camelCase('hello', 'world') => 'helloWorld' */
|
|
662
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function camelCase(...wordBits: string[] | [string[]]): string {</span></span>
|
|
663
|
-
<span class="cstat-no" title="statement not covered" > const wordBitsReal = getWordBits(wordBits)</span>
|
|
664
|
-
<span class="cstat-no" title="statement not covered" > return wordBitsReal.filter(e => e).map((w, i) => i === 0 ? w.toLowerCase() : capitalize1st(w, true)).join('')</span>
|
|
665
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
666
|
-
|
|
667
|
-
/** Replace 'hello-world', 'hello World', 'hello_World', 'helloWorld' => 'helloWorld' */
|
|
668
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function camelCaseify(word: string) {</span></span>
|
|
669
|
-
<span class="cstat-no" title="statement not covered" > const wordBitsReal = word.replace(/([A-Z])/g, ' $1').split(/[- _]/g)</span>
|
|
670
|
-
<span class="cstat-no" title="statement not covered" > return camelCase(wordBitsReal)</span>
|
|
671
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
/**Eg: snake_case
|
|
675
|
-
* trimmed but not lowerCased
|
|
676
|
-
*/
|
|
677
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function snakeCase(...wordBits: string[] | [string[]]): string {</span></span>
|
|
678
|
-
<span class="cstat-no" title="statement not covered" > const wordBitsReal = getWordBits(wordBits)</span>
|
|
679
|
-
<span class="cstat-no" title="statement not covered" > return wordBitsReal.filter(e => e).map(w => w.trim()).join('_')</span>
|
|
680
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
681
|
-
/**Eg: kebab-case
|
|
682
|
-
* trimmed AND lowerCased
|
|
683
|
-
* undefined, null are removed
|
|
684
|
-
*/
|
|
685
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function kebabCase(...wordBits: string[] | [string[]]): string {</span></span>
|
|
686
|
-
<span class="cstat-no" title="statement not covered" > const wordBitsReal = getWordBits(wordBits)</span>
|
|
687
|
-
<span class="cstat-no" title="statement not covered" > return wordBitsReal.filter(e => e).map(w => w.trim().toLowerCase()).join('-')</span>
|
|
688
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
689
|
-
/**Eg: PascalCase
|
|
690
|
-
* undefined, null are removed
|
|
691
|
-
*/
|
|
692
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function pascalCase(...wordBits: string[] | [string[]]): string {</span></span>
|
|
693
|
-
<span class="cstat-no" title="statement not covered" > const wordBitsReal = getWordBits(wordBits)</span>
|
|
694
|
-
<span class="cstat-no" title="statement not covered" > return wordBitsReal.filter(e => e).map(w => capitalize1st(w, true)).join('')</span>
|
|
695
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
696
|
-
|
|
697
|
-
/**Eg: Titlecase
|
|
698
|
-
* undefined, null are removed
|
|
699
|
-
*/
|
|
700
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function titleCase(...wordBits: string[] | [string[]]): string {</span></span>
|
|
701
|
-
<span class="cstat-no" title="statement not covered" > const wordBitsReal = getWordBits(wordBits)</span>
|
|
702
|
-
<span class="cstat-no" title="statement not covered" > return capitalize1st(wordBitsReal.filter(e => e).map(w => w.trim()).join(''), true)</span>
|
|
703
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
704
|
-
|
|
705
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function capitalize1st(str = '', lowercaseTheRest = false): string { return str ? str[0].toUpperCase() + (lowercaseTheRest ? str.toLowerCase() : str).slice(1) : str }</span></span>
|
|
706
|
-
|
|
707
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function camelCaseToWords(str: string): string[] {</span></span>
|
|
708
|
-
<span class="cstat-no" title="statement not covered" > return str ? str.trim().replace(/([A-Z])/g, '-$1').toLowerCase().split('-') : []</span>
|
|
709
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
710
|
-
|
|
711
|
-
/** GIVEN A STRING '{ blah;2}, ['nested,(what,ever)']' AND A SEPARATOR ",""
|
|
712
|
-
* This will return the content separated by first level of separators
|
|
713
|
-
* @return ["{ blah;2}", "['nested,(what,ever)']"]
|
|
714
|
-
*/
|
|
715
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function getValuesBetweenSeparator(str: string, separator: string, removeTrailingSpaces = true) {</span></span>
|
|
716
|
-
<span class="cstat-no" title="statement not covered" > err500IfEmptyOrNotSet({ separator, str })</span>
|
|
717
|
-
<span class="cstat-no" title="statement not covered" > const { outer } = getValuesBetweenStrings(str, separator, undefined, undefined, undefined, removeTrailingSpaces)</span>
|
|
718
|
-
<span class="cstat-no" title="statement not covered" > return outer</span>
|
|
719
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
/** GIVEN A STRING "a: [ 'str', /[^]]/, '[aa]]]str', () => [ nestedArray ] ], b: ['arr']"
|
|
723
|
-
* @return matching: [ "'str', /[^]]/, '[aa]]]str', () => [ nestedArray ]", "'arr'" ], between: [ "a:", ", b: " ]
|
|
724
|
-
* @param str base string
|
|
725
|
-
* @param openingOrSeparator opening character OR separator if closing not set
|
|
726
|
-
* @param closing
|
|
727
|
-
* @param ignoreBetweenOpen default ['\'', '`', '"', '/'], when reaching an opening char, it will ignore all until it find the corresponding closing char
|
|
728
|
-
* @param ignoreBetweenClose default ['\'', '`', '"', '/'] list of corresponding closing chars
|
|
729
|
-
*/
|
|
730
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function getValuesBetweenStrings(str: string, openingOrSeparator, closing, ignoreBetweenOpen = ['\'', '`', '"', '/'], ignoreBetweenClose = ['\'', '`', '"', '/'], removeTrailingSpaces = true) {</span></span>
|
|
731
|
-
<span class="cstat-no" title="statement not covered" > err500IfEmptyOrNotSet({ openingOrSeparator, str })</span>
|
|
732
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
733
|
-
<span class="cstat-no" title="statement not covered" > str = str.replace(/<</g, '§§"').replace(/>>/g, '"§§')</span>
|
|
734
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
735
|
-
<span class="cstat-no" title="statement not covered" > const arrayValues: string[] = []</span>
|
|
736
|
-
<span class="cstat-no" title="statement not covered" > const betweenArray: string[] = []</span>
|
|
737
|
-
<span class="cstat-no" title="statement not covered" > let level = 0</span>
|
|
738
|
-
<span class="cstat-no" title="statement not covered" > let ignoreUntil: boolean | string = false</span>
|
|
739
|
-
<span class="cstat-no" title="statement not covered" > let actualValue = ''</span>
|
|
740
|
-
<span class="cstat-no" title="statement not covered" > let precedingChar = ''</span>
|
|
741
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
742
|
-
<span class="cstat-no" title="statement not covered" > let separatorMode = false</span>
|
|
743
|
-
<span class="cstat-no" title="statement not covered" > if (!closing) separatorMode = true</span>
|
|
744
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
745
|
-
<span class="cstat-no" title="statement not covered" > const separator = separatorMode ? openingOrSeparator : false</span>
|
|
746
|
-
<span class="cstat-no" title="statement not covered" > const openingChars = separatorMode ? ['(', '{', '['] : [openingOrSeparator]</span>
|
|
747
|
-
<span class="cstat-no" title="statement not covered" > const closingChars = separatorMode ? [')', '}', ']'] : [closing]</span>
|
|
748
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
749
|
-
<span class="cstat-no" title="statement not covered" > const pushActualValue = () => {</span>
|
|
750
|
-
<span class="cstat-no" title="statement not covered" > if (level === 0) betweenArray.push(removeTrailingSpaces ? actualValue.replace(/(?:^\s+|\s+$)/g, '') : actualValue)</span>
|
|
751
|
-
<span class="cstat-no" title="statement not covered" > else arrayValues.push(removeTrailingSpaces ? actualValue.replace(/(?:^\s+|\s+$)/g, '') : actualValue)</span>
|
|
752
|
-
<span class="cstat-no" title="statement not covered" > actualValue = ''</span>
|
|
753
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
754
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
755
|
-
<span class="cstat-no" title="statement not covered" > str.split('').forEach(char => {</span>
|
|
756
|
-
<span class="cstat-no" title="statement not covered" > // handle unwanted nested structure like characters in a strings that may be a unmatched closing / opening character</span>
|
|
757
|
-
<span class="cstat-no" title="statement not covered" > // Eg: {'azer}aze'}</span>
|
|
758
|
-
<span class="cstat-no" title="statement not covered" > if (ignoreUntil && char === ignoreUntil && precedingChar !== '\\') ignoreUntil = false</span>
|
|
759
|
-
<span class="cstat-no" title="statement not covered" > else if (ignoreUntil && char !== ignoreUntil) ignoreUntil = true</span>
|
|
760
|
-
<span class="cstat-no" title="statement not covered" > else if (ignoreBetweenOpen.includes(char)) {</span>
|
|
761
|
-
<span class="cstat-no" title="statement not covered" > const indexChar = ignoreBetweenOpen.findIndex(char2 => char2 === char)</span>
|
|
762
|
-
<span class="cstat-no" title="statement not covered" > ignoreUntil = ignoreBetweenClose[indexChar]</span>
|
|
763
|
-
<span class="cstat-no" title="statement not covered" > } else if (openingChars.includes(char)) {</span>
|
|
764
|
-
<span class="cstat-no" title="statement not covered" > // handle nested structures</span>
|
|
765
|
-
<span class="cstat-no" title="statement not covered" > if (!separatorMode && level === 0) pushActualValue()</span>
|
|
766
|
-
<span class="cstat-no" title="statement not covered" > level++</span>
|
|
767
|
-
<span class="cstat-no" title="statement not covered" > if (!separatorMode) return</span>
|
|
768
|
-
<span class="cstat-no" title="statement not covered" > } else if (closingChars.includes(char)) {</span>
|
|
769
|
-
<span class="cstat-no" title="statement not covered" > // handle nested structures</span>
|
|
770
|
-
<span class="cstat-no" title="statement not covered" > if (!separatorMode && level === 1) pushActualValue()</span>
|
|
771
|
-
<span class="cstat-no" title="statement not covered" > level--</span>
|
|
772
|
-
<span class="cstat-no" title="statement not covered" > } else if (separatorMode && level === 0 && char === separator) {</span>
|
|
773
|
-
<span class="cstat-no" title="statement not covered" > // SEPARATOR MODE</span>
|
|
774
|
-
<span class="cstat-no" title="statement not covered" > pushActualValue()</span>
|
|
775
|
-
<span class="cstat-no" title="statement not covered" > return</span>
|
|
776
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
777
|
-
<span class="cstat-no" title="statement not covered" > actualValue += char</span>
|
|
778
|
-
<span class="cstat-no" title="statement not covered" > precedingChar = char</span>
|
|
779
|
-
<span class="cstat-no" title="statement not covered" > })</span>
|
|
780
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
781
|
-
<span class="cstat-no" title="statement not covered" > pushActualValue()</span>
|
|
782
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
783
|
-
<span class="cstat-no" title="statement not covered" > const replaceValz = arr => arr.map(v => v.replace(/§§"/g, '<<').replace(/"§§/g, '>>')).filter(v => v)</span>
|
|
784
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
785
|
-
<span class="cstat-no" title="statement not covered" > return { inner: replaceValz(arrayValues), outer: replaceValz(betweenArray) }</span>
|
|
786
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
787
|
-
|
|
788
|
-
/** Remove accentued character from string and eventually special chars and numbers
|
|
789
|
-
* @param {String} str input string
|
|
790
|
-
* @param {Object} config { removeSpecialChars: false, removeNumbers: false, removeSpaces: false }
|
|
791
|
-
* @returns String with all accentued char replaced by their non accentued version + config formattting
|
|
792
|
-
*/
|
|
793
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function convertAccentedCharacters(str: string, config: { removeNumbers?: boolean, removeSpecialChars?: boolean, removeSpaces?: boolean } = {}) {</span></span>
|
|
794
|
-
<span class="cstat-no" title="statement not covered" > let output = str</span>
|
|
795
|
-
<span class="cstat-no" title="statement not covered" > .trim()</span>
|
|
796
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[àáâãäå]/g, 'a')</span>
|
|
797
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ÀÁÂÃÄÅ]/g, 'A')</span>
|
|
798
|
-
<span class="cstat-no" title="statement not covered" > .replace(/ç/g, 'c')</span>
|
|
799
|
-
<span class="cstat-no" title="statement not covered" > .replace(/Ç/g, 'C')</span>
|
|
800
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[èéêë]/g, 'e')</span>
|
|
801
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ÈÉÊË]/g, 'E')</span>
|
|
802
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ìíîï]/g, 'i')</span>
|
|
803
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ÌÍÎÏ]/g, 'I')</span>
|
|
804
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ôö]/g, 'o')</span>
|
|
805
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ÔÖ]/g, 'O')</span>
|
|
806
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ùúû]/g, 'u')</span>
|
|
807
|
-
<span class="cstat-no" title="statement not covered" > .replace(/[ÙÚÛ]/g, 'U')</span>
|
|
808
|
-
<span class="cstat-no" title="statement not covered" > if (config.removeNumbers === true) output = output.replace(/\d+/g, '')</span>
|
|
809
|
-
<span class="cstat-no" title="statement not covered" > if (config.removeSpecialChars === true) output = output.replace(/[^A-Za-z0-9 ]/g, '')</span>
|
|
810
|
-
<span class="cstat-no" title="statement not covered" > if (config.removeSpaces === true) output = output.replace(/\s+/g, '')</span>
|
|
811
|
-
<span class="cstat-no" title="statement not covered" > return output</span>
|
|
812
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
let generatedTokens: string[] = [] // cache to avoid collision
|
|
816
|
-
let lastTs = Date.now()
|
|
817
|
-
/** minLength 8 if unique
|
|
818
|
-
* @param {Number} length default: 20
|
|
819
|
-
* @param {Boolean} unique default: true. Generate a real unique token base on the date. min length will be min 8 in this case
|
|
820
|
-
* @param {string} mode one of ['alphanumeric', 'hexadecimal']
|
|
821
|
-
* NOTE: to generate a mongoDB Random Id, use the params: 24, true, 'hexadecimal'
|
|
822
|
-
*/
|
|
823
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function generateToken(length = 20, unique = true, mode: 'alphanumeric' | 'hexadecimal' = 'alphanumeric') {</span></span>
|
|
824
|
-
<span class="cstat-no" title="statement not covered" > const charConvNumeric = mode === 'alphanumeric' ? 36 : 16</span>
|
|
825
|
-
<span class="cstat-no" title="statement not covered" > if (unique && length < 8) throw new Error('generateToken can not be used with less than 8 characters when unique is set to true')</span>
|
|
826
|
-
<span class="cstat-no" title="statement not covered" > let token: string</span>
|
|
827
|
-
<span class="cstat-no" title="statement not covered" > let tokenTs: number</span>
|
|
828
|
-
<span class="cstat-no" title="statement not covered" > do {</span>
|
|
829
|
-
<span class="cstat-no" title="statement not covered" > tokenTs = Date.now()</span>
|
|
830
|
-
<span class="cstat-no" title="statement not covered" > token = unique ? tokenTs.toString(charConvNumeric) : ''</span>
|
|
831
|
-
<span class="cstat-no" title="statement not covered" > while (token.length < length) token += Math.random().toString(charConvNumeric).substr(2, 1) // char alphaNumeric aléatoire</span>
|
|
832
|
-
<span class="cstat-no" title="statement not covered" > } while (generatedTokens.includes(token))</span>
|
|
833
|
-
<span class="cstat-no" title="statement not covered" > if (lastTs < tokenTs) {</span>
|
|
834
|
-
<span class="cstat-no" title="statement not covered" > generatedTokens = [] // reset generated token on new timestamp because cannot collide</span>
|
|
835
|
-
<span class="cstat-no" title="statement not covered" > lastTs = Date.now()</span>
|
|
836
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
837
|
-
<span class="cstat-no" title="statement not covered" > generatedTokens.push(token)</span>
|
|
838
|
-
<span class="cstat-no" title="statement not covered" > return token</span>
|
|
839
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
840
|
-
|
|
841
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function generateObjectId() {</span></span>
|
|
842
|
-
<span class="cstat-no" title="statement not covered" > return generateToken(24, true, 'hexadecimal')</span>
|
|
843
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
/** Useful to join differents bits of url with normalizing slashes
|
|
847
|
-
* * urlPathJoin('https://', 'www.kikou.lol/', '/user', '//2//') => https://www.kikou.lol/user/2
|
|
848
|
-
* * urlPathJoin('http:/', 'kikou.lol') => https://www.kikou.lol
|
|
849
|
-
*/
|
|
850
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function urlPathJoin(...bits: string[]) {</span></span>
|
|
851
|
-
<span class="cstat-no" title="statement not covered" > return bits</span>
|
|
852
|
-
<span class="cstat-no" title="statement not covered" > .join('/')</span>
|
|
853
|
-
<span class="cstat-no" title="statement not covered" > .replace(/\/+/g, '/') // replace double slash</span>
|
|
854
|
-
<span class="cstat-no" title="statement not covered" > .replace(/(^\/|\/$)/g, '') // remove starting and trailing slash</span>
|
|
855
|
-
<span class="cstat-no" title="statement not covered" > .replace(/(https?:)\/\/?/, '$1//') // make sure there is 2 slashes after http(s)</span>
|
|
856
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
857
|
-
|
|
858
|
-
/** @deprecated use urlPathJoin instead // file path using ONLY SLASH and not antislash on windows. Remove also starting and trailing slashes */
|
|
859
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function pathJoinSafe(...pathBits: string[]) {</span></span>
|
|
860
|
-
<span class="cstat-no" title="statement not covered" > return pathBits</span>
|
|
861
|
-
<span class="cstat-no" title="statement not covered" > .join('/')</span>
|
|
862
|
-
<span class="cstat-no" title="statement not covered" > .replace(/\/+/g, '/') // replace double slash</span>
|
|
863
|
-
<span class="cstat-no" title="statement not covered" > .replace(/(^\/|\/$)/g, '') // remove starting and trailing slash</span>
|
|
864
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
export type MiniTemplaterOptions = {
|
|
868
|
-
/** replacer for undefined values */
|
|
869
|
-
valueWhenNotSet: string
|
|
870
|
-
/** override default regexp that match content between `{{ }}`. It must be 'g' and first capturing group matching the value to replace. Default: /{{\s*([^}]*)\s*}}/g*/
|
|
871
|
-
regexp: RegExp
|
|
872
|
-
/** replacer for undefined values */
|
|
873
|
-
valueWhenContentUndefined: string
|
|
874
|
-
}
|
|
875
|
-
/** Replace variables in a string like: `Hello {{userName}}!`
|
|
876
|
-
* @param {String} content
|
|
877
|
-
* @param {Object} varz object with key => value === toReplace => replacer
|
|
878
|
-
* @param {Object} options
|
|
879
|
-
* * valueWhenNotSet => replacer for undefined values. Default: ''
|
|
880
|
-
* * regexp => must be 'g' and first capturing group matching the value to replace. Default: /{{\s*([^}]*)\s*}}/g
|
|
881
|
-
*/
|
|
882
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function miniTemplater(content: string, varz: ObjectGeneric, options: Partial<MiniTemplaterOptions> = {}): string {</span></span>
|
|
883
|
-
<span class="cstat-no" title="statement not covered" > const options2: MiniTemplaterOptions = {</span>
|
|
884
|
-
<span class="cstat-no" title="statement not covered" > valueWhenNotSet: '',</span>
|
|
885
|
-
<span class="cstat-no" title="statement not covered" > regexp: /{{\s*([^}]*)\s*}}/g,</span>
|
|
886
|
-
<span class="cstat-no" title="statement not covered" > valueWhenContentUndefined: '',</span>
|
|
887
|
-
<span class="cstat-no" title="statement not covered" > ...options,</span>
|
|
888
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
889
|
-
<span class="cstat-no" title="statement not covered" > return isset(content) ? content.replace(options2.regexp, (_, $1) => isset(varz[$1]) ? varz[$1] : options2.valueWhenNotSet) : options2.valueWhenContentUndefined</span>
|
|
890
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
/** Clean output for outside world. All undefined / null / NaN / Infinity values are changed to '-' */
|
|
894
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function cln(val, replacerInCaseItIsUndefinNaN = '-') { return ['undefined', undefined, 'indéfini', 'NaN', NaN, Infinity, null].includes(val) ? replacerInCaseItIsUndefinNaN : val }</span></span>
|
|
895
|
-
|
|
896
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function nbOccurenceInString(baseString: string, searchedString: string, allowOverlapping: boolean = false) {</span></span>
|
|
897
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
898
|
-
<span class="cstat-no" title="statement not covered" > if (searchedString.length === 0) return baseString.length + 1</span>
|
|
899
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
900
|
-
<span class="cstat-no" title="statement not covered" > let n = 0</span>
|
|
901
|
-
<span class="cstat-no" title="statement not covered" > let pos = 0</span>
|
|
902
|
-
<span class="cstat-no" title="statement not covered" > const step = allowOverlapping ? 1 : searchedString.length</span>
|
|
903
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
904
|
-
<span class="cstat-no" title="statement not covered" > // eslint-disable-next-line no-constant-condition</span>
|
|
905
|
-
<span class="cstat-no" title="statement not covered" > while (true) {</span>
|
|
906
|
-
<span class="cstat-no" title="statement not covered" > pos = baseString.indexOf(searchedString, pos)</span>
|
|
907
|
-
<span class="cstat-no" title="statement not covered" > if (pos >= 0) {</span>
|
|
908
|
-
<span class="cstat-no" title="statement not covered" > ++n</span>
|
|
909
|
-
<span class="cstat-no" title="statement not covered" > pos += step</span>
|
|
910
|
-
<span class="cstat-no" title="statement not covered" > } else break</span>
|
|
911
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
912
|
-
<span class="cstat-no" title="statement not covered" > return n</span>
|
|
913
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
914
|
-
|
|
915
|
-
/** typed lower case. Eg: if you pass 'A' | 'B', the resulting type will be 'a' | 'b' */
|
|
916
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function lowerCase<T extends string>(string: T) {</span></span>
|
|
917
|
-
<span class="cstat-no" title="statement not covered" > return string?.toLocaleLowerCase() as Lowercase<T></span>
|
|
918
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
919
|
-
|
|
920
|
-
/** typed upper case. Eg: if you pass 'a' | 'b', the resulting type will be 'A' | 'B' */
|
|
921
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function upperCase<T extends string>(string: T) {</span></span>
|
|
922
|
-
<span class="cstat-no" title="statement not covered" > return string?.toLocaleUpperCase() as Uppercase<T></span>
|
|
923
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
924
|
-
|
|
925
|
-
/** Parse strings like 'true', 'false', '123', 'null' to their real type equivalent. Actual string is returned if nothing matches.
|
|
926
|
-
* * /!\ for typing please profide a type parameter like `parseStringVariable<boolean>('true')` */
|
|
927
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function parseStringVariable<T = any>(val: any): T {</span></span>
|
|
928
|
-
<span class="cstat-no" title="statement not covered" > if (val === 'undefined') return undefined as any</span>
|
|
929
|
-
<span class="cstat-no" title="statement not covered" > else if (val === 'true') return true as any</span>
|
|
930
|
-
<span class="cstat-no" title="statement not covered" > else if (val === 'false') return false as any</span>
|
|
931
|
-
<span class="cstat-no" title="statement not covered" > else if (val === 'null') return null as any</span>
|
|
932
|
-
<span class="cstat-no" title="statement not covered" > else if (/^[0-9]+$/.test(val)) return Number(val) as any</span>
|
|
933
|
-
<span class="cstat-no" title="statement not covered" > else return val as any</span>
|
|
934
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
935
|
-
|
|
936
|
-
/** return val === 'true' || val === true */
|
|
937
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function parseStringAsBoolean(val: string | boolean | undefined) {</span></span>
|
|
938
|
-
<span class="cstat-no" title="statement not covered" > return val === 'true' || val === true</span>
|
|
939
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
940
|
-
|
|
941
|
-
/** return Number(val) */
|
|
942
|
-
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export function parseStringAsNumber(val: string | number) {</span></span>
|
|
943
|
-
<span class="cstat-no" title="statement not covered" > return Number(val)</span>
|
|
944
|
-
<span class="cstat-no" title="statement not covered" >}</span>
|
|
945
|
-
</pre></td></tr></table></pre>
|
|
946
|
-
|
|
947
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
948
|
-
</div><!-- /wrapper -->
|
|
949
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
950
|
-
Code coverage generated by
|
|
951
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
952
|
-
at 2025-03-20T12:55:39.327Z
|
|
953
|
-
</div>
|
|
954
|
-
<script src="prettify.js"></script>
|
|
955
|
-
<script>
|
|
956
|
-
window.onload = function () {
|
|
957
|
-
prettyPrint();
|
|
958
|
-
};
|
|
959
|
-
</script>
|
|
960
|
-
<script src="sorter.js"></script>
|
|
961
|
-
<script src="block-navigation.js"></script>
|
|
962
|
-
</body>
|
|
963
|
-
</html>
|
|
964
|
-
|