@vizabi/reader-ddfcsv 4.3.3 → 4.3.5
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/04da916d5240a86facf0fcb14d89854a.json +1 -0
- package/.nyc_output/{b4e1a7f86ae858c85e0528842263588d.json → b6c2172ea4b73ef30a769f84462d042b.json} +0 -0
- package/.travis.yml +0 -0
- package/CHANGELOG.md +0 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/coverage/base.css +0 -0
- package/coverage/block-navigation.js +0 -0
- package/coverage/index.html +29 -29
- package/coverage/prettify.css +0 -0
- package/coverage/prettify.js +0 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -0
- package/coverage/src/ddf-csv.ts.html +518 -404
- package/coverage/src/ddfcsv-error.ts.html +6 -6
- package/coverage/src/ddfcsv-reader.ts.html +63 -51
- package/coverage/src/file-readers/backend-file-reader.ts.html +6 -6
- package/coverage/src/file-readers/github-path-adapter.ts.html +3 -3
- package/coverage/src/file-readers/index.html +1 -1
- package/coverage/src/index.html +28 -28
- package/coverage/src/index.ts.html +6 -6
- package/coverage/src/resource-selection-optimizer/in-clause-under-conjunction.ts.html +219 -408
- package/coverage/src/resource-selection-optimizer/index.html +20 -20
- package/coverage/src/resource-selection-optimizer/index.ts.html +5 -5
- package/coverage/src/test-cases/concepts.ts.html +1 -1
- package/coverage/src/test-cases/entities.ts.html +1 -1
- package/coverage/src/test-cases/index.html +1 -1
- 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 +27 -2
- package/lib/src/ddf-csv.js.map +1 -1
- 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 +0 -0
- package/lib/src/index.js +0 -0
- package/lib/src/index.js.map +0 -0
- 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 +27 -2
- package/lib-web/src/ddf-csv.js.map +1 -1
- 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 +0 -0
- package/lib-web/src/index-web.js +0 -0
- package/lib-web/src/index-web.js.map +0 -0
- 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 +0 -0
- package/src/ddf-csv.ts +30 -2
- 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 +0 -0
- package/src/index.ts +0 -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
- package/.nyc_output/795caf0b3acca8aacbd9d932d086ab81.json +0 -1
|
@@ -20,31 +20,31 @@
|
|
|
20
20
|
</h1>
|
|
21
21
|
<div class='clearfix'>
|
|
22
22
|
<div class='fl pad1y space-right2'>
|
|
23
|
-
<span class="strong">
|
|
23
|
+
<span class="strong">94.07% </span>
|
|
24
24
|
<span class="quiet">Statements</span>
|
|
25
|
-
<span class='fraction'>
|
|
25
|
+
<span class='fraction'>111/118</span>
|
|
26
26
|
</div>
|
|
27
27
|
<div class='fl pad1y space-right2'>
|
|
28
|
-
<span class="strong">
|
|
28
|
+
<span class="strong">79.41% </span>
|
|
29
29
|
<span class="quiet">Branches</span>
|
|
30
|
-
<span class='fraction'>
|
|
30
|
+
<span class='fraction'>27/34</span>
|
|
31
31
|
</div>
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Functions</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>20/20</span>
|
|
36
36
|
</div>
|
|
37
37
|
<div class='fl pad1y space-right2'>
|
|
38
|
-
<span class="strong">
|
|
38
|
+
<span class="strong">95.58% </span>
|
|
39
39
|
<span class="quiet">Lines</span>
|
|
40
|
-
<span class='fraction'>
|
|
40
|
+
<span class='fraction'>108/113</span>
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
43
43
|
<p class="quiet">
|
|
44
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
45
|
</p>
|
|
46
46
|
</div>
|
|
47
|
-
<div class='status-line
|
|
47
|
+
<div class='status-line high'></div>
|
|
48
48
|
<pre><table class="coverage">
|
|
49
49
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
50
50
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -266,73 +266,8 @@
|
|
|
266
266
|
<a name='L218'></a><a href='#L218'>218</a>
|
|
267
267
|
<a name='L219'></a><a href='#L219'>219</a>
|
|
268
268
|
<a name='L220'></a><a href='#L220'>220</a>
|
|
269
|
-
<a name='L221'></a><a href='#L221'>221</a>
|
|
270
|
-
<
|
|
271
|
-
<a name='L223'></a><a href='#L223'>223</a>
|
|
272
|
-
<a name='L224'></a><a href='#L224'>224</a>
|
|
273
|
-
<a name='L225'></a><a href='#L225'>225</a>
|
|
274
|
-
<a name='L226'></a><a href='#L226'>226</a>
|
|
275
|
-
<a name='L227'></a><a href='#L227'>227</a>
|
|
276
|
-
<a name='L228'></a><a href='#L228'>228</a>
|
|
277
|
-
<a name='L229'></a><a href='#L229'>229</a>
|
|
278
|
-
<a name='L230'></a><a href='#L230'>230</a>
|
|
279
|
-
<a name='L231'></a><a href='#L231'>231</a>
|
|
280
|
-
<a name='L232'></a><a href='#L232'>232</a>
|
|
281
|
-
<a name='L233'></a><a href='#L233'>233</a>
|
|
282
|
-
<a name='L234'></a><a href='#L234'>234</a>
|
|
283
|
-
<a name='L235'></a><a href='#L235'>235</a>
|
|
284
|
-
<a name='L236'></a><a href='#L236'>236</a>
|
|
285
|
-
<a name='L237'></a><a href='#L237'>237</a>
|
|
286
|
-
<a name='L238'></a><a href='#L238'>238</a>
|
|
287
|
-
<a name='L239'></a><a href='#L239'>239</a>
|
|
288
|
-
<a name='L240'></a><a href='#L240'>240</a>
|
|
289
|
-
<a name='L241'></a><a href='#L241'>241</a>
|
|
290
|
-
<a name='L242'></a><a href='#L242'>242</a>
|
|
291
|
-
<a name='L243'></a><a href='#L243'>243</a>
|
|
292
|
-
<a name='L244'></a><a href='#L244'>244</a>
|
|
293
|
-
<a name='L245'></a><a href='#L245'>245</a>
|
|
294
|
-
<a name='L246'></a><a href='#L246'>246</a>
|
|
295
|
-
<a name='L247'></a><a href='#L247'>247</a>
|
|
296
|
-
<a name='L248'></a><a href='#L248'>248</a>
|
|
297
|
-
<a name='L249'></a><a href='#L249'>249</a>
|
|
298
|
-
<a name='L250'></a><a href='#L250'>250</a>
|
|
299
|
-
<a name='L251'></a><a href='#L251'>251</a>
|
|
300
|
-
<a name='L252'></a><a href='#L252'>252</a>
|
|
301
|
-
<a name='L253'></a><a href='#L253'>253</a>
|
|
302
|
-
<a name='L254'></a><a href='#L254'>254</a>
|
|
303
|
-
<a name='L255'></a><a href='#L255'>255</a>
|
|
304
|
-
<a name='L256'></a><a href='#L256'>256</a>
|
|
305
|
-
<a name='L257'></a><a href='#L257'>257</a>
|
|
306
|
-
<a name='L258'></a><a href='#L258'>258</a>
|
|
307
|
-
<a name='L259'></a><a href='#L259'>259</a>
|
|
308
|
-
<a name='L260'></a><a href='#L260'>260</a>
|
|
309
|
-
<a name='L261'></a><a href='#L261'>261</a>
|
|
310
|
-
<a name='L262'></a><a href='#L262'>262</a>
|
|
311
|
-
<a name='L263'></a><a href='#L263'>263</a>
|
|
312
|
-
<a name='L264'></a><a href='#L264'>264</a>
|
|
313
|
-
<a name='L265'></a><a href='#L265'>265</a>
|
|
314
|
-
<a name='L266'></a><a href='#L266'>266</a>
|
|
315
|
-
<a name='L267'></a><a href='#L267'>267</a>
|
|
316
|
-
<a name='L268'></a><a href='#L268'>268</a>
|
|
317
|
-
<a name='L269'></a><a href='#L269'>269</a>
|
|
318
|
-
<a name='L270'></a><a href='#L270'>270</a>
|
|
319
|
-
<a name='L271'></a><a href='#L271'>271</a>
|
|
320
|
-
<a name='L272'></a><a href='#L272'>272</a>
|
|
321
|
-
<a name='L273'></a><a href='#L273'>273</a>
|
|
322
|
-
<a name='L274'></a><a href='#L274'>274</a>
|
|
323
|
-
<a name='L275'></a><a href='#L275'>275</a>
|
|
324
|
-
<a name='L276'></a><a href='#L276'>276</a>
|
|
325
|
-
<a name='L277'></a><a href='#L277'>277</a>
|
|
326
|
-
<a name='L278'></a><a href='#L278'>278</a>
|
|
327
|
-
<a name='L279'></a><a href='#L279'>279</a>
|
|
328
|
-
<a name='L280'></a><a href='#L280'>280</a>
|
|
329
|
-
<a name='L281'></a><a href='#L281'>281</a>
|
|
330
|
-
<a name='L282'></a><a href='#L282'>282</a>
|
|
331
|
-
<a name='L283'></a><a href='#L283'>283</a>
|
|
332
|
-
<a name='L284'></a><a href='#L284'>284</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
333
|
-
<span class="cline-any cline-yes">1x</span>
|
|
334
|
-
<span class="cline-any cline-yes">1x</span>
|
|
335
|
-
<span class="cline-any cline-yes">1x</span>
|
|
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>
|
|
336
271
|
<span class="cline-any cline-yes">1x</span>
|
|
337
272
|
<span class="cline-any cline-yes">1x</span>
|
|
338
273
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -341,283 +276,220 @@
|
|
|
341
276
|
<span class="cline-any cline-yes">1x</span>
|
|
342
277
|
<span class="cline-any cline-yes">1x</span>
|
|
343
278
|
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-yes">1x</span>
|
|
345
279
|
<span class="cline-any cline-neutral"> </span>
|
|
346
|
-
<span class="cline-any cline-yes">1x</span>
|
|
347
280
|
<span class="cline-any cline-neutral"> </span>
|
|
348
281
|
<span class="cline-any cline-yes">1x</span>
|
|
349
282
|
<span class="cline-any cline-yes">1x</span>
|
|
350
283
|
<span class="cline-any cline-yes">1x</span>
|
|
351
284
|
<span class="cline-any cline-yes">1x</span>
|
|
352
285
|
<span class="cline-any cline-yes">1x</span>
|
|
353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-yes">1x</span>
|
|
355
|
-
<span class="cline-any cline-yes">1x</span>
|
|
356
286
|
<span class="cline-any cline-yes">1x</span>
|
|
357
287
|
<span class="cline-any cline-neutral"> </span>
|
|
358
288
|
<span class="cline-any cline-yes">1x</span>
|
|
359
|
-
<span class="cline-any cline-yes">
|
|
360
|
-
<span class="cline-any cline-neutral"> </span>
|
|
361
|
-
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-yes">7x</span>
|
|
363
290
|
<span class="cline-any cline-neutral"> </span>
|
|
364
291
|
<span class="cline-any cline-neutral"> </span>
|
|
365
292
|
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-yes">51x</span>
|
|
367
|
-
<span class="cline-any cline-yes">51x</span>
|
|
368
|
-
<span class="cline-any cline-yes">51x</span>
|
|
369
|
-
<span class="cline-any cline-yes">51x</span>
|
|
370
|
-
<span class="cline-any cline-yes">51x</span>
|
|
371
|
-
<span class="cline-any cline-yes">51x</span>
|
|
372
293
|
<span class="cline-any cline-neutral"> </span>
|
|
373
294
|
<span class="cline-any cline-neutral"> </span>
|
|
374
295
|
<span class="cline-any cline-neutral"> </span>
|
|
375
|
-
<span class="cline-any cline-yes">
|
|
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>
|
|
376
302
|
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-yes">102x</span>
|
|
378
303
|
<span class="cline-any cline-neutral"> </span>
|
|
379
|
-
<span class="cline-any cline-yes">51x</span>
|
|
380
304
|
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-yes">10x</span>
|
|
381
306
|
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-yes">10x</span>
|
|
382
308
|
<span class="cline-any cline-neutral"> </span>
|
|
383
309
|
<span class="cline-any cline-neutral"> </span>
|
|
384
|
-
<span class="cline-any cline-no"> </span>
|
|
385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-no"> </span>
|
|
387
|
-
<span class="cline-any cline-no"> </span>
|
|
388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-neutral"> </span>
|
|
390
|
-
<span class="cline-any cline-no"> </span>
|
|
391
|
-
<span class="cline-any cline-no"> </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-no"> </span>
|
|
397
|
-
<span class="cline-any cline-no"> </span>
|
|
398
310
|
<span class="cline-any cline-neutral"> </span>
|
|
399
|
-
<span class="cline-any cline-
|
|
400
|
-
<span class="cline-any cline-no"> </span>
|
|
311
|
+
<span class="cline-any cline-yes">3x</span>
|
|
401
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>
|
|
402
315
|
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-no"> </span>
|
|
404
316
|
<span class="cline-any cline-neutral"> </span>
|
|
405
|
-
<span class="cline-any cline-
|
|
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>
|
|
406
325
|
<span class="cline-any cline-neutral"> </span>
|
|
407
326
|
<span class="cline-any cline-no"> </span>
|
|
408
327
|
<span class="cline-any cline-no"> </span>
|
|
409
|
-
<span class="cline-any cline-no"> </span>
|
|
410
328
|
<span class="cline-any cline-neutral"> </span>
|
|
411
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-yes">3x</span>
|
|
412
331
|
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-yes">3x</span>
|
|
413
333
|
<span class="cline-any cline-neutral"> </span>
|
|
414
334
|
<span class="cline-any cline-no"> </span>
|
|
415
335
|
<span class="cline-any cline-no"> </span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
336
|
<span class="cline-any cline-no"> </span>
|
|
418
337
|
<span class="cline-any cline-neutral"> </span>
|
|
419
338
|
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-no"> </span>
|
|
421
339
|
<span class="cline-any cline-neutral"> </span>
|
|
422
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>
|
|
423
344
|
<span class="cline-any cline-neutral"> </span>
|
|
424
|
-
<span class="cline-any cline-
|
|
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>
|
|
425
348
|
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-
|
|
349
|
+
<span class="cline-any cline-yes">6x</span>
|
|
427
350
|
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-no"> </span>
|
|
429
|
-
<span class="cline-any cline-no"> </span>
|
|
430
|
-
<span class="cline-any cline-neutral"> </span>
|
|
431
|
-
<span class="cline-any cline-no"> </span>
|
|
432
|
-
<span class="cline-any cline-no"> </span>
|
|
433
|
-
<span class="cline-any cline-neutral"> </span>
|
|
434
|
-
<span class="cline-any cline-no"> </span>
|
|
435
|
-
<span class="cline-any cline-neutral"> </span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
438
|
-
<span class="cline-any cline-no"> </span>
|
|
439
351
|
<span class="cline-any cline-neutral"> </span>
|
|
440
352
|
<span class="cline-any cline-neutral"> </span>
|
|
441
353
|
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-
|
|
443
|
-
<span class="cline-any cline-no"> </span>
|
|
444
|
-
<span class="cline-any cline-neutral"> </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-neutral"> </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-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-no"> </span>
|
|
454
|
-
<span class="cline-any cline-no"> </span>
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
459
|
-
<span class="cline-any cline-neutral"> </span>
|
|
460
|
-
<span class="cline-any cline-no"> </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-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-neutral"> </span>
|
|
470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
471
|
-
<span class="cline-any cline-no"> </span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
474
|
-
<span class="cline-any cline-no"> </span>
|
|
475
|
-
<span class="cline-any cline-no"> </span>
|
|
476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-no"> </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-no"> </span>
|
|
485
|
-
<span class="cline-any cline-no"> </span>
|
|
486
|
-
<span class="cline-any cline-no"> </span>
|
|
487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-no"> </span>
|
|
489
|
-
<span class="cline-any cline-no"> </span>
|
|
490
|
-
<span class="cline-any cline-neutral"> </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-no"> </span>
|
|
495
|
-
<span class="cline-any cline-no"> </span>
|
|
354
|
+
<span class="cline-any cline-yes">6x</span>
|
|
496
355
|
<span class="cline-any cline-neutral"> </span>
|
|
497
|
-
<span class="cline-any cline-
|
|
498
|
-
<span class="cline-any cline-no"> </span>
|
|
356
|
+
<span class="cline-any cline-yes">204x</span>
|
|
499
357
|
<span class="cline-any cline-neutral"> </span>
|
|
500
358
|
<span class="cline-any cline-neutral"> </span>
|
|
501
|
-
<span class="cline-any cline-no"> </span>
|
|
502
|
-
<span class="cline-any cline-no"> </span>
|
|
503
359
|
<span class="cline-any cline-neutral"> </span>
|
|
504
360
|
<span class="cline-any cline-neutral"> </span>
|
|
505
361
|
<span class="cline-any cline-neutral"> </span>
|
|
506
|
-
<span class="cline-any cline-no"> </span>
|
|
507
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>
|
|
508
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>
|
|
509
370
|
<span class="cline-any cline-neutral"> </span>
|
|
510
|
-
<span class="cline-any cline-
|
|
511
|
-
<span class="cline-any cline-
|
|
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>
|
|
512
374
|
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-
|
|
514
|
-
<span class="cline-any cline-
|
|
515
|
-
<span class="cline-any cline-
|
|
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>
|
|
516
378
|
<span class="cline-any cline-neutral"> </span>
|
|
517
379
|
<span class="cline-any cline-neutral"> </span>
|
|
518
380
|
<span class="cline-any cline-neutral"> </span>
|
|
519
|
-
<span class="cline-any cline-no"> </span>
|
|
520
381
|
<span class="cline-any cline-neutral"> </span>
|
|
521
|
-
<span class="cline-any cline-no"> </span>
|
|
522
382
|
<span class="cline-any cline-neutral"> </span>
|
|
523
|
-
<span class="cline-any cline-
|
|
524
|
-
<span class="cline-any cline-no"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">3x</span>
|
|
525
384
|
<span class="cline-any cline-neutral"> </span>
|
|
526
385
|
<span class="cline-any cline-neutral"> </span>
|
|
527
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>
|
|
528
391
|
<span class="cline-any cline-neutral"> </span>
|
|
529
|
-
<span class="cline-any cline-no"> </span>
|
|
530
|
-
<span class="cline-any cline-no"> </span>
|
|
531
392
|
<span class="cline-any cline-neutral"> </span>
|
|
532
|
-
<span class="cline-any cline-
|
|
533
|
-
<span class="cline-any cline-no"> </span>
|
|
393
|
+
<span class="cline-any cline-yes">3x</span>
|
|
534
394
|
<span class="cline-any cline-neutral"> </span>
|
|
535
|
-
<span class="cline-any cline-no"> </span>
|
|
536
395
|
<span class="cline-any cline-neutral"> </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
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>
|
|
543
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>
|
|
544
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>
|
|
545
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>
|
|
546
411
|
<span class="cline-any cline-neutral"> </span>
|
|
547
412
|
<span class="cline-any cline-neutral"> </span>
|
|
548
|
-
<span class="cline-any cline-
|
|
549
|
-
<span class="cline-any cline-no"> </span>
|
|
550
|
-
<span class="cline-any cline-no"> </span>
|
|
413
|
+
<span class="cline-any cline-yes">805x</span>
|
|
551
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>
|
|
552
417
|
<span class="cline-any cline-neutral"> </span>
|
|
553
418
|
<span class="cline-any cline-neutral"> </span>
|
|
554
|
-
<span class="cline-any cline-no"> </span>
|
|
555
419
|
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-yes">3x</span>
|
|
556
421
|
<span class="cline-any cline-neutral"> </span>
|
|
557
|
-
<span class="cline-any cline-no"> </span>
|
|
558
422
|
<span class="cline-any cline-neutral"> </span>
|
|
559
|
-
<span class="cline-any cline-no"> </span>
|
|
560
423
|
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-yes">3x</span>
|
|
561
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>
|
|
562
428
|
<span class="cline-any cline-neutral"> </span>
|
|
563
|
-
<span class="cline-any cline-no"> </span>
|
|
564
429
|
<span class="cline-any cline-neutral"> </span>
|
|
565
430
|
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-yes">6x</span>
|
|
566
432
|
<span class="cline-any cline-neutral"> </span>
|
|
433
|
+
<span class="cline-any cline-yes">204x</span>
|
|
567
434
|
<span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-
|
|
569
|
-
<span class="cline-any cline-
|
|
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>
|
|
570
444
|
<span class="cline-any cline-neutral"> </span>
|
|
571
445
|
<span class="cline-any cline-neutral"> </span>
|
|
446
|
+
<span class="cline-any cline-yes">166020x</span>
|
|
572
447
|
<span class="cline-any cline-neutral"> </span>
|
|
573
|
-
<span class="cline-any cline-no"> </span>
|
|
574
|
-
<span class="cline-any cline-no"> </span>
|
|
575
|
-
<span class="cline-any cline-no"> </span>
|
|
576
448
|
<span class="cline-any cline-neutral"> </span>
|
|
577
449
|
<span class="cline-any cline-neutral"> </span>
|
|
578
450
|
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-no"> </span>
|
|
580
|
-
<span class="cline-any cline-no"> </span>
|
|
581
451
|
<span class="cline-any cline-neutral"> </span>
|
|
582
452
|
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-no"> </span>
|
|
584
453
|
<span class="cline-any cline-neutral"> </span>
|
|
454
|
+
<span class="cline-any cline-yes">6x</span>
|
|
585
455
|
<span class="cline-any cline-neutral"> </span>
|
|
586
456
|
<span class="cline-any cline-neutral"> </span>
|
|
457
|
+
<span class="cline-any cline-yes">3x</span>
|
|
587
458
|
<span class="cline-any cline-neutral"> </span>
|
|
459
|
+
<span class="cline-any cline-yes">3x</span>
|
|
588
460
|
<span class="cline-any cline-neutral"> </span>
|
|
589
461
|
<span class="cline-any cline-neutral"> </span>
|
|
590
462
|
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-no"> </span>
|
|
592
|
-
<span class="cline-any cline-no"> </span>
|
|
593
463
|
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-
|
|
595
|
-
<span class="cline-any cline-no"> </span>
|
|
464
|
+
<span class="cline-any cline-yes">3x</span>
|
|
596
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>
|
|
597
470
|
<span class="cline-any cline-neutral"> </span>
|
|
598
471
|
<span class="cline-any cline-neutral"> </span>
|
|
599
472
|
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-
|
|
473
|
+
<span class="cline-any cline-yes">3x</span>
|
|
474
|
+
<span class="cline-any cline-yes">3x</span>
|
|
601
475
|
<span class="cline-any cline-neutral"> </span>
|
|
602
|
-
<span class="cline-any cline-
|
|
603
|
-
<span class="cline-any cline-
|
|
476
|
+
<span class="cline-any cline-yes">3x</span>
|
|
477
|
+
<span class="cline-any cline-yes">3x</span>
|
|
604
478
|
<span class="cline-any cline-neutral"> </span>
|
|
605
479
|
<span class="cline-any cline-neutral"> </span>
|
|
480
|
+
<span class="cline-any cline-yes">3x</span>
|
|
606
481
|
<span class="cline-any cline-neutral"> </span>
|
|
607
482
|
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-no"> </span>
|
|
609
483
|
<span class="cline-any cline-neutral"> </span>
|
|
610
484
|
<span class="cline-any cline-neutral"> </span>
|
|
485
|
+
<span class="cline-any cline-yes">7x</span>
|
|
611
486
|
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-no"> </span>
|
|
613
487
|
<span class="cline-any cline-neutral"> </span>
|
|
614
488
|
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import * as
|
|
616
|
-
import * as head from 'lodash.head';
|
|
489
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import * as head from 'lodash.head';
|
|
617
490
|
import * as values from 'lodash.values';
|
|
618
491
|
import * as keys from 'lodash.keys';
|
|
619
492
|
import * as get from 'lodash.get';
|
|
620
|
-
import * as flattenDeep from 'lodash.flattendeep';
|
|
621
493
|
import * as isEmpty from 'lodash.isempty';
|
|
622
494
|
import * as startsWith from 'lodash.startswith';
|
|
623
495
|
import * as includes from 'lodash.includes';
|
|
@@ -626,17 +498,12 @@ import { DdfCsvError } from '../ddfcsv-error';
|
|
|
626
498
|
import { IDatapackage, IResourceSelectionOptimizer, IResourceRead, IBaseReaderOptions } from '../interfaces';
|
|
627
499
|
import { QueryFeature, featureDetectors, IQuery } from 'ddf-query-validator';
|
|
628
500
|
|
|
629
|
-
const Papa = require('papaparse');
|
|
630
|
-
|
|
631
501
|
const WHERE_KEYWORD = 'where';
|
|
632
502
|
const JOIN_KEYWORD = 'join';
|
|
633
503
|
const KEY_IN = '$in';
|
|
634
504
|
const KEY_NIN = '$nin';
|
|
635
505
|
const KEY_AND = '$and';
|
|
636
|
-
|
|
637
|
-
const getFirstConditionClause = <span class="fstat-no" title="function not covered" >clause</span> => <span class="cstat-no" title="statement not covered" >head(values(clause));</span>
|
|
638
|
-
const getFirstKey = <span class="fstat-no" title="function not covered" >obj</span> => <span class="cstat-no" title="statement not covered" >head(keys(obj));</span>
|
|
639
|
-
const isOneKeyBased = <span class="fstat-no" title="function not covered" >obj</span> => <span class="cstat-no" title="statement not covered" >keys(obj).length === 1;</span>
|
|
506
|
+
const KEY_OR = '$or';
|
|
640
507
|
|
|
641
508
|
export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
642
509
|
private flow: any = {};
|
|
@@ -646,7 +513,7 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
646
513
|
private datapackage: IDatapackage;
|
|
647
514
|
private conceptsLookup;
|
|
648
515
|
|
|
649
|
-
constructor(queryParam, private options: IBaseReaderOptions) {
|
|
516
|
+
constructor(private parent, queryParam, private options: IBaseReaderOptions) {
|
|
650
517
|
this.fileReader = options.fileReader;
|
|
651
518
|
this.datasetPath = options.basePath;
|
|
652
519
|
this.query = queryParam;
|
|
@@ -657,35 +524,32 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
657
524
|
isMatched(): boolean {
|
|
658
525
|
this.flow.joinObject = get(this.query, JOIN_KEYWORD);
|
|
659
526
|
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
return includes(relatedFeatures, QueryFeature.WhereClauseBasedOnConjunction) &&
|
|
663
|
-
includes(relatedFeatures, QueryFeature.ConjunctionPartFromWhereClauseCorrespondsToJoin);
|
|
527
|
+
return this.query.from === "datapoints" && this.flow.joinObject;
|
|
664
528
|
}
|
|
665
529
|
|
|
666
|
-
|
|
667
|
-
const { debug, error, warning } =
|
|
530
|
+
async getRecommendedFilesSet(): Promise<string[]> {
|
|
531
|
+
const { debug, error, warning } = this.options.diagnostic.prepareDiagnosticFor('getRecommendedFilesSet');
|
|
668
532
|
|
|
669
|
-
<span class="
|
|
670
|
-
|
|
533
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (this.isMatched()) {
|
|
534
|
+
debug('plugin matched');
|
|
671
535
|
|
|
672
536
|
let result;
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
<span class="cstat-no" title="statement not covered" >
|
|
676
|
-
|
|
677
|
-
const data =
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
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();
|
|
681
545
|
} catch (err) {
|
|
682
546
|
<span class="cstat-no" title="statement not covered" > error('wrong data processing', err);</span>
|
|
683
547
|
<span class="cstat-no" title="statement not covered" > return [];</span>
|
|
684
548
|
}
|
|
685
549
|
|
|
686
|
-
|
|
550
|
+
debug('recommended files found', result);
|
|
687
551
|
|
|
688
|
-
|
|
552
|
+
return result;
|
|
689
553
|
} else {
|
|
690
554
|
const message = <span class="cstat-no" title="statement not covered" >`Plugin "InClauseUnderConjunction" is not matched!`;</span>
|
|
691
555
|
<span class="cstat-no" title="statement not covered" > warning(message);</span>
|
|
@@ -693,207 +557,154 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
693
557
|
}
|
|
694
558
|
}
|
|
695
559
|
|
|
696
|
-
private
|
|
697
|
-
|
|
698
|
-
<span class="
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
<span class="cstat-no" title="statement not covered" > this.flow.processableClauses.push(...flattenDeep(where[KEY_AND].map(<span class="fstat-no" title="function not covered" >el</span> => <span class="cstat-no" title="statement not covered" >this.getProcessableClauses(el))</span>));</span>
|
|
716
|
-
} else {
|
|
717
|
-
<span class="cstat-no" title="statement not covered" > this.flow.processableClauses.push(...this.getProcessableClauses(where));</span>
|
|
718
|
-
}
|
|
719
|
-
}
|
|
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
|
+
}));
|
|
720
579
|
|
|
721
|
-
<span class="cstat-no" title="statement not covered" > return this;</span>
|
|
722
580
|
}
|
|
723
581
|
|
|
724
|
-
private
|
|
725
|
-
|
|
726
|
-
|
|
582
|
+
private collectEntityFilesNames(): InClauseUnderConjunction {
|
|
583
|
+
this.flow.entityFilesNames = new Set();
|
|
584
|
+
this.flow.entityResources = new Set();
|
|
585
|
+
this.flow.fileNameToPrimaryKeyHash = new Map();
|
|
727
586
|
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
const
|
|
587
|
+
for (const schemaResourceRecord of this.datapackage.ddfSchema.entities) {
|
|
588
|
+
for (const clause of this.flow.processableClauses) {
|
|
589
|
+
const key = clause.key;
|
|
731
590
|
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
const
|
|
591
|
+
if (head(schemaResourceRecord.primaryKey) === key) {
|
|
592
|
+
for (const resourceName of schemaResourceRecord.resources) {
|
|
593
|
+
const resource = this.options.resourcesLookup.get(resourceName);
|
|
735
594
|
|
|
736
|
-
|
|
737
|
-
|
|
595
|
+
this.flow.entityResources.add(resource);
|
|
596
|
+
this.flow.entityFilesNames.add(resource.path);
|
|
597
|
+
this.flow.fileNameToPrimaryKeyHash.set(resource.path, key);
|
|
738
598
|
}
|
|
739
599
|
}
|
|
740
600
|
}
|
|
741
601
|
}
|
|
742
602
|
|
|
743
|
-
|
|
603
|
+
return this;
|
|
744
604
|
}
|
|
745
605
|
|
|
746
|
-
private
|
|
747
|
-
const self =
|
|
748
|
-
const actions =
|
|
749
|
-
<span class="
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
<span class="cstat-no" title="statement not covered" > Papa.parse(text, {</span>
|
|
755
|
-
header: true,
|
|
756
|
-
skipEmptyLines: true,
|
|
757
|
-
complete: <span class="fstat-no" title="function not covered" >result</span> => <span class="cstat-no" title="statement not covered" >actResolve({file, result}),</span>
|
|
758
|
-
error: <span class="fstat-no" title="function not covered" >error</span> => <span class="cstat-no" title="statement not covered" >actReject(error)</span>
|
|
759
|
-
});
|
|
760
|
-
});
|
|
761
|
-
}));
|
|
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
|
+
});
|
|
762
612
|
|
|
763
|
-
|
|
613
|
+
return Promise.all(actions);
|
|
764
614
|
}
|
|
765
615
|
|
|
766
|
-
private
|
|
767
|
-
const getSubdomainsFromRecord =
|
|
768
|
-
.filter(
|
|
769
|
-
.map(
|
|
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--/, '')));
|
|
770
620
|
|
|
771
|
-
|
|
772
|
-
|
|
621
|
+
this.flow.entityValueToFileHash = new Map();
|
|
622
|
+
this.flow.entityValueToDomainHash = new Map();
|
|
773
623
|
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
const primaryKeyForThisFile =
|
|
777
|
-
const
|
|
778
|
-
const domainsForCurrentRecord = <span class="cstat-no" title="statement not covered" >[...getSubdomainsFromRecord(entityRecord)];</span>
|
|
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)];
|
|
779
628
|
|
|
780
|
-
|
|
781
|
-
|
|
629
|
+
if (isEmpty(domainsForCurrentRecord)) {
|
|
630
|
+
domainsForCurrentRecord.push(primaryKeyForThisFile);
|
|
782
631
|
}
|
|
783
632
|
|
|
784
|
-
|
|
785
|
-
|
|
633
|
+
const primaryKeyCellValue = entityRecord[primaryKeyForThisFile] || entityRecord[domainsForCurrentRecord[0]];
|
|
634
|
+
|
|
635
|
+
this.flow.entityValueToDomainHash.set(primaryKeyCellValue, domainsForCurrentRecord);
|
|
636
|
+
this.flow.entityValueToFileHash.set(primaryKeyCellValue, entityFileDescriptor.file);
|
|
786
637
|
}
|
|
787
638
|
}
|
|
788
639
|
|
|
789
|
-
|
|
640
|
+
return this;
|
|
790
641
|
}
|
|
791
642
|
|
|
792
|
-
private
|
|
793
|
-
const
|
|
794
|
-
const result = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
643
|
+
private getFilesGroupsQueryClause(): InClauseUnderConjunction {
|
|
644
|
+
const filesGroupsByClause = new Map();
|
|
795
645
|
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
|
|
802
|
-
<span class="cstat-no" title="statement not covered" > return result;</span>
|
|
803
|
-
};
|
|
804
|
-
const filesGroupsByClause = <span class="cstat-no" title="statement not covered" >new Map();</span>
|
|
805
|
-
|
|
806
|
-
<span class="cstat-no" title="statement not covered" > for (const clause of this.flow.processableClauses) {</span>
|
|
807
|
-
const filesGroupByClause = <span class="cstat-no" title="statement not covered" >{</span>
|
|
808
|
-
entities: new Set(),
|
|
809
|
-
datapoints: new Set(),
|
|
810
|
-
concepts: new Set()
|
|
646
|
+
for (const clause of this.flow.processableClauses) {
|
|
647
|
+
const filesGroupByClause = {
|
|
648
|
+
datapoints: new Set()
|
|
811
649
|
};
|
|
812
|
-
const firstConditionClause = <span class="cstat-no" title="statement not covered" >getFirstConditionClause(clause);</span>
|
|
813
|
-
const entityValuesFromClause = <span class="cstat-no" title="statement not covered" >firstConditionClause[KEY_IN] || getEntitiesExcept(firstConditionClause[KEY_NIN]);</span>
|
|
814
|
-
|
|
815
|
-
<span class="cstat-no" title="statement not covered" > for (const entityValueFromClause of entityValuesFromClause) {</span>
|
|
816
|
-
<span class="cstat-no" title="statement not covered" > filesGroupByClause.entities.add(this.flow.entityValueToFileHash.get(entityValueFromClause));</span>
|
|
817
|
-
|
|
818
|
-
const entitiesByQuery = <span class="cstat-no" title="statement not covered" >this.flow.entityValueToDomainHash.get(entityValueFromClause);</span>
|
|
819
650
|
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
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
|
+
}
|
|
825
668
|
}
|
|
826
669
|
}
|
|
827
670
|
}
|
|
828
671
|
}
|
|
829
672
|
}
|
|
830
673
|
|
|
831
|
-
|
|
832
|
-
<span class="cstat-no" title="statement not covered" > for (const resourceName of schemaResourceRecord.resources) {</span>
|
|
833
|
-
<span class="cstat-no" title="statement not covered" > filesGroupByClause.concepts.add(this.flow.resourceToFile.get(resourceName));</span>
|
|
834
|
-
}
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
<span class="cstat-no" title="statement not covered" > filesGroupsByClause.set(clause, filesGroupByClause);</span>
|
|
674
|
+
filesGroupsByClause.set(clause.key, filesGroupByClause);
|
|
838
675
|
}
|
|
839
676
|
|
|
840
|
-
|
|
677
|
+
this.flow.filesGroupsByClause = filesGroupsByClause;
|
|
841
678
|
|
|
842
|
-
|
|
679
|
+
return this;
|
|
843
680
|
}
|
|
844
681
|
|
|
845
|
-
private
|
|
846
|
-
const clauseKeys = <span class="cstat-no" title="statement not covered" >this.flow.filesGroupsByClause.keys();</span>
|
|
682
|
+
private getOptimalFilesGroup(): string[] {
|
|
847
683
|
|
|
848
|
-
|
|
849
|
-
let appropriateClauseSize;
|
|
684
|
+
const entities = this.flow.entityFilesNames;
|
|
850
685
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
this.
|
|
855
|
-
|
|
856
|
-
<span class="cstat-no" title="statement not covered" > if (!appropriateClauseKey || size < appropriateClauseSize) {</span>
|
|
857
|
-
<span class="cstat-no" title="statement not covered" > appropriateClauseKey = key;</span>
|
|
858
|
-
<span class="cstat-no" title="statement not covered" > appropriateClauseSize = size;</span>
|
|
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);
|
|
859
690
|
}
|
|
860
691
|
}
|
|
861
692
|
|
|
862
|
-
|
|
863
|
-
|
|
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));
|
|
864
698
|
}
|
|
865
699
|
|
|
866
|
-
|
|
867
|
-
...Array.from(this.flow.filesGroupsByClause.get(appropriateClauseKey).concepts),
|
|
868
|
-
...Array.from(this.flow.filesGroupsByClause.get(appropriateClauseKey).entities),
|
|
869
|
-
...Array.from(this.flow.filesGroupsByClause.get(appropriateClauseKey).datapoints)
|
|
870
|
-
] as string[];
|
|
700
|
+
return [...Array.from(concepts), ...Array.from(entities)].concat(datapoints) as string[];
|
|
871
701
|
}
|
|
872
702
|
|
|
873
|
-
private <span class="fstat-no" title="function not covered" >getProcessableClauses</span>(clause) {
|
|
874
|
-
const result = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
875
|
-
const clauseKeys = <span class="cstat-no" title="statement not covered" >keys(clause);</span>
|
|
876
|
-
|
|
877
|
-
<span class="cstat-no" title="statement not covered" > for (const key of clauseKeys) {</span>
|
|
878
|
-
<span class="cstat-no" title="statement not covered" > if (!startsWith(key, '$') && isOneKeyBased(clause[key])) {</span>
|
|
879
|
-
// attention! this functionality process only first clause
|
|
880
|
-
// for example, { geo: { '$in': ['world'] } }
|
|
881
|
-
// in this example { geo: { '$in': ['world'] }, foo: { '$in': ['bar', 'baz'] } }]
|
|
882
|
-
// foo: { '$in': ['bar', 'baz'] } will NOT be processed
|
|
883
|
-
const conditionKey = <span class="cstat-no" title="statement not covered" >head(keys(clause[key]));</span>
|
|
884
703
|
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
}
|
|
890
|
-
|
|
891
|
-
<span class="cstat-no" title="statement not covered" > return result;</span>
|
|
704
|
+
private intersectArray(array1, array2) {
|
|
705
|
+
return array1.filter(value => array2.includes(value));
|
|
892
706
|
}
|
|
893
707
|
|
|
894
|
-
private <span class="fstat-no" title="function not covered" >singleAndField</span>(clause): boolean {
|
|
895
|
-
<span class="cstat-no" title="statement not covered" > return isOneKeyBased(clause) && !!get(clause, KEY_AND);</span>
|
|
896
|
-
}
|
|
897
708
|
}
|
|
898
709
|
</pre></td></tr>
|
|
899
710
|
</table></pre>
|
|
@@ -901,7 +712,7 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
901
712
|
</div><!-- /wrapper -->
|
|
902
713
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
903
714
|
Code coverage
|
|
904
|
-
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at
|
|
715
|
+
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jun 24 2024 00:21:40 GMT+0300 (Moscow Standard Time)
|
|
905
716
|
</div>
|
|
906
717
|
</div>
|
|
907
718
|
<script src="../../prettify.js"></script>
|