@vizabi/reader-ddfcsv 4.1.1 → 4.3.0
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/CHANGELOG.md +5 -0
- package/dist/reader-ddfcsv-polyfill.js +1 -16
- package/dist/reader-ddfcsv-polyfill.js.map +1 -1
- package/dist/reader-ddfcsv.js +7 -16
- package/dist/reader-ddfcsv.js.map +1 -1
- package/lib/src/ddf-csv.d.ts +1 -0
- package/lib/src/ddf-csv.js +31 -20
- package/lib/src/ddf-csv.js.map +1 -1
- package/lib/src/ddfcsv-error.js +1 -0
- package/lib/src/ddfcsv-error.js.map +1 -1
- package/lib/src/ddfcsv-reader.js +6 -5
- package/lib/src/ddfcsv-reader.js.map +1 -1
- package/lib/src/file-readers/backend-file-reader.js +1 -0
- package/lib/src/file-readers/backend-file-reader.js.map +1 -1
- package/lib/src/file-readers/github-path-adapter.js +1 -0
- package/lib/src/file-readers/github-path-adapter.js.map +1 -1
- package/lib/src/index.js +5 -4
- package/lib/src/index.js.map +1 -1
- package/lib/src/interfaces.d.ts +1 -0
- package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.d.ts +3 -2
- package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.js +35 -35
- package/lib/src/resource-selection-optimizer/in-clause-under-conjunction.js.map +1 -1
- package/lib/src/resource-selection-optimizer/index.d.ts +1 -1
- package/lib/src/resource-selection-optimizer/index.js +3 -2
- package/lib/src/resource-selection-optimizer/index.js.map +1 -1
- package/lib-web/src/ddf-csv.d.ts +1 -0
- package/lib-web/src/ddf-csv.js +285 -388
- package/lib-web/src/ddf-csv.js.map +1 -1
- package/lib-web/src/ddfcsv-error.js +9 -12
- package/lib-web/src/ddfcsv-error.js.map +1 -1
- package/lib-web/src/ddfcsv-reader.js +84 -125
- package/lib-web/src/ddfcsv-reader.js.map +1 -1
- package/lib-web/src/file-readers/frontend-file-reader.js +14 -16
- package/lib-web/src/file-readers/frontend-file-reader.js.map +1 -1
- package/lib-web/src/file-readers/github-path-adapter.js +6 -5
- package/lib-web/src/file-readers/github-path-adapter.js.map +1 -1
- package/lib-web/src/index-web.js +6 -5
- package/lib-web/src/index-web.js.map +1 -1
- package/lib-web/src/interfaces.d.ts +1 -0
- package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.d.ts +3 -2
- package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.js +168 -347
- package/lib-web/src/resource-selection-optimizer/in-clause-under-conjunction.js.map +1 -1
- package/lib-web/src/resource-selection-optimizer/index.d.ts +1 -1
- package/lib-web/src/resource-selection-optimizer/index.js +7 -6
- package/lib-web/src/resource-selection-optimizer/index.js.map +1 -1
- package/package.json +6 -4
- package/src/ddf-csv.ts +18 -12
- package/src/interfaces.ts +1 -0
- package/src/resource-selection-optimizer/in-clause-under-conjunction.ts +37 -38
- package/src/resource-selection-optimizer/index.ts +2 -2
- package/tsconfig-web.json +5 -2
- package/tsconfig.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-clause-under-conjunction.js","sourceRoot":"","sources":["../../../src/resource-selection-optimizer/in-clause-under-conjunction.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"in-clause-under-conjunction.js","sourceRoot":"","sources":["../../../src/resource-selection-optimizer/in-clause-under-conjunction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { IBaseReaderOptions, IResourceSelectionOptimizer } from '../interfaces';
|
|
2
|
-
export declare function getAppropriatePlugin(queryParam: any, options: IBaseReaderOptions): IResourceSelectionOptimizer;
|
|
2
|
+
export declare function getAppropriatePlugin(parent: any, queryParam: any, options: IBaseReaderOptions): IResourceSelectionOptimizer;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
exports.getAppropriatePlugin = void 0;
|
|
4
|
+
const in_clause_under_conjunction_1 = require("./in-clause-under-conjunction");
|
|
5
|
+
const head = require("lodash.head");
|
|
6
|
+
function getAppropriatePlugin(parent, queryParam, options) {
|
|
7
|
+
const plugins = [
|
|
8
|
+
new in_clause_under_conjunction_1.InClauseUnderConjunction(parent, queryParam, options)
|
|
8
9
|
];
|
|
9
|
-
return head(plugins.filter(
|
|
10
|
+
return head(plugins.filter(plugin => plugin.isMatched()));
|
|
10
11
|
}
|
|
11
12
|
exports.getAppropriatePlugin = getAppropriatePlugin;
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resource-selection-optimizer/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resource-selection-optimizer/index.ts"],"names":[],"mappings":";;;AAAA,+EAAyE;AACzE,oCAAoC;AAGpC,SAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,OAA2B;IAClF,MAAM,OAAO,GAAG;QACd,IAAI,sDAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;KAC1D,CAAC;IAEF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAND,oDAMC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vizabi/reader-ddfcsv",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "Vizabi DDFcsv reader",
|
|
5
5
|
"author": "Vyacheslav Chub<vyacheslav.chub@valor-software.com>",
|
|
6
6
|
"license": "GPL-3.0",
|
|
7
7
|
"main": "lib/src/index.js",
|
|
8
|
+
"browser": "dist/reader-ddfcsv.js",
|
|
8
9
|
"publishConfig": {
|
|
9
10
|
"access": "public"
|
|
10
11
|
},
|
|
@@ -95,7 +96,7 @@
|
|
|
95
96
|
"@types/core-js": "2.5.0",
|
|
96
97
|
"@types/lodash": "4.14.116",
|
|
97
98
|
"@types/mocha": "5.2.5",
|
|
98
|
-
"@types/node": "
|
|
99
|
+
"@types/node": "20.12.12",
|
|
99
100
|
"babel-core": "6.26.3",
|
|
100
101
|
"babel-loader": "7.1.5",
|
|
101
102
|
"babel-plugin-transform-object-rest-spread": "6.26.0",
|
|
@@ -121,10 +122,11 @@
|
|
|
121
122
|
"source-map-loader": "0.2.3",
|
|
122
123
|
"source-map-support": "0.5.6",
|
|
123
124
|
"ts-loader": "4.3.0",
|
|
124
|
-
"ts-node": "
|
|
125
|
+
"ts-node": "10.9.2",
|
|
126
|
+
"tslib": " 2.6.2",
|
|
125
127
|
"tslint": "5.11.0",
|
|
126
128
|
"tslint-no-unused-expression-chai": "0.1.3",
|
|
127
|
-
"typescript": "
|
|
129
|
+
"typescript": "5.4.5",
|
|
128
130
|
"uglifyjs-webpack-plugin": "1.2.5",
|
|
129
131
|
"webpack": "4.8.1",
|
|
130
132
|
"webpack-bundle-analyzer": "^3.0.4",
|
package/src/ddf-csv.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as includes from 'lodash.includes';
|
|
2
|
-
import * as cloneDeep from 'lodash.clonedeep';
|
|
3
2
|
import * as isEmpty from 'lodash.isempty';
|
|
4
3
|
import * as stripBom from 'strip-bom';
|
|
5
4
|
import { getAppropriatePlugin } from './resource-selection-optimizer';
|
|
@@ -41,6 +40,7 @@ export function ddfCsvReader (logger?: any) {
|
|
|
41
40
|
|
|
42
41
|
let optimalFilesSet = [];
|
|
43
42
|
let datapackage;
|
|
43
|
+
let datapackagePromise;
|
|
44
44
|
|
|
45
45
|
function loadDataPackage (baseOptions: IBaseReaderOptions): Promise<IDatapackage> {
|
|
46
46
|
const datapackagePath = getFilePath(baseOptions.basePath);
|
|
@@ -172,14 +172,15 @@ export function ddfCsvReader (logger?: any) {
|
|
|
172
172
|
|
|
173
173
|
try {
|
|
174
174
|
await validateQueryStructure(queryParam, baseOptions);
|
|
175
|
-
baseOptions.datapackage = await loadDataPackage(baseOptions);
|
|
175
|
+
baseOptions.datapackage = await (datapackagePromise || (datapackagePromise = loadDataPackage(baseOptions)));
|
|
176
|
+
baseOptions.resourcesLookup = resourcesLookup;
|
|
176
177
|
await loadConcepts(queryParam, baseOptions);
|
|
177
178
|
await validateQueryDefinitions(queryParam, baseOptions);
|
|
178
179
|
|
|
179
180
|
if (isSchemaQuery(queryParam)) {
|
|
180
181
|
data = await querySchema(queryParam, baseOptions);
|
|
181
182
|
} else {
|
|
182
|
-
const appropriatePlugin = getAppropriatePlugin(queryParam, baseOptions);
|
|
183
|
+
const appropriatePlugin = getAppropriatePlugin(this, queryParam, baseOptions);
|
|
183
184
|
|
|
184
185
|
if (appropriatePlugin) {
|
|
185
186
|
optimalFilesSet = [];
|
|
@@ -464,7 +465,7 @@ export function ddfCsvReader (logger?: any) {
|
|
|
464
465
|
select: { key: [ join.key ] },
|
|
465
466
|
where: join.where,
|
|
466
467
|
from: options.conceptsLookup.has(join.key) ? 'entities' : 'concepts'
|
|
467
|
-
}, Object.assign({ joinID },
|
|
468
|
+
}, Object.assign({ joinID }, options))
|
|
468
469
|
.then(result => ({
|
|
469
470
|
[ joinID ]: {
|
|
470
471
|
[ join.key ]: {
|
|
@@ -559,7 +560,7 @@ export function ddfCsvReader (logger?: any) {
|
|
|
559
560
|
.map(concept => query({
|
|
560
561
|
select: { key: [ concept.domain ], value: [ 'is--' + concept.concept ] },
|
|
561
562
|
from: 'entities'
|
|
562
|
-
}, Object.assign({},
|
|
563
|
+
}, Object.assign({}, options))
|
|
563
564
|
.then(result => ({
|
|
564
565
|
[ concept.concept ]:
|
|
565
566
|
{
|
|
@@ -804,14 +805,10 @@ export function ddfCsvReader (logger?: any) {
|
|
|
804
805
|
header: true,
|
|
805
806
|
skipEmptyLines: true,
|
|
806
807
|
dynamicTyping: (headerName) => {
|
|
807
|
-
// parsing
|
|
808
|
-
//
|
|
809
|
-
// can't do dynamic typing without concept types loaded.
|
|
810
|
-
// concept properties are not parsed in first concept query
|
|
811
|
-
// reparsing of concepts resource is done in conceptLookup building
|
|
808
|
+
// skip parsing time/string concept types
|
|
812
809
|
const concept: any = options.conceptsLookup.get(headerName) || {};
|
|
813
810
|
|
|
814
|
-
return includes([ '
|
|
811
|
+
return !includes([ 'time', 'string' ], concept.concept_type);
|
|
815
812
|
},
|
|
816
813
|
complete: result => {
|
|
817
814
|
debug(`finish reading "${filePath}"`);
|
|
@@ -836,6 +833,14 @@ export function ddfCsvReader (logger?: any) {
|
|
|
836
833
|
resource.schema.primaryKey = [ resource.schema.primaryKey ];
|
|
837
834
|
}
|
|
838
835
|
|
|
836
|
+
const constraints = resource.schema.fields.reduce((result, field) => {
|
|
837
|
+
if (field.constraints?.enum) {
|
|
838
|
+
result[field.name] = field.constraints.enum;
|
|
839
|
+
}
|
|
840
|
+
return result;
|
|
841
|
+
}, {});
|
|
842
|
+
resource.constraints = constraints;
|
|
843
|
+
|
|
839
844
|
resource.translations = {};
|
|
840
845
|
resourcesLookup.set(resource.name, resource);
|
|
841
846
|
});
|
|
@@ -867,6 +872,7 @@ export function ddfCsvReader (logger?: any) {
|
|
|
867
872
|
}
|
|
868
873
|
|
|
869
874
|
return {
|
|
870
|
-
query
|
|
875
|
+
query,
|
|
876
|
+
loadFile
|
|
871
877
|
};
|
|
872
878
|
}
|
package/src/interfaces.ts
CHANGED
|
@@ -19,6 +19,7 @@ const JOIN_KEYWORD = 'join';
|
|
|
19
19
|
const KEY_IN = '$in';
|
|
20
20
|
const KEY_NIN = '$nin';
|
|
21
21
|
const KEY_AND = '$and';
|
|
22
|
+
const KEY_OR = '$or';
|
|
22
23
|
|
|
23
24
|
const getFirstConditionClause = clause => head(values(clause));
|
|
24
25
|
const getFirstKey = obj => head(keys(obj));
|
|
@@ -32,7 +33,7 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
32
33
|
private datapackage: IDatapackage;
|
|
33
34
|
private conceptsLookup;
|
|
34
35
|
|
|
35
|
-
constructor(queryParam, private options: IBaseReaderOptions) {
|
|
36
|
+
constructor(private parent, queryParam, private options: IBaseReaderOptions) {
|
|
36
37
|
this.fileReader = options.fileReader;
|
|
37
38
|
this.datasetPath = options.basePath;
|
|
38
39
|
this.query = queryParam;
|
|
@@ -45,8 +46,9 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
45
46
|
|
|
46
47
|
const relatedFeatures = compact(featureDetectors.map(detector => detector(this.query, this.conceptsLookup)));
|
|
47
48
|
|
|
48
|
-
return
|
|
49
|
-
|
|
49
|
+
return this.query.from === "datapoints";
|
|
50
|
+
// return includes(relatedFeatures, QueryFeature.WhereClauseBasedOnConjunction) &&
|
|
51
|
+
// includes(relatedFeatures, QueryFeature.ConjunctionPartFromWhereClauseCorrespondsToJoin);
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
async getRecommendedFilesSet(): Promise<string[]> {
|
|
@@ -57,7 +59,6 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
57
59
|
|
|
58
60
|
let result;
|
|
59
61
|
try {
|
|
60
|
-
this.fillResourceToFileHash();
|
|
61
62
|
this.collectProcessableClauses();
|
|
62
63
|
this.collectEntityFilesNames();
|
|
63
64
|
const data = await this.collectEntities();
|
|
@@ -79,16 +80,6 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
|
|
82
|
-
private fillResourceToFileHash(): InClauseUnderConjunction {
|
|
83
|
-
this.flow.resourceToFile = get(this.datapackage, 'resources', []).reduce((hash, resource) => {
|
|
84
|
-
hash.set(resource.name, resource.path);
|
|
85
|
-
|
|
86
|
-
return hash;
|
|
87
|
-
}, new Map());
|
|
88
|
-
|
|
89
|
-
return this;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
83
|
private collectProcessableClauses(): InClauseUnderConjunction {
|
|
93
84
|
const joinKeys = keys(this.flow.joinObject);
|
|
94
85
|
|
|
@@ -99,6 +90,8 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
99
90
|
|
|
100
91
|
if (this.singleAndField(where)) {
|
|
101
92
|
this.flow.processableClauses.push(...flattenDeep(where[KEY_AND].map(el => this.getProcessableClauses(el))));
|
|
93
|
+
} else if (this.singleOrField(where)) {
|
|
94
|
+
this.flow.processableClauses.push(...flattenDeep(where[KEY_OR].map(el => this.getProcessableClauses(el))));
|
|
102
95
|
} else {
|
|
103
96
|
this.flow.processableClauses.push(...this.getProcessableClauses(where));
|
|
104
97
|
}
|
|
@@ -108,7 +101,8 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
108
101
|
}
|
|
109
102
|
|
|
110
103
|
private collectEntityFilesNames(): InClauseUnderConjunction {
|
|
111
|
-
this.flow.entityFilesNames =
|
|
104
|
+
this.flow.entityFilesNames = new Set();
|
|
105
|
+
this.flow.entityResources = new Set();
|
|
112
106
|
this.flow.fileNameToPrimaryKeyHash = new Map();
|
|
113
107
|
|
|
114
108
|
for (const schemaResourceRecord of this.datapackage.ddfSchema.entities) {
|
|
@@ -117,10 +111,11 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
117
111
|
|
|
118
112
|
if (head(schemaResourceRecord.primaryKey) === primaryKey) {
|
|
119
113
|
for (const resourceName of schemaResourceRecord.resources) {
|
|
120
|
-
const
|
|
114
|
+
const resource = this.options.resourcesLookup.get(resourceName);
|
|
121
115
|
|
|
122
|
-
this.flow.
|
|
123
|
-
this.flow.
|
|
116
|
+
this.flow.entityResources.add(resource);
|
|
117
|
+
this.flow.entityFilesNames.add(resource.path);
|
|
118
|
+
this.flow.fileNameToPrimaryKeyHash.set(resource.path, primaryKey);
|
|
124
119
|
}
|
|
125
120
|
}
|
|
126
121
|
}
|
|
@@ -131,27 +126,17 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
131
126
|
|
|
132
127
|
private collectEntities(): Promise<any> {
|
|
133
128
|
const self = this;
|
|
134
|
-
const actions = self.flow.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
Papa.parse(text, {
|
|
141
|
-
header: true,
|
|
142
|
-
skipEmptyLines: true,
|
|
143
|
-
complete: result => actResolve({file, result}),
|
|
144
|
-
error: error => actReject(error)
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
}));
|
|
129
|
+
const actions = [...self.flow.entityResources].map(resource => {
|
|
130
|
+
return (resource.data || (resource.data = self.parent.loadFile(resource.path, self.options)))
|
|
131
|
+
.then(data => ({result: data, file: resource.path}));
|
|
132
|
+
});
|
|
148
133
|
|
|
149
134
|
return Promise.all(actions);
|
|
150
135
|
}
|
|
151
136
|
|
|
152
137
|
private fillEntityValuesHash(entitiesData): InClauseUnderConjunction {
|
|
153
138
|
const getSubdomainsFromRecord = record => compact(keys(record)
|
|
154
|
-
.filter(key => startsWith(key, 'is--') && (record[key] ===
|
|
139
|
+
.filter(key => startsWith(key, 'is--') && (record[key] === true))
|
|
155
140
|
.map(key => key.replace(/^is--/, '')));
|
|
156
141
|
|
|
157
142
|
this.flow.entityValueToFileHash = new Map();
|
|
@@ -160,13 +145,14 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
160
145
|
for (const entityFileDescriptor of entitiesData) {
|
|
161
146
|
for (const entityRecord of entityFileDescriptor.result.data) {
|
|
162
147
|
const primaryKeyForThisFile = this.flow.fileNameToPrimaryKeyHash.get(entityFileDescriptor.file);
|
|
163
|
-
const primaryKeyCellValue = entityRecord[primaryKeyForThisFile];
|
|
164
148
|
const domainsForCurrentRecord = [...getSubdomainsFromRecord(entityRecord)];
|
|
165
149
|
|
|
166
150
|
if (isEmpty(domainsForCurrentRecord)) {
|
|
167
151
|
domainsForCurrentRecord.push(primaryKeyForThisFile);
|
|
168
152
|
}
|
|
169
153
|
|
|
154
|
+
const primaryKeyCellValue = entityRecord[primaryKeyForThisFile] || entityRecord[domainsForCurrentRecord[0]];
|
|
155
|
+
|
|
170
156
|
this.flow.entityValueToDomainHash.set(primaryKeyCellValue, domainsForCurrentRecord);
|
|
171
157
|
this.flow.entityValueToFileHash.set(primaryKeyCellValue, entityFileDescriptor.file);
|
|
172
158
|
}
|
|
@@ -191,7 +177,7 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
191
177
|
|
|
192
178
|
for (const clause of this.flow.processableClauses) {
|
|
193
179
|
const filesGroupByClause = {
|
|
194
|
-
entities:
|
|
180
|
+
entities: this.flow.entityFilesNames,
|
|
195
181
|
datapoints: new Set(),
|
|
196
182
|
concepts: new Set()
|
|
197
183
|
};
|
|
@@ -199,7 +185,7 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
199
185
|
const entityValuesFromClause = firstConditionClause[KEY_IN] || getEntitiesExcept(firstConditionClause[KEY_NIN]);
|
|
200
186
|
|
|
201
187
|
for (const entityValueFromClause of entityValuesFromClause) {
|
|
202
|
-
filesGroupByClause.entities.add(this.flow.entityValueToFileHash.get(entityValueFromClause));
|
|
188
|
+
//filesGroupByClause.entities.add(this.flow.entityValueToFileHash.get(entityValueFromClause));
|
|
203
189
|
|
|
204
190
|
const entitiesByQuery = this.flow.entityValueToDomainHash.get(entityValueFromClause);
|
|
205
191
|
|
|
@@ -207,7 +193,16 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
207
193
|
for (const schemaResourceRecord of this.datapackage.ddfSchema.datapoints) {
|
|
208
194
|
for (const resourceName of schemaResourceRecord.resources) {
|
|
209
195
|
if (includes(schemaResourceRecord.primaryKey, entityByQuery)) {
|
|
210
|
-
|
|
196
|
+
const resource = this.options.resourcesLookup.get(resourceName);
|
|
197
|
+
const constraint = resource.constraints[entityByQuery];
|
|
198
|
+
if ( constraint ) {
|
|
199
|
+
if (constraint.includes(entityValueFromClause)) {
|
|
200
|
+
filesGroupByClause.datapoints.add(resource.path);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
filesGroupByClause.datapoints.add(resource.path);
|
|
205
|
+
}
|
|
211
206
|
}
|
|
212
207
|
}
|
|
213
208
|
}
|
|
@@ -216,7 +211,7 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
216
211
|
|
|
217
212
|
for (const schemaResourceRecord of this.datapackage.ddfSchema.concepts) {
|
|
218
213
|
for (const resourceName of schemaResourceRecord.resources) {
|
|
219
|
-
filesGroupByClause.concepts.add(this.
|
|
214
|
+
filesGroupByClause.concepts.add(this.options.resourcesLookup.get(resourceName).path);
|
|
220
215
|
}
|
|
221
216
|
}
|
|
222
217
|
|
|
@@ -280,4 +275,8 @@ export class InClauseUnderConjunction implements IResourceSelectionOptimizer {
|
|
|
280
275
|
private singleAndField(clause): boolean {
|
|
281
276
|
return isOneKeyBased(clause) && !!get(clause, KEY_AND);
|
|
282
277
|
}
|
|
278
|
+
|
|
279
|
+
private singleOrField(clause): boolean {
|
|
280
|
+
return isOneKeyBased(clause) && !!get(clause, KEY_OR);
|
|
281
|
+
}
|
|
283
282
|
}
|
|
@@ -2,9 +2,9 @@ import { InClauseUnderConjunction } from './in-clause-under-conjunction';
|
|
|
2
2
|
import * as head from 'lodash.head';
|
|
3
3
|
import { IBaseReaderOptions, IResourceSelectionOptimizer } from '../interfaces';
|
|
4
4
|
|
|
5
|
-
export function getAppropriatePlugin(queryParam, options: IBaseReaderOptions): IResourceSelectionOptimizer {
|
|
5
|
+
export function getAppropriatePlugin(parent, queryParam, options: IBaseReaderOptions): IResourceSelectionOptimizer {
|
|
6
6
|
const plugins = [
|
|
7
|
-
new InClauseUnderConjunction(queryParam, options)
|
|
7
|
+
new InClauseUnderConjunction(parent, queryParam, options)
|
|
8
8
|
];
|
|
9
9
|
|
|
10
10
|
return head(plugins.filter(plugin => plugin.isMatched()));
|
package/tsconfig-web.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"declaration": true,
|
|
4
|
-
"target": "
|
|
4
|
+
"target": "es2019",
|
|
5
5
|
"module": "commonjs",
|
|
6
6
|
"noImplicitAny": false,
|
|
7
7
|
"outDir": "./lib-web/src",
|
|
@@ -18,8 +18,11 @@
|
|
|
18
18
|
"importHelpers": true,
|
|
19
19
|
"strictNullChecks": false,
|
|
20
20
|
"baseUrl": ".",
|
|
21
|
+
"paths": {
|
|
22
|
+
"tslib" : ["node_modules/tslib/tslib.d.ts"]
|
|
23
|
+
},
|
|
21
24
|
"lib": [
|
|
22
|
-
"
|
|
25
|
+
"es2020",
|
|
23
26
|
"dom"
|
|
24
27
|
],
|
|
25
28
|
"downlevelIteration": true
|