@cubejs-backend/schema-compiler 1.6.60 → 1.6.62
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/dist/src/adapter/BaseQuery.d.ts.map +1 -1
- package/dist/src/adapter/BaseQuery.js +2 -0
- package/dist/src/adapter/BaseQuery.js.map +1 -1
- package/dist/src/adapter/SnowflakeQuery.d.ts.map +1 -1
- package/dist/src/adapter/SnowflakeQuery.js +6 -0
- package/dist/src/adapter/SnowflakeQuery.js.map +1 -1
- package/dist/src/compiler/CubeValidator.d.ts +1 -0
- package/dist/src/compiler/CubeValidator.d.ts.map +1 -1
- package/dist/src/compiler/CubeValidator.js +53 -0
- package/dist/src/compiler/CubeValidator.js.map +1 -1
- package/dist/src/compiler/PrepareCompiler.js +1 -1
- package/dist/src/compiler/PrepareCompiler.js.map +1 -1
- package/dist/src/compiler/ViewGroupEvaluator.d.ts +56 -1
- package/dist/src/compiler/ViewGroupEvaluator.d.ts.map +1 -1
- package/dist/src/compiler/ViewGroupEvaluator.js +175 -43
- package/dist/src/compiler/ViewGroupEvaluator.js.map +1 -1
- package/dist/src/compiler/YamlCompiler.d.ts +8 -0
- package/dist/src/compiler/YamlCompiler.d.ts.map +1 -1
- package/dist/src/compiler/YamlCompiler.js +30 -3
- package/dist/src/compiler/YamlCompiler.js.map +1 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.d.ts +8 -0
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.d.ts.map +1 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.js +60 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.js.map +1 -1
- package/package.json +7 -7
|
@@ -3,28 +3,53 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ViewGroupEvaluator = void 0;
|
|
4
4
|
class ViewGroupEvaluator {
|
|
5
5
|
cubeEvaluator;
|
|
6
|
+
cubeValidator;
|
|
6
7
|
viewGroupDefinitions;
|
|
7
8
|
resolvedViewGroups;
|
|
8
9
|
viewToGroups;
|
|
9
|
-
constructor(cubeEvaluator) {
|
|
10
|
+
constructor(cubeEvaluator, cubeValidator) {
|
|
10
11
|
this.cubeEvaluator = cubeEvaluator;
|
|
12
|
+
this.cubeValidator = cubeValidator;
|
|
11
13
|
this.viewGroupDefinitions = new Map();
|
|
12
14
|
this.resolvedViewGroups = [];
|
|
13
15
|
this.viewToGroups = new Map();
|
|
14
16
|
}
|
|
15
17
|
compile(viewGroups, errorReporter) {
|
|
16
18
|
this.viewGroupDefinitions = new Map();
|
|
19
|
+
// Group names must be globally unique across the entire hierarchy — a
|
|
20
|
+
// nested group cannot reuse the name of another nested group (in any tree)
|
|
21
|
+
// or of any top-level group. Seed the set with all top-level names up front
|
|
22
|
+
// and thread it through the recursion so collisions are caught regardless
|
|
23
|
+
// of where in the hierarchy they occur.
|
|
24
|
+
const seenNames = new Set(viewGroups.map(g => g.name));
|
|
17
25
|
for (const viewGroup of viewGroups) {
|
|
26
|
+
if (errorReporter) {
|
|
27
|
+
this.cubeValidator.validateViewGroup(viewGroup, errorReporter);
|
|
28
|
+
}
|
|
18
29
|
if (errorReporter && this.viewGroupDefinitions.has(viewGroup.name)) {
|
|
19
30
|
errorReporter.error(`View group "${viewGroup.name}" already exists!`);
|
|
20
31
|
}
|
|
21
32
|
else {
|
|
22
|
-
this.viewGroupDefinitions.set(viewGroup.name, this.compileViewGroup(viewGroup));
|
|
33
|
+
this.viewGroupDefinitions.set(viewGroup.name, this.compileViewGroup(viewGroup, seenNames, errorReporter));
|
|
23
34
|
}
|
|
24
35
|
}
|
|
25
36
|
this.resolve(errorReporter);
|
|
26
37
|
}
|
|
27
|
-
compileViewGroup(viewGroup) {
|
|
38
|
+
compileViewGroup(viewGroup, seenNames, errorReporter) {
|
|
39
|
+
// `views` and `includes` are mutually exclusive on a view group definition;
|
|
40
|
+
// this is enforced by the Joi `viewGroupSchema` (oxor). `includes` is the
|
|
41
|
+
// preferred form, so it takes precedence here if both somehow slip through.
|
|
42
|
+
if (viewGroup.includes !== undefined) {
|
|
43
|
+
const { views, includes } = this.compileIncludes(viewGroup.includes, seenNames, errorReporter);
|
|
44
|
+
return {
|
|
45
|
+
name: viewGroup.name,
|
|
46
|
+
title: viewGroup.title,
|
|
47
|
+
description: viewGroup.description,
|
|
48
|
+
views,
|
|
49
|
+
includes,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Legacy `views` parameter.
|
|
28
53
|
let views = [];
|
|
29
54
|
if (viewGroup.views) {
|
|
30
55
|
if (typeof viewGroup.views === 'function') {
|
|
@@ -40,57 +65,89 @@ class ViewGroupEvaluator {
|
|
|
40
65
|
title: viewGroup.title,
|
|
41
66
|
description: viewGroup.description,
|
|
42
67
|
views,
|
|
68
|
+
includes: views.slice(),
|
|
43
69
|
};
|
|
44
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Recursively compiles a view group's `includes` into the group's own direct
|
|
73
|
+
* view references plus a recursive `includes` representation (strings for
|
|
74
|
+
* views, nested CompiledViewGroup objects for nested groups).
|
|
75
|
+
*/
|
|
76
|
+
compileIncludes(rawIncludes, seenNames, errorReporter) {
|
|
77
|
+
let items = [];
|
|
78
|
+
if (typeof rawIncludes === 'function') {
|
|
79
|
+
const evaluated = rawIncludes();
|
|
80
|
+
items = Array.isArray(evaluated) ? evaluated : [evaluated];
|
|
81
|
+
}
|
|
82
|
+
else if (Array.isArray(rawIncludes)) {
|
|
83
|
+
items = rawIncludes;
|
|
84
|
+
}
|
|
85
|
+
const views = [];
|
|
86
|
+
const includes = [];
|
|
87
|
+
for (const item of items) {
|
|
88
|
+
if (this.isNestedGroup(item)) {
|
|
89
|
+
if (errorReporter && seenNames.has(item.name)) {
|
|
90
|
+
errorReporter.error(`View group "${item.name}" already exists!`);
|
|
91
|
+
// eslint-disable-next-line no-continue
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
seenNames.add(item.name);
|
|
95
|
+
const child = this.compileIncludes(item.includes, seenNames, errorReporter);
|
|
96
|
+
includes.push({
|
|
97
|
+
name: item.name,
|
|
98
|
+
title: item.title,
|
|
99
|
+
description: item.description,
|
|
100
|
+
views: child.views,
|
|
101
|
+
includes: child.includes,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// A view reference: either a plain string or a transpiled
|
|
106
|
+
// single-reference arrow function.
|
|
107
|
+
for (const name of this.resolveViewReference(item)) {
|
|
108
|
+
views.push(name);
|
|
109
|
+
includes.push(name);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return { views, includes };
|
|
114
|
+
}
|
|
115
|
+
isNestedGroup(item) {
|
|
116
|
+
return typeof item === 'object' && item !== null && typeof item.name === 'string' && 'includes' in item;
|
|
117
|
+
}
|
|
118
|
+
resolveViewReference(item) {
|
|
119
|
+
if (typeof item === 'function') {
|
|
120
|
+
const evaluated = this.cubeEvaluator.evaluateReferences(null, item, { originalSorting: true });
|
|
121
|
+
return Array.isArray(evaluated) ? evaluated : [evaluated];
|
|
122
|
+
}
|
|
123
|
+
if (typeof item === 'string') {
|
|
124
|
+
return [item];
|
|
125
|
+
}
|
|
126
|
+
return [];
|
|
127
|
+
}
|
|
45
128
|
resolve(errorReporter) {
|
|
46
|
-
const viewGroupMap = new Map();
|
|
47
129
|
const validViewNames = new Set();
|
|
48
130
|
for (const cube of this.cubeEvaluator.cubeList) {
|
|
49
131
|
if (cube.isView) {
|
|
50
132
|
validViewNames.add(cube.name);
|
|
51
133
|
}
|
|
52
134
|
}
|
|
135
|
+
const viewGroupMap = new Map();
|
|
53
136
|
for (const [name, def] of this.viewGroupDefinitions) {
|
|
54
|
-
viewGroupMap.set(name,
|
|
55
|
-
name: def.name,
|
|
56
|
-
title: def.title,
|
|
57
|
-
description: def.description,
|
|
58
|
-
views: def.views.filter(v => validViewNames.has(v)),
|
|
59
|
-
});
|
|
137
|
+
viewGroupMap.set(name, this.resolveGroup(def, validViewNames, errorReporter));
|
|
60
138
|
}
|
|
139
|
+
// Auto-attach views that reference a group via their own `viewGroup` /
|
|
140
|
+
// `viewGroups` properties. Note: `viewGroupMap` holds top-level groups only,
|
|
141
|
+
// so a cube referencing a *nested* group name resolves to "not defined".
|
|
142
|
+
// This is intentional and left unsupported — attaching cubes to groups via
|
|
143
|
+
// these cube-level properties is a discouraged pattern; nested membership
|
|
144
|
+
// should be authored through the group's own `includes`.
|
|
61
145
|
for (const cube of this.cubeEvaluator.cubeList) {
|
|
62
146
|
if (!cube.isView) {
|
|
63
147
|
// eslint-disable-next-line no-continue
|
|
64
148
|
continue;
|
|
65
149
|
}
|
|
66
|
-
const
|
|
67
|
-
if (cube.viewGroup) {
|
|
68
|
-
const resolved = typeof cube.viewGroup === 'function'
|
|
69
|
-
? this.cubeEvaluator.evaluateReferences(null, cube.viewGroup)
|
|
70
|
-
: cube.viewGroup;
|
|
71
|
-
const names = Array.isArray(resolved) ? resolved : [resolved];
|
|
72
|
-
for (const n of names) {
|
|
73
|
-
if (!groupNames.includes(n)) {
|
|
74
|
-
groupNames.push(n);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (cube.viewGroups) {
|
|
79
|
-
let resolved;
|
|
80
|
-
if (typeof cube.viewGroups === 'function') {
|
|
81
|
-
const evaluated = this.cubeEvaluator.evaluateReferences(null, cube.viewGroups, { originalSorting: true });
|
|
82
|
-
resolved = Array.isArray(evaluated) ? evaluated : [evaluated];
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
resolved = cube.viewGroups;
|
|
86
|
-
}
|
|
87
|
-
for (const n of resolved) {
|
|
88
|
-
if (!groupNames.includes(n)) {
|
|
89
|
-
groupNames.push(n);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
for (const groupName of groupNames) {
|
|
150
|
+
for (const groupName of this.viewGroupNamesForCube(cube)) {
|
|
94
151
|
const group = viewGroupMap.get(groupName);
|
|
95
152
|
if (!group) {
|
|
96
153
|
if (errorReporter) {
|
|
@@ -99,21 +156,96 @@ class ViewGroupEvaluator {
|
|
|
99
156
|
}
|
|
100
157
|
else if (!group.views.includes(cube.name)) {
|
|
101
158
|
group.views.push(cube.name);
|
|
159
|
+
group.includes.push(cube.name);
|
|
102
160
|
}
|
|
103
161
|
}
|
|
104
162
|
}
|
|
105
163
|
this.resolvedViewGroups = Array.from(viewGroupMap.values());
|
|
164
|
+
// Map each view to the most-specific group(s) it directly belongs to.
|
|
106
165
|
this.viewToGroups = new Map();
|
|
107
166
|
for (const group of this.resolvedViewGroups) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
167
|
+
this.collectViewToGroups(group);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Validates a compiled group's view references against the set of real view
|
|
172
|
+
* names and returns a filtered copy. References to views that do not exist
|
|
173
|
+
* produce a compile error.
|
|
174
|
+
*/
|
|
175
|
+
resolveGroup(group, validViewNames, errorReporter) {
|
|
176
|
+
const views = [];
|
|
177
|
+
const includes = [];
|
|
178
|
+
for (const include of group.includes) {
|
|
179
|
+
if (typeof include !== 'string') {
|
|
180
|
+
includes.push(this.resolveGroup(include, validViewNames, errorReporter));
|
|
181
|
+
}
|
|
182
|
+
else if (validViewNames.has(include)) {
|
|
183
|
+
views.push(include);
|
|
184
|
+
includes.push(include);
|
|
185
|
+
}
|
|
186
|
+
else if (errorReporter) {
|
|
187
|
+
errorReporter.error(`View group "${group.name}" includes "${include}" which is not a defined view.`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
name: group.name,
|
|
192
|
+
title: group.title,
|
|
193
|
+
description: group.description,
|
|
194
|
+
views,
|
|
195
|
+
includes,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
viewGroupNamesForCube(cube) {
|
|
199
|
+
const groupNames = [];
|
|
200
|
+
if (cube.viewGroup) {
|
|
201
|
+
const resolved = typeof cube.viewGroup === 'function'
|
|
202
|
+
? this.cubeEvaluator.evaluateReferences(null, cube.viewGroup)
|
|
203
|
+
: cube.viewGroup;
|
|
204
|
+
const names = Array.isArray(resolved) ? resolved : [resolved];
|
|
205
|
+
for (const n of names) {
|
|
206
|
+
if (!groupNames.includes(n)) {
|
|
207
|
+
groupNames.push(n);
|
|
113
208
|
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (cube.viewGroups) {
|
|
212
|
+
let resolved;
|
|
213
|
+
if (typeof cube.viewGroups === 'function') {
|
|
214
|
+
const evaluated = this.cubeEvaluator.evaluateReferences(null, cube.viewGroups, { originalSorting: true });
|
|
215
|
+
resolved = Array.isArray(evaluated) ? evaluated : [evaluated];
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
resolved = cube.viewGroups;
|
|
219
|
+
}
|
|
220
|
+
for (const n of resolved) {
|
|
221
|
+
if (!groupNames.includes(n)) {
|
|
222
|
+
groupNames.push(n);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return groupNames;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Recursively maps each view to the most-specific group it directly belongs
|
|
230
|
+
* to. A view that is a direct member of a nested group maps to that nested
|
|
231
|
+
* group's name, not the ancestor chain.
|
|
232
|
+
*/
|
|
233
|
+
collectViewToGroups(group) {
|
|
234
|
+
for (const viewName of group.views) {
|
|
235
|
+
let groups = this.viewToGroups.get(viewName);
|
|
236
|
+
if (!groups) {
|
|
237
|
+
groups = [];
|
|
238
|
+
this.viewToGroups.set(viewName, groups);
|
|
239
|
+
}
|
|
240
|
+
if (!groups.includes(group.name)) {
|
|
114
241
|
groups.push(group.name);
|
|
115
242
|
}
|
|
116
243
|
}
|
|
244
|
+
for (const include of group.includes) {
|
|
245
|
+
if (typeof include !== 'string') {
|
|
246
|
+
this.collectViewToGroups(include);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
117
249
|
}
|
|
118
250
|
get viewGroupList() {
|
|
119
251
|
return Array.from(this.viewGroupDefinitions.keys());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewGroupEvaluator.js","sourceRoot":"","sources":["../../../src/compiler/ViewGroupEvaluator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ViewGroupEvaluator.js","sourceRoot":"","sources":["../../../src/compiler/ViewGroupEvaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,14 @@ export declare class YamlCompiler {
|
|
|
17
17
|
compileYamlWithJinjaFile(file: FileContent, errorsReport: ErrorReporter, compileContext: CompileContext, pythonContext: PythonCtx): Promise<FileContent | undefined>;
|
|
18
18
|
transpileYamlFile(file: FileContent, errorsReport: ErrorReporter): FileContent | undefined;
|
|
19
19
|
private transpileViewGroup;
|
|
20
|
+
/**
|
|
21
|
+
* Builds the AST for a (possibly nested) view group definition body. View
|
|
22
|
+
* references inside `includes` are emitted as plain string literals and
|
|
23
|
+
* nested view groups as object literals, so no reference resolution is needed
|
|
24
|
+
* at evaluation time (YAML uses string view names, not bare identifiers).
|
|
25
|
+
*/
|
|
26
|
+
private viewGroupBodyAst;
|
|
27
|
+
private viewGroupIncludeAst;
|
|
20
28
|
private transpileAndPrepareJsFile;
|
|
21
29
|
private transformYamlCubeObj;
|
|
22
30
|
private transpileYaml;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YamlCompiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/YamlCompiler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAIL,sBAAsB,EAAE,wBAAwB,EACjD,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAQ;gBAG9B,WAAW,EAAE,wBAAwB,EACrC,cAAc,EAAE,sBAAsB,EACtC,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,wBAAwB;IAIlD,IAAI;IAIJ,cAAc,IAAI,WAAW;IAQ7B,qBAAqB,CAAC,GAAG,EAAE,SAAS;IAQ9B,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAUjH,wBAAwB,CACnC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,aAAa,EAC3B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAM5B,iBAAiB,CACtB,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,aAAa,GAC1B,WAAW,GAAG,SAAS;IA8C1B,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"YamlCompiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/YamlCompiler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAIL,sBAAsB,EAAE,wBAAwB,EACjD,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAQ;gBAG9B,WAAW,EAAE,wBAAwB,EACrC,cAAc,EAAE,sBAAsB,EACtC,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,wBAAwB;IAIlD,IAAI;IAIJ,cAAc,IAAI,WAAW;IAQ7B,qBAAqB,CAAC,GAAG,EAAE,SAAS;IAQ9B,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAUjH,wBAAwB,CACnC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,aAAa,EAC3B,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAM5B,iBAAiB,CACtB,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,aAAa,GAC1B,WAAW,GAAG,SAAS;IA8C1B,OAAO,CAAC,kBAAkB;IAS1B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,aAAa;IAuFrB,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,4BAA4B;IAKpC,OAAO,CAAC,2BAA2B;IAenC,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IA6DtB,OAAO,CAAC,0BAA0B;CAQnC"}
|
|
@@ -120,18 +120,45 @@ class YamlCompiler {
|
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
122
|
transpileViewGroup(viewGroupObj) {
|
|
123
|
+
const viewGroupCall = t.callExpression(t.identifier('view_group'), [t.stringLiteral(viewGroupObj.name), this.viewGroupBodyAst(viewGroupObj)]);
|
|
124
|
+
return (0, generator_1.default)(viewGroupCall, {}, '').code;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Builds the AST for a (possibly nested) view group definition body. View
|
|
128
|
+
* references inside `includes` are emitted as plain string literals and
|
|
129
|
+
* nested view groups as object literals, so no reference resolution is needed
|
|
130
|
+
* at evaluation time (YAML uses string view names, not bare identifiers).
|
|
131
|
+
*/
|
|
132
|
+
viewGroupBodyAst(viewGroupObj, nested = false) {
|
|
123
133
|
const properties = [];
|
|
134
|
+
if (nested && viewGroupObj.name) {
|
|
135
|
+
properties.push(t.objectProperty(t.stringLiteral('name'), t.stringLiteral(viewGroupObj.name)));
|
|
136
|
+
}
|
|
124
137
|
if (viewGroupObj.title) {
|
|
125
138
|
properties.push(t.objectProperty(t.stringLiteral('title'), t.stringLiteral(viewGroupObj.title)));
|
|
126
139
|
}
|
|
127
140
|
if (viewGroupObj.description) {
|
|
128
141
|
properties.push(t.objectProperty(t.stringLiteral('description'), t.stringLiteral(viewGroupObj.description)));
|
|
129
142
|
}
|
|
130
|
-
|
|
143
|
+
// Emit `views` and `includes` independently (not else-if) so that a YAML
|
|
144
|
+
// definition that wrongly specifies both still reaches the `viewGroupSchema`
|
|
145
|
+
// mutual-exclusion (oxor) validation instead of being silently coerced.
|
|
146
|
+
if (Array.isArray(viewGroupObj.includes)) {
|
|
147
|
+
properties.push(t.objectProperty(t.stringLiteral('includes'), t.arrayExpression(viewGroupObj.includes.map((item) => this.viewGroupIncludeAst(item)))));
|
|
148
|
+
}
|
|
149
|
+
if (Array.isArray(viewGroupObj.views)) {
|
|
150
|
+
// Legacy `views` parameter, kept for backward compatibility.
|
|
131
151
|
properties.push(t.objectProperty(t.stringLiteral('views'), t.arrayExpression(viewGroupObj.views.map((v) => t.stringLiteral(v)))));
|
|
132
152
|
}
|
|
133
|
-
|
|
134
|
-
|
|
153
|
+
return t.objectExpression(properties);
|
|
154
|
+
}
|
|
155
|
+
viewGroupIncludeAst(item) {
|
|
156
|
+
if (item && typeof item === 'object') {
|
|
157
|
+
// A nested view group definition: keep its `name` inside the body so the
|
|
158
|
+
// evaluator can recognise it as a nested group.
|
|
159
|
+
return this.viewGroupBodyAst(item, true);
|
|
160
|
+
}
|
|
161
|
+
return t.stringLiteral(item);
|
|
135
162
|
}
|
|
136
163
|
transpileAndPrepareJsFile(methodFn, cubeObj, errorsReport) {
|
|
137
164
|
const yamlAst = this.transformYamlCubeObj(cubeObj, errorsReport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YamlCompiler.js","sourceRoot":"","sources":["../../../src/compiler/YamlCompiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YamlCompiler.js","sourceRoot":"","sources":["../../../src/compiler/YamlCompiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,14 @@ export declare class CubePropContextTranspiler implements TranspilerInterface {
|
|
|
11
11
|
traverseObject(): TraverseObject;
|
|
12
12
|
protected transformObjectProperty(path: NodePath<t.ObjectProperty>, resolveSymbol: SymbolResolver): void;
|
|
13
13
|
static replaceValueWithArrowFunction(resolveSymbol: (name: string) => any, value: NodePath<any>): void;
|
|
14
|
+
/**
|
|
15
|
+
* Visitor for the `view_group(...)` definition object. The legacy `views`
|
|
16
|
+
* array is wrapped as a whole (flat references), while `includes` is wrapped
|
|
17
|
+
* per-leaf so that nested view group definitions stay structurally intact and
|
|
18
|
+
* only their view references become resolvable arrow functions. This mirrors
|
|
19
|
+
* how nested folders preserve their structure.
|
|
20
|
+
*/
|
|
21
|
+
protected viewGroupReferencesVisitor(): TraverseObject;
|
|
14
22
|
protected sqlAndReferencesFieldVisitor(cubeName: string | null | undefined): TraverseObject;
|
|
15
23
|
protected convertJoinsObjectToArray(path: NodePath<t.ObjectProperty>): void;
|
|
16
24
|
protected static fullPath(path: NodePath): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubePropContextTranspiler.d.ts","sourceRoot":"","sources":["../../../../src/compiler/transpilers/CubePropContextTranspiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAGhC,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAkClD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAqB,CAAC;AAO/D,qBAAa,yBAA0B,YAAW,mBAAmB;IAEjE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,wBAAwB;IACxD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB;IACzD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,wBAAwB;gBAFtC,WAAW,EAAE,wBAAwB,EACrC,cAAc,EAAE,sBAAsB,EACtC,YAAY,EAAE,wBAAwB;IAIpD,cAAc,IAAI,cAAc;
|
|
1
|
+
{"version":3,"file":"CubePropContextTranspiler.d.ts","sourceRoot":"","sources":["../../../../src/compiler/transpilers/CubePropContextTranspiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAGhC,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAkClD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAqB,CAAC;AAO/D,qBAAa,yBAA0B,YAAW,mBAAmB;IAEjE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,wBAAwB;IACxD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,sBAAsB;IACzD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,wBAAwB;gBAFtC,WAAW,EAAE,wBAAwB,EACrC,cAAc,EAAE,sBAAsB,EACtC,YAAY,EAAE,wBAAwB;IAIpD,cAAc,IAAI,cAAc;IA0BvC,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,cAAc;WAInF,6BAA6B,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;IAiCtG;;;;;;OAMG;IACH,SAAS,CAAC,0BAA0B,IAAI,cAAc;IAiDtD,SAAS,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc;IA+B3F,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;IAiCpE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAwBjD,SAAS,CAAC,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,cAAc,GAAG,cAAc;IAW9G,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE;IAwB7G,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC,IAAI,KAAA,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE;IAWvG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAmD;IAE3G,OAAO,CAAC,MAAM,CAAC,kBAAkB;IASjC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAIxC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAexC,SAAS,CAAC,MAAM,CAAC,qCAAqC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc;IAyBlK,SAAS,CAAC,MAAM,CAAC,2CAA2C,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc;CA2BxJ"}
|
|
@@ -94,9 +94,12 @@ class CubePropContextTranspiler {
|
|
|
94
94
|
args[args.length - 1].traverse(this.knownIdentifiersInjectVisitor('extends', name => this.cubeDictionary.resolveCube(name)));
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
else if (path.node.callee.name === 'context'
|
|
97
|
+
else if (path.node.callee.name === 'context') {
|
|
98
98
|
args[args.length - 1].traverse(this.sqlAndReferencesFieldVisitor(null));
|
|
99
99
|
}
|
|
100
|
+
else if (path.node.callee.name === 'view_group') {
|
|
101
|
+
args[args.length - 1].traverse(this.viewGroupReferencesVisitor());
|
|
102
|
+
}
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
};
|
|
@@ -118,6 +121,62 @@ class CubePropContextTranspiler {
|
|
|
118
121
|
value.node, false));
|
|
119
122
|
}
|
|
120
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Visitor for the `view_group(...)` definition object. The legacy `views`
|
|
126
|
+
* array is wrapped as a whole (flat references), while `includes` is wrapped
|
|
127
|
+
* per-leaf so that nested view group definitions stay structurally intact and
|
|
128
|
+
* only their view references become resolvable arrow functions. This mirrors
|
|
129
|
+
* how nested folders preserve their structure.
|
|
130
|
+
*/
|
|
131
|
+
viewGroupReferencesVisitor() {
|
|
132
|
+
const resolveSymbol = n => this.viewCompiler.resolveSymbol(null, n) ||
|
|
133
|
+
this.cubeSymbols.resolveSymbol(null, n) ||
|
|
134
|
+
this.cubeSymbols.isCurrentCube(n);
|
|
135
|
+
const keyName = (node) => {
|
|
136
|
+
if (node.key.type === 'Identifier')
|
|
137
|
+
return node.key.name;
|
|
138
|
+
if (node.key.type === 'StringLiteral')
|
|
139
|
+
return node.key.value;
|
|
140
|
+
return undefined;
|
|
141
|
+
};
|
|
142
|
+
const wrapIncludes = (valuePath) => {
|
|
143
|
+
if (!valuePath.isArrayExpression()) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
for (const element of valuePath.get('elements')) {
|
|
147
|
+
if (element.isObjectExpression()) {
|
|
148
|
+
// Nested view group: recurse into its own `includes` only.
|
|
149
|
+
for (const prop of element.get('properties')) {
|
|
150
|
+
if (prop.isObjectProperty() && keyName(prop.node) === 'includes') {
|
|
151
|
+
wrapIncludes(prop.get('value'));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else if (element.isIdentifier() || element.isStringLiteral()) {
|
|
156
|
+
CubePropContextTranspiler.replaceValueWithArrowFunction(resolveSymbol, element);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
return {
|
|
161
|
+
ObjectProperty: (path) => {
|
|
162
|
+
const key = keyName(path.node);
|
|
163
|
+
if (key !== 'includes' && key !== 'views') {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// Only handle the top-level definition properties here; nested
|
|
167
|
+
// `includes` arrays are reached via manual recursion above.
|
|
168
|
+
if (CubePropContextTranspiler.fullPath(path) !== key) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (key === 'views') {
|
|
172
|
+
this.transformObjectProperty(path, resolveSymbol);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
wrapIncludes(path.get('value'));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
121
180
|
sqlAndReferencesFieldVisitor(cubeName) {
|
|
122
181
|
const resolveSymbol = n => this.viewCompiler.resolveSymbol(cubeName, n) ||
|
|
123
182
|
this.cubeSymbols.resolveSymbol(cubeName, n) ||
|