@vizabi/reader-ddfcsv 4.3.10 → 4.3.11
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/.nyc_output/6feafbf28840d8453a35f3938d258f72.json +1 -0
- package/.nyc_output/d4b22a0dc4a37c160be23c49fdbe4298.json +1 -0
- package/.travis.yml +0 -0
- package/CHANGELOG.md +0 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/coverage/base.css +223 -0
- package/coverage/block-navigation.js +63 -0
- package/coverage/index.html +136 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +1 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +158 -0
- package/coverage/src/ddf-csv.ts.html +2826 -0
- package/coverage/src/ddfcsv-error.ts.html +132 -0
- package/coverage/src/ddfcsv-reader.ts.html +501 -0
- package/coverage/src/file-readers/backend-file-reader.ts.html +159 -0
- package/coverage/src/file-readers/github-path-adapter.ts.html +228 -0
- package/coverage/src/file-readers/index.html +110 -0
- package/coverage/src/index.html +136 -0
- package/coverage/src/index.ts.html +129 -0
- package/coverage/src/resource-selection-optimizer/in-clause-under-conjunction.ts.html +729 -0
- package/coverage/src/resource-selection-optimizer/index.html +110 -0
- package/coverage/src/resource-selection-optimizer/index.ts.html +102 -0
- package/coverage/src/test-cases/concepts.ts.html +150 -0
- package/coverage/src/test-cases/entities.ts.html +225 -0
- package/coverage/src/test-cases/index.html +110 -0
- package/deploy.js +0 -0
- package/dist/reader-ddfcsv-polyfill.js +1 -1
- package/dist/reader-ddfcsv-polyfill.js.map +1 -1
- package/dist/reader-ddfcsv.js +2 -2
- package/dist/reader-ddfcsv.js.map +1 -1
- package/icon.png +0 -0
- package/lib/src/ddf-csv.d.ts +0 -0
- package/lib/src/ddf-csv.js +0 -0
- package/lib/src/ddf-csv.js.map +0 -0
- package/lib/src/ddfcsv-error.d.ts +0 -0
- package/lib/src/ddfcsv-error.js +0 -0
- package/lib/src/ddfcsv-error.js.map +0 -0
- package/lib/src/ddfcsv-reader.d.ts +0 -0
- package/lib/src/ddfcsv-reader.js +1 -1
- package/lib/src/ddfcsv-reader.js.map +0 -0
- package/lib/src/file-readers/backend-file-reader.d.ts +0 -0
- package/lib/src/file-readers/backend-file-reader.js +0 -0
- package/lib/src/file-readers/backend-file-reader.js.map +0 -0
- package/lib/src/file-readers/github-path-adapter.d.ts +0 -0
- package/lib/src/file-readers/github-path-adapter.js +0 -0
- package/lib/src/file-readers/github-path-adapter.js.map +0 -0
- package/lib/src/index.d.ts +6 -0
- package/lib/src/index.js +6 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/interfaces.d.ts +0 -0
- package/lib/src/interfaces.js +0 -0
- package/lib/src/interfaces.js.map +0 -0
- package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.d.ts +0 -0
- package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.js +0 -0
- package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.js.map +0 -0
- package/lib/src/resource-selection-optimizer/index.d.ts +0 -0
- package/lib/src/resource-selection-optimizer/index.js +0 -0
- package/lib/src/resource-selection-optimizer/index.js.map +0 -0
- package/lib-web/src/ddf-csv.d.ts +0 -0
- package/lib-web/src/ddf-csv.js +0 -0
- package/lib-web/src/ddf-csv.js.map +0 -0
- package/lib-web/src/ddfcsv-error.d.ts +0 -0
- package/lib-web/src/ddfcsv-error.js +0 -0
- package/lib-web/src/ddfcsv-error.js.map +0 -0
- package/lib-web/src/ddfcsv-reader.d.ts +0 -0
- package/lib-web/src/ddfcsv-reader.js +1 -1
- package/lib-web/src/ddfcsv-reader.js.map +0 -0
- package/lib-web/src/file-readers/frontend-file-reader.d.ts +0 -0
- package/lib-web/src/file-readers/frontend-file-reader.js +0 -0
- package/lib-web/src/file-readers/frontend-file-reader.js.map +0 -0
- package/lib-web/src/file-readers/github-path-adapter.d.ts +0 -0
- package/lib-web/src/file-readers/github-path-adapter.js +0 -0
- package/lib-web/src/file-readers/github-path-adapter.js.map +0 -0
- package/lib-web/src/index-web.d.ts +6 -0
- package/lib-web/src/index-web.js +6 -1
- package/lib-web/src/index-web.js.map +1 -1
- package/lib-web/src/interfaces.d.ts +0 -0
- package/lib-web/src/interfaces.js +0 -0
- package/lib-web/src/interfaces.js.map +0 -0
- package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.d.ts +0 -0
- package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.js +0 -0
- package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.js.map +0 -0
- package/lib-web/src/resource-selection-optimizer/index.d.ts +0 -0
- package/lib-web/src/resource-selection-optimizer/index.js +0 -0
- package/lib-web/src/resource-selection-optimizer/index.js.map +0 -0
- package/package.json +1 -1
- package/scripts/set-own-version.js +23 -0
- package/src/ddf-csv.ts +0 -0
- package/src/ddfcsv-error.ts +0 -0
- package/src/ddfcsv-reader.ts +0 -0
- package/src/file-readers/backend-file-reader.ts +0 -0
- package/src/file-readers/frontend-file-reader.ts +0 -0
- package/src/file-readers/github-path-adapter.ts +0 -0
- package/src/index-web.ts +6 -0
- package/src/index.ts +6 -0
- package/src/interfaces.ts +0 -0
- package/src/resource-selection-optimizer/in-clause-under-conjunction.ts +0 -0
- package/src/resource-selection-optimizer/index.ts +0 -0
- package/src/test-cases/concepts.ts +0 -0
- package/src/test-cases/entities.ts +0 -0
- package/test/assets-fixtures/world-50m.json +0 -0
- package/test/assets.spec.ts +0 -0
- package/test/common.ts +0 -0
- package/test/definition/concepts-definition.spec.ts +0 -0
- package/test/definition/datapoints-definition.spec.ts +0 -0
- package/test/definition/entities-definition.spec.ts +0 -0
- package/test/definition/schema-definition.spec.ts +0 -0
- package/test/diagnostics.spec.ts +0 -0
- package/test/features-service.spec.ts +0 -0
- package/test/high-load.spec.ts +0 -0
- package/test/main.spec.ts +0 -0
- package/test/mocha.opts +0 -0
- package/test/multi-instances.spec.ts +0 -0
- package/test/result-fixtures/datapoints-assets.json +0 -0
- package/test/result-fixtures/in-clause-under-conjunction-1.json +0 -0
- package/test/result-fixtures/in-clause-under-conjunction-2.json +0 -0
- package/test/result-fixtures/multi-instances/concepts-sg.json +0 -0
- package/test/result-fixtures/multi-instances/concepts-soderstornsmodellen.json +0 -0
- package/test/result-fixtures/multi-instances/datapoints-sg.json +0 -0
- package/test/result-fixtures/multi-instances/datapoints-soderstornsmodellen.json +0 -0
- package/test/result-fixtures/multi-instances/entities-sg.json +0 -0
- package/test/result-fixtures/multi-instances/entities-soderstornsmodellen.json +0 -0
- package/test/result-fixtures/multi-instances/schema-sg.json +0 -0
- package/test/result-fixtures/multi-instances/schema-soderstornsmodellen.json +0 -0
- package/test/schema.spec.ts +0 -0
- package/test/tslint.json +0 -0
- package/tsconfig-web.json +0 -0
- package/tsconfig.json +0 -0
- package/tslint.json +0 -0
|
@@ -0,0 +1,729 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<title>Code coverage report for src/resource-selection-optimizer/in-clause-under-conjunction.ts</title>
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
7
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
+
<style type='text/css'>
|
|
10
|
+
.coverage-summary .sorter {
|
|
11
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
12
|
+
}
|
|
13
|
+
</style>
|
|
14
|
+
</head>
|
|
15
|
+
<body>
|
|
16
|
+
<div class='wrapper'>
|
|
17
|
+
<div class='pad1'>
|
|
18
|
+
<h1>
|
|
19
|
+
<a href="../../index.html">All files</a> / <a href="index.html">src/resource-selection-optimizer</a> in-clause-under-conjunction.ts
|
|
20
|
+
</h1>
|
|
21
|
+
<div class='clearfix'>
|
|
22
|
+
<div class='fl pad1y space-right2'>
|
|
23
|
+
<span class="strong">94.07% </span>
|
|
24
|
+
<span class="quiet">Statements</span>
|
|
25
|
+
<span class='fraction'>111/118</span>
|
|
26
|
+
</div>
|
|
27
|
+
<div class='fl pad1y space-right2'>
|
|
28
|
+
<span class="strong">79.41% </span>
|
|
29
|
+
<span class="quiet">Branches</span>
|
|
30
|
+
<span class='fraction'>27/34</span>
|
|
31
|
+
</div>
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Functions</span>
|
|
35
|
+
<span class='fraction'>20/20</span>
|
|
36
|
+
</div>
|
|
37
|
+
<div class='fl pad1y space-right2'>
|
|
38
|
+
<span class="strong">95.58% </span>
|
|
39
|
+
<span class="quiet">Lines</span>
|
|
40
|
+
<span class='fraction'>108/113</span>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<p class="quiet">
|
|
44
|
+
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.
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
47
|
+
<div class='status-line high'></div>
|
|
48
|
+
<pre><table class="coverage">
|
|
49
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
50
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
51
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
52
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
53
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
54
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
55
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
56
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
57
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
58
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
59
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
60
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
61
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
62
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
63
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
64
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
65
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
66
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
67
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
68
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
69
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
70
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
71
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
72
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
73
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
74
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
75
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
76
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
77
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
78
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
79
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
80
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
81
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
82
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
83
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
84
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
85
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
86
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
87
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
88
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
89
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
90
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
91
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
92
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
93
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
94
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
95
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
96
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
97
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
98
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
99
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
100
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
101
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
102
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
103
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
104
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
105
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
106
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
107
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
108
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
109
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
110
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
111
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
112
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
113
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
114
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
115
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
116
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
117
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
118
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
119
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
120
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
121
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
122
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
123
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
124
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
125
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
126
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
127
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
128
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
129
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
130
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
131
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
132
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
133
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
134
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
135
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
136
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
137
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
138
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
139
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
140
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
141
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
142
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
143
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
144
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
145
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
146
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
147
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
148
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
149
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
150
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
151
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
152
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
153
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
154
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
155
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
156
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
157
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
158
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
159
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
160
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
161
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
162
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
163
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
164
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
165
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
166
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
167
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
168
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
169
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
170
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
171
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
172
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
173
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
174
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
175
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
176
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
177
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
178
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
179
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
180
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
181
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
182
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
183
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
184
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
185
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
186
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
187
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
188
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
189
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
190
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
191
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
192
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
193
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
194
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
195
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
196
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
197
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
198
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
199
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
200
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
201
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
202
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
203
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
204
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
205
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
206
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
207
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
208
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
209
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
210
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
211
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
212
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
213
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
214
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
215
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
216
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
217
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
218
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
219
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
220
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
221
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
222
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
223
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
224
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
225
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
226
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
227
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
228
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
229
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
230
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
231
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
232
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
233
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
234
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
235
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
236
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
237
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
238
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
239
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
240
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
241
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
242
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
243
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
244
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
245
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
246
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
247
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
248
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
249
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
250
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
251
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
252
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
253
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
254
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
255
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
256
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
257
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
258
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
259
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
260
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
261
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
262
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
263
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
264
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
265
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
266
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
267
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
268
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
269
|
+
<a name='L221'></a><a href='#L221'>221</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-yes">1x</span>
|
|
272
|
+
<span class="cline-any cline-yes">1x</span>
|
|
273
|
+
<span class="cline-any cline-yes">1x</span>
|
|
274
|
+
<span class="cline-any cline-yes">1x</span>
|
|
275
|
+
<span class="cline-any cline-yes">1x</span>
|
|
276
|
+
<span class="cline-any cline-yes">1x</span>
|
|
277
|
+
<span class="cline-any cline-yes">1x</span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-yes">1x</span>
|
|
282
|
+
<span class="cline-any cline-yes">1x</span>
|
|
283
|
+
<span class="cline-any cline-yes">1x</span>
|
|
284
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
|
+
<span class="cline-any cline-yes">1x</span>
|
|
286
|
+
<span class="cline-any cline-yes">1x</span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
|
+
<span class="cline-any cline-yes">7x</span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-yes">7x</span>
|
|
297
|
+
<span class="cline-any cline-yes">7x</span>
|
|
298
|
+
<span class="cline-any cline-yes">7x</span>
|
|
299
|
+
<span class="cline-any cline-yes">7x</span>
|
|
300
|
+
<span class="cline-any cline-yes">7x</span>
|
|
301
|
+
<span class="cline-any cline-yes">7x</span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-yes">10x</span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-yes">10x</span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
311
|
+
<span class="cline-any cline-yes">3x</span>
|
|
312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
313
|
+
<span class="cline-any cline-yes">3x</span>
|
|
314
|
+
<span class="cline-any cline-yes">3x</span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-yes">3x</span>
|
|
318
|
+
<span class="cline-any cline-yes">3x</span>
|
|
319
|
+
<span class="cline-any cline-yes">3x</span>
|
|
320
|
+
<span class="cline-any cline-yes">3x</span>
|
|
321
|
+
<span class="cline-any cline-yes">3x</span>
|
|
322
|
+
<span class="cline-any cline-yes">3x</span>
|
|
323
|
+
<span class="cline-any cline-yes">3x</span>
|
|
324
|
+
<span class="cline-any cline-yes">3x</span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-no"> </span>
|
|
327
|
+
<span class="cline-any cline-no"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-yes">3x</span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-yes">3x</span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-no"> </span>
|
|
335
|
+
<span class="cline-any cline-no"> </span>
|
|
336
|
+
<span class="cline-any cline-no"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-yes">3x</span>
|
|
342
|
+
<span class="cline-any cline-yes">7x</span>
|
|
343
|
+
<span class="cline-any cline-yes">3x</span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-yes">3x</span>
|
|
346
|
+
<span class="cline-any cline-yes">6x</span>
|
|
347
|
+
<span class="cline-any cline-yes">6x</span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-yes">6x</span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-yes">6x</span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-yes">204x</span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-yes">3x</span>
|
|
364
|
+
<span class="cline-any cline-yes">3x</span>
|
|
365
|
+
<span class="cline-any cline-yes">3x</span>
|
|
366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
367
|
+
<span class="cline-any cline-yes">3x</span>
|
|
368
|
+
<span class="cline-any cline-yes">243x</span>
|
|
369
|
+
<span class="cline-any cline-yes">603x</span>
|
|
370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
371
|
+
<span class="cline-any cline-yes">603x</span>
|
|
372
|
+
<span class="cline-any cline-yes">94x</span>
|
|
373
|
+
<span class="cline-any cline-yes">150x</span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-yes">150x</span>
|
|
376
|
+
<span class="cline-any cline-yes">150x</span>
|
|
377
|
+
<span class="cline-any cline-yes">150x</span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">3x</span>
|
|
384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-yes">3x</span>
|
|
388
|
+
<span class="cline-any cline-yes">3x</span>
|
|
389
|
+
<span class="cline-any cline-yes">20x</span>
|
|
390
|
+
<span class="cline-any cline-yes">20x</span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-yes">3x</span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-yes">805x</span>
|
|
398
|
+
<span class="cline-any cline-yes">18796x</span>
|
|
399
|
+
<span class="cline-any cline-yes">592x</span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-yes">3x</span>
|
|
402
|
+
<span class="cline-any cline-yes">3x</span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-yes">3x</span>
|
|
405
|
+
<span class="cline-any cline-yes">20x</span>
|
|
406
|
+
<span class="cline-any cline-yes">805x</span>
|
|
407
|
+
<span class="cline-any cline-yes">805x</span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-yes">805x</span>
|
|
410
|
+
<span class="cline-any cline-yes">213x</span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
413
|
+
<span class="cline-any cline-yes">805x</span>
|
|
414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
415
|
+
<span class="cline-any cline-yes">805x</span>
|
|
416
|
+
<span class="cline-any cline-yes">805x</span>
|
|
417
|
+
<span class="cline-any cline-neutral"> </span>
|
|
418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-yes">3x</span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-yes">3x</span>
|
|
425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
426
|
+
<span class="cline-any cline-yes">3x</span>
|
|
427
|
+
<span class="cline-any cline-yes">6x</span>
|
|
428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
429
|
+
<span class="cline-any cline-neutral"> </span>
|
|
430
|
+
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-yes">6x</span>
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
433
|
+
<span class="cline-any cline-yes">204x</span>
|
|
434
|
+
<span class="cline-any cline-neutral"> </span>
|
|
435
|
+
<span class="cline-any cline-yes">204x</span>
|
|
436
|
+
<span class="cline-any cline-yes">204x</span>
|
|
437
|
+
<span class="cline-any cline-yes">5483x</span>
|
|
438
|
+
<span class="cline-any cline-yes">171346x</span>
|
|
439
|
+
<span class="cline-any cline-yes">166034x</span>
|
|
440
|
+
<span class="cline-any cline-yes">166034x</span>
|
|
441
|
+
<span class="cline-any cline-yes">166034x</span>
|
|
442
|
+
<span class="cline-any cline-yes">14x</span>
|
|
443
|
+
<span class="cline-any cline-yes">2x</span>
|
|
444
|
+
<span class="cline-any cline-neutral"> </span>
|
|
445
|
+
<span class="cline-any cline-neutral"> </span>
|
|
446
|
+
<span class="cline-any cline-yes">166020x</span>
|
|
447
|
+
<span class="cline-any cline-neutral"> </span>
|
|
448
|
+
<span class="cline-any cline-neutral"> </span>
|
|
449
|
+
<span class="cline-any cline-neutral"> </span>
|
|
450
|
+
<span class="cline-any cline-neutral"> </span>
|
|
451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
452
|
+
<span class="cline-any cline-neutral"> </span>
|
|
453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
454
|
+
<span class="cline-any cline-yes">6x</span>
|
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
457
|
+
<span class="cline-any cline-yes">3x</span>
|
|
458
|
+
<span class="cline-any cline-neutral"> </span>
|
|
459
|
+
<span class="cline-any cline-yes">3x</span>
|
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
462
|
+
<span class="cline-any cline-neutral"> </span>
|
|
463
|
+
<span class="cline-any cline-neutral"> </span>
|
|
464
|
+
<span class="cline-any cline-yes">3x</span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-yes">3x</span>
|
|
467
|
+
<span class="cline-any cline-yes">3x</span>
|
|
468
|
+
<span class="cline-any cline-yes">22x</span>
|
|
469
|
+
<span class="cline-any cline-yes">22x</span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-neutral"> </span>
|
|
472
|
+
<span class="cline-any cline-neutral"> </span>
|
|
473
|
+
<span class="cline-any cline-yes">3x</span>
|
|
474
|
+
<span class="cline-any cline-yes">3x</span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-yes">3x</span>
|
|
477
|
+
<span class="cline-any cline-yes">3x</span>
|
|
478
|
+
<span class="cline-any cline-neutral"> </span>
|
|
479
|
+
<span class="cline-any cline-neutral"> </span>
|
|
480
|
+
<span class="cline-any cline-yes">3x</span>
|
|
481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
482
|
+
<span class="cline-any cline-neutral"> </span>
|
|
483
|
+
<span class="cline-any cline-neutral"> </span>
|
|
484
|
+
<span class="cline-any cline-neutral"> </span>
|
|
485
|
+
<span class="cline-any cline-yes">7x</span>
|
|
486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
489
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import * as head from 'lodash.head';
|
|
490
|
+
import * as values from 'lodash.values';
|
|
491
|
+
import * as keys from 'lodash.keys';
|
|
492
|
+
import * as get from 'lodash.get';
|
|
493
|
+
import * as isEmpty from 'lodash.isempty';
|
|
494
|
+
import * as startsWith from 'lodash.startswith';
|
|
495
|
+
import * as includes from 'lodash.includes';
|
|
496
|
+
import * as compact from 'lodash.compact';
|
|
497
|
+
import { DdfCsvError } from '../ddfcsv-error';
|
|
498
|
+
import { IDatapackage, IResourceSelectionOptimizer, IResourceRead, IBaseReaderOptions } from '../interfaces';
|
|
499
|
+
import { QueryFeature, featureDetectors, IQuery } from 'ddf-query-validator';
|
|
500
|
+
|
|
501
|
+
const WHERE_KEYWORD = 'where';
|
|
502
|
+
const JOIN_KEYWORD = 'join';
|
|
503
|
+
const KEY_IN = '$in';
|
|
504
|
+
const KEY_NIN = '$nin';
|
|
505
|
+
const KEY_AND = '$and';
|
|
506
|
+
const KEY_OR = '$or';
|
|
507
|
+
|
|
508
|
+
export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
509
|
+
private flow: any = {};
|
|
510
|
+
private fileReader: IResourceRead;
|
|
511
|
+
private datasetPath: string;
|
|
512
|
+
private query: IQuery;
|
|
513
|
+
private datapackage: IDatapackage;
|
|
514
|
+
private conceptsLookup;
|
|
515
|
+
|
|
516
|
+
constructor(private parent, queryParam, private options: IBaseReaderOptions) {
|
|
517
|
+
this.fileReader = options.fileReader;
|
|
518
|
+
this.datasetPath = options.basePath;
|
|
519
|
+
this.query = queryParam;
|
|
520
|
+
this.datapackage = options.datapackage;
|
|
521
|
+
this.conceptsLookup = options.conceptsLookup;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
isMatched(): boolean {
|
|
525
|
+
this.flow.joinObject = get(this.query, JOIN_KEYWORD);
|
|
526
|
+
|
|
527
|
+
return this.query.from === "datapoints" && this.flow.joinObject;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
async getRecommendedFilesSet(): Promise<string[]> {
|
|
531
|
+
const { debug, error, warning } = this.options.diagnostic.prepareDiagnosticFor('getRecommendedFilesSet');
|
|
532
|
+
|
|
533
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.isMatched()) {
|
|
534
|
+
debug('plugin matched');
|
|
535
|
+
|
|
536
|
+
let result;
|
|
537
|
+
try {
|
|
538
|
+
this.flow.processableClauses = await this.collectProcessableClauses();
|
|
539
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!this.flow.processableClauses) <span class="cstat-no" title="statement not covered" >return [];</span>
|
|
540
|
+
this.collectEntityFilesNames();
|
|
541
|
+
const data = await this.collectEntities();
|
|
542
|
+
this.fillEntityValuesHash(data);
|
|
543
|
+
this.getFilesGroupsQueryClause();
|
|
544
|
+
result = this.getOptimalFilesGroup();
|
|
545
|
+
} catch (err) {
|
|
546
|
+
<span class="cstat-no" title="statement not covered" > error('wrong data processing', err);</span>
|
|
547
|
+
<span class="cstat-no" title="statement not covered" > return [];</span>
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
debug('recommended files found', result);
|
|
551
|
+
|
|
552
|
+
return result;
|
|
553
|
+
} else {
|
|
554
|
+
const message = <span class="cstat-no" title="statement not covered" >`Plugin "InClauseUnderConjunction" is not matched!`;</span>
|
|
555
|
+
<span class="cstat-no" title="statement not covered" > warning(message);</span>
|
|
556
|
+
<span class="cstat-no" title="statement not covered" > throw new DdfCsvError(message, 'InClauseUnderConjunction plugin');</span>
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
private collectProcessableClauses(): Promise<any> {
|
|
561
|
+
const joinKeys = keys(this.flow.joinObject).filter(
|
|
562
|
+
key => ["entity_domain", "entity_set"].includes(this.options.conceptsLookup.get(key.slice(1))<span class="branch-0 cbranch-no" title="branch not covered" >?.</span>concept_type));
|
|
563
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!joinKeys.length) <span class="cstat-no" title="statement not covered" >return Promise.resolve(false);</span>
|
|
564
|
+
|
|
565
|
+
return Promise.all(joinKeys.map(joinKey => {
|
|
566
|
+
const key = this.flow.joinObject[joinKey].key;
|
|
567
|
+
const where = get(this.flow.joinObject, `${joinKey}.${WHERE_KEYWORD}`, {});
|
|
568
|
+
|
|
569
|
+
return this.parent.queryData({
|
|
570
|
+
select: { key: [key] },
|
|
571
|
+
where,
|
|
572
|
+
from: this.options.conceptsLookup.has(key) ? 'entities' : <span class="branch-1 cbranch-no" title="branch not covered" >'concepts'</span>
|
|
573
|
+
}, Object.assign({ joinID: joinKey }, this.options))
|
|
574
|
+
.then(result => ({
|
|
575
|
+
key,
|
|
576
|
+
entities: new Set(result.map(row => row[ key ]))
|
|
577
|
+
}));
|
|
578
|
+
}));
|
|
579
|
+
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
private collectEntityFilesNames(): InClauseUnderConjunction {
|
|
583
|
+
this.flow.entityFilesNames = new Set();
|
|
584
|
+
this.flow.entityResources = new Set();
|
|
585
|
+
this.flow.fileNameToPrimaryKeyHash = new Map();
|
|
586
|
+
|
|
587
|
+
for (const schemaResourceRecord of this.datapackage.ddfSchema.entities) {
|
|
588
|
+
for (const clause of this.flow.processableClauses) {
|
|
589
|
+
const key = clause.key;
|
|
590
|
+
|
|
591
|
+
if (head(schemaResourceRecord.primaryKey) === key) {
|
|
592
|
+
for (const resourceName of schemaResourceRecord.resources) {
|
|
593
|
+
const resource = this.options.resourcesLookup.get(resourceName);
|
|
594
|
+
|
|
595
|
+
this.flow.entityResources.add(resource);
|
|
596
|
+
this.flow.entityFilesNames.add(resource.path);
|
|
597
|
+
this.flow.fileNameToPrimaryKeyHash.set(resource.path, key);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
return this;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
private collectEntities(): Promise<any> {
|
|
607
|
+
const self = this;
|
|
608
|
+
const actions = [...self.flow.entityResources].map(resource => {
|
|
609
|
+
return (resource.data || (<span class="branch-1 cbranch-no" title="branch not covered" >resource.data = self.parent.loadFile(resource.path, self.options))</span>)
|
|
610
|
+
.then(data => ({result: data, file: resource.path}));
|
|
611
|
+
});
|
|
612
|
+
|
|
613
|
+
return Promise.all(actions);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
private fillEntityValuesHash(entitiesData): InClauseUnderConjunction {
|
|
617
|
+
const getSubdomainsFromRecord = record => compact(keys(record)
|
|
618
|
+
.filter(key => startsWith(key, 'is--') && (record[key] === true))
|
|
619
|
+
.map(key => key.replace(/^is--/, '')));
|
|
620
|
+
|
|
621
|
+
this.flow.entityValueToFileHash = new Map();
|
|
622
|
+
this.flow.entityValueToDomainHash = new Map();
|
|
623
|
+
|
|
624
|
+
for (const entityFileDescriptor of entitiesData) {
|
|
625
|
+
for (const entityRecord of entityFileDescriptor.result.data) {
|
|
626
|
+
const primaryKeyForThisFile = this.flow.fileNameToPrimaryKeyHash.get(entityFileDescriptor.file);
|
|
627
|
+
const domainsForCurrentRecord = [...getSubdomainsFromRecord(entityRecord)];
|
|
628
|
+
|
|
629
|
+
if (isEmpty(domainsForCurrentRecord)) {
|
|
630
|
+
domainsForCurrentRecord.push(primaryKeyForThisFile);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
const primaryKeyCellValue = entityRecord[primaryKeyForThisFile] || entityRecord[domainsForCurrentRecord[0]];
|
|
634
|
+
|
|
635
|
+
this.flow.entityValueToDomainHash.set(primaryKeyCellValue, domainsForCurrentRecord);
|
|
636
|
+
this.flow.entityValueToFileHash.set(primaryKeyCellValue, entityFileDescriptor.file);
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
return this;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
private getFilesGroupsQueryClause(): InClauseUnderConjunction {
|
|
644
|
+
const filesGroupsByClause = new Map();
|
|
645
|
+
|
|
646
|
+
for (const clause of this.flow.processableClauses) {
|
|
647
|
+
const filesGroupByClause = {
|
|
648
|
+
datapoints: new Set()
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
for (const entityValueFromClause of clause.entities) {
|
|
652
|
+
|
|
653
|
+
const entitiesByQuery = this.flow.entityValueToDomainHash.get(entityValueFromClause);
|
|
654
|
+
|
|
655
|
+
for (const entityByQuery of entitiesByQuery) {
|
|
656
|
+
for (const schemaResourceRecord of this.datapackage.ddfSchema.datapoints) {
|
|
657
|
+
for (const resourceName of schemaResourceRecord.resources) {
|
|
658
|
+
if (includes(schemaResourceRecord.primaryKey, entityByQuery)) {
|
|
659
|
+
const resource = this.options.resourcesLookup.get(resourceName);
|
|
660
|
+
const constraint = resource.constraints<span class="branch-0 cbranch-no" title="branch not covered" >?.[</span>entityByQuery];
|
|
661
|
+
if ( constraint ) {
|
|
662
|
+
if (constraint.includes(entityValueFromClause)) {
|
|
663
|
+
filesGroupByClause.datapoints.add(resource.path);
|
|
664
|
+
}
|
|
665
|
+
} else {
|
|
666
|
+
filesGroupByClause.datapoints.add(resource.path);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
filesGroupsByClause.set(clause.key, filesGroupByClause);
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
this.flow.filesGroupsByClause = filesGroupsByClause;
|
|
678
|
+
|
|
679
|
+
return this;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
private getOptimalFilesGroup(): string[] {
|
|
683
|
+
|
|
684
|
+
const entities = this.flow.entityFilesNames;
|
|
685
|
+
|
|
686
|
+
const concepts = new Set();
|
|
687
|
+
for (const schemaResourceRecord of this.datapackage.ddfSchema.concepts) {
|
|
688
|
+
for (const resourceName of schemaResourceRecord.resources) {
|
|
689
|
+
concepts.add(this.options.resourcesLookup.get(resourceName).path);
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
const clauseKeys = this.flow.filesGroupsByClause.keys();
|
|
694
|
+
let datapoints = Array.from(this.flow.filesGroupsByClause.get(clauseKeys.next().value).datapoints);
|
|
695
|
+
|
|
696
|
+
for (const key of clauseKeys) {
|
|
697
|
+
datapoints = this.intersectArray(datapoints, Array.from(this.flow.filesGroupsByClause.get(key).datapoints));
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
return [...Array.from(concepts), ...Array.from(entities)].concat(datapoints) as string[];
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
private intersectArray(array1, array2) {
|
|
705
|
+
return array1.filter(value => array2.includes(value));
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
}
|
|
709
|
+
</pre></td></tr>
|
|
710
|
+
</table></pre>
|
|
711
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
712
|
+
</div><!-- /wrapper -->
|
|
713
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
714
|
+
Code coverage
|
|
715
|
+
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Wed Jul 17 2024 21:22:57 GMT+0300 (Moscow Standard Time)
|
|
716
|
+
</div>
|
|
717
|
+
</div>
|
|
718
|
+
<script src="../../prettify.js"></script>
|
|
719
|
+
<script>
|
|
720
|
+
window.onload = function () {
|
|
721
|
+
if (typeof prettyPrint === 'function') {
|
|
722
|
+
prettyPrint();
|
|
723
|
+
}
|
|
724
|
+
};
|
|
725
|
+
</script>
|
|
726
|
+
<script src="../../sorter.js"></script>
|
|
727
|
+
<script src="../../block-navigation.js"></script>
|
|
728
|
+
</body>
|
|
729
|
+
</html>
|