@cubejs-backend/schema-compiler 1.3.66 → 1.3.68
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.js +2 -2
- package/dist/src/adapter/BaseQuery.js.map +1 -1
- package/dist/src/adapter/PreAggregations.js +6 -5
- package/dist/src/adapter/PreAggregations.js.map +1 -1
- package/dist/src/compiler/CubeSymbols.d.ts +2 -1
- package/dist/src/compiler/CubeSymbols.d.ts.map +1 -1
- package/dist/src/compiler/CubeSymbols.js.map +1 -1
- package/dist/src/compiler/DataSchemaCompiler.d.ts +13 -7
- package/dist/src/compiler/DataSchemaCompiler.d.ts.map +1 -1
- package/dist/src/compiler/DataSchemaCompiler.js +235 -91
- package/dist/src/compiler/DataSchemaCompiler.js.map +1 -1
- package/dist/src/compiler/ErrorReporter.d.ts +1 -1
- package/dist/src/compiler/ErrorReporter.d.ts.map +1 -1
- package/dist/src/compiler/ErrorReporter.js +2 -2
- package/dist/src/compiler/ErrorReporter.js.map +1 -1
- package/dist/src/compiler/PrepareCompiler.d.ts +2 -0
- package/dist/src/compiler/PrepareCompiler.d.ts.map +1 -1
- package/dist/src/compiler/PrepareCompiler.js +4 -0
- package/dist/src/compiler/PrepareCompiler.js.map +1 -1
- package/dist/src/compiler/ViewCompilationGate.js +2 -2
- package/dist/src/compiler/ViewCompilationGate.js.map +1 -1
- package/dist/src/compiler/YamlCompiler.d.ts +6 -8
- package/dist/src/compiler/YamlCompiler.d.ts.map +1 -1
- package/dist/src/compiler/YamlCompiler.js +17 -16
- package/dist/src/compiler/YamlCompiler.js.map +1 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.d.ts +1 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.d.ts.map +1 -1
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.js +26 -8
- package/dist/src/compiler/transpilers/CubePropContextTranspiler.js.map +1 -1
- package/dist/src/compiler/transpilers/transpiler_worker.js +18 -2
- package/dist/src/compiler/transpilers/transpiler_worker.js.map +1 -1
- package/package.json +6 -6
|
@@ -37,6 +37,23 @@ const getThreadsCount = () => {
|
|
|
37
37
|
}
|
|
38
38
|
return 3; // Default (like the workerpool do)
|
|
39
39
|
};
|
|
40
|
+
const splitFilesToChunks = (files, chunksCount) => {
|
|
41
|
+
let chunks;
|
|
42
|
+
if (files.length < chunksCount * chunksCount) {
|
|
43
|
+
chunks = [files];
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const baseSize = Math.floor(files.length / chunksCount);
|
|
47
|
+
chunks = [];
|
|
48
|
+
for (let i = 0; i < chunksCount; i++) {
|
|
49
|
+
// For the last part, we take the remaining files so we don't lose the extra ones.
|
|
50
|
+
const start = i * baseSize;
|
|
51
|
+
const end = (i === chunksCount - 1) ? files.length : start + baseSize;
|
|
52
|
+
chunks.push(files.slice(start, end));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return chunks;
|
|
56
|
+
};
|
|
40
57
|
class DataSchemaCompiler {
|
|
41
58
|
repository;
|
|
42
59
|
cubeCompilers;
|
|
@@ -66,6 +83,8 @@ class DataSchemaCompiler {
|
|
|
66
83
|
workerPool;
|
|
67
84
|
compilerId;
|
|
68
85
|
compiledScriptCache;
|
|
86
|
+
compiledYamlCache;
|
|
87
|
+
compiledJinjaCache;
|
|
69
88
|
compileV8ContextCache = null;
|
|
70
89
|
// FIXME: Is public only because of tests, should be private
|
|
71
90
|
compilePromise;
|
|
@@ -92,11 +111,12 @@ class DataSchemaCompiler {
|
|
|
92
111
|
this.standalone = options.standalone || false;
|
|
93
112
|
this.nativeInstance = options.nativeInstance;
|
|
94
113
|
this.yamlCompiler = options.yamlCompiler;
|
|
95
|
-
this.yamlCompiler.dataSchemaCompiler = this;
|
|
96
114
|
this.pythonContext = null;
|
|
97
115
|
this.workerPool = null;
|
|
98
116
|
this.compilerId = options.compilerId || 'default';
|
|
99
117
|
this.compiledScriptCache = options.compiledScriptCache;
|
|
118
|
+
this.compiledYamlCache = options.compiledYamlCache;
|
|
119
|
+
this.compiledJinjaCache = options.compiledJinjaCache;
|
|
100
120
|
}
|
|
101
121
|
compileObjects(compileServices, objects, errorsReport) {
|
|
102
122
|
try {
|
|
@@ -128,36 +148,89 @@ class DataSchemaCompiler {
|
|
|
128
148
|
const files = await this.repository.dataSchemaFiles();
|
|
129
149
|
this.pythonContext = await this.loadPythonContext(files, 'globals.py');
|
|
130
150
|
this.yamlCompiler.initFromPythonContext(this.pythonContext);
|
|
131
|
-
const
|
|
151
|
+
const originalJsFiles = [];
|
|
152
|
+
const jinjaTemplatedFiles = [];
|
|
153
|
+
const yamlFiles = [];
|
|
154
|
+
(this.filesToCompile?.length
|
|
155
|
+
? files.filter(f => this.filesToCompile.includes(f.fileName))
|
|
156
|
+
: files).forEach(file => {
|
|
157
|
+
if (file.fileName.endsWith('.js')) {
|
|
158
|
+
originalJsFiles.push(file);
|
|
159
|
+
}
|
|
160
|
+
else if (file.fileName.endsWith('.jinja') ||
|
|
161
|
+
(file.fileName.endsWith('.yml') || file.fileName.endsWith('.yaml')) && file.content.match(JINJA_SYNTAX)) {
|
|
162
|
+
jinjaTemplatedFiles.push(file);
|
|
163
|
+
}
|
|
164
|
+
else if (file.fileName.endsWith('.yml') || file.fileName.endsWith('.yaml')) {
|
|
165
|
+
yamlFiles.push(file);
|
|
166
|
+
}
|
|
167
|
+
// We don't transpile/compile other files (like .py and so on)
|
|
168
|
+
});
|
|
169
|
+
let toCompile = [...jinjaTemplatedFiles, ...yamlFiles, ...originalJsFiles];
|
|
170
|
+
if (jinjaTemplatedFiles.length > 0) {
|
|
171
|
+
// Preload Jinja templates to the engine
|
|
172
|
+
this.loadJinjaTemplates(jinjaTemplatedFiles);
|
|
173
|
+
}
|
|
132
174
|
const errorsReport = new ErrorReporter_1.ErrorReporter(null, [], this.errorReportOptions);
|
|
133
175
|
this.errorsReporter = errorsReport;
|
|
134
176
|
const transpilationWorkerThreads = (0, shared_1.getEnv)('transpilationWorkerThreads');
|
|
135
177
|
const transpilationNative = (0, shared_1.getEnv)('transpilationNative');
|
|
136
178
|
const transpilationNativeThreadsCount = getThreadsCount();
|
|
137
179
|
const { compilerId } = this;
|
|
138
|
-
if (
|
|
180
|
+
if (transpilationWorkerThreads) {
|
|
139
181
|
const wc = (0, shared_1.getEnv)('transpilationWorkerThreadsCount');
|
|
140
182
|
this.workerPool = workerpool_1.default.pool(path_1.default.join(__dirname, 'transpilers/transpiler_worker'), wc > 0 ? { maxWorkers: wc } : undefined);
|
|
141
183
|
}
|
|
142
|
-
const
|
|
184
|
+
const transpilePhaseFirst = async (stage) => {
|
|
143
185
|
let cubeNames = [];
|
|
144
186
|
let cubeSymbols = {};
|
|
145
187
|
let transpilerNames = [];
|
|
146
188
|
let results;
|
|
147
189
|
if (transpilationNative || transpilationWorkerThreads) {
|
|
148
|
-
cubeNames =
|
|
149
|
-
// We need only cubes and all its member names for transpiling.
|
|
150
|
-
// Cubes doesn't change during transpiling, but are changed during compilation phase,
|
|
151
|
-
// so we can prepare them once for every phase.
|
|
152
|
-
// Communication between main and worker threads uses
|
|
153
|
-
// The structured clone algorithm (@see https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm)
|
|
154
|
-
// which doesn't allow passing any function objects, so we need to sanitize the symbols.
|
|
155
|
-
// Communication with native backend also involves deserialization.
|
|
156
|
-
cubeSymbols = Object.fromEntries(Object.entries(this.cubeSymbols.symbols)
|
|
157
|
-
.map(([key, value]) => [key, Object.fromEntries(Object.keys(value).map((k) => [k, true]))]));
|
|
158
|
-
// Transpilers are the same for all files within phase.
|
|
159
|
-
transpilerNames = this.transpilers.map(t => t.constructor.name);
|
|
190
|
+
({ cubeNames, cubeSymbols, transpilerNames } = this.prepareTranspileSymbols());
|
|
160
191
|
}
|
|
192
|
+
if (transpilationNative) {
|
|
193
|
+
const jsFiles = originalJsFiles;
|
|
194
|
+
let jsFilesTasks = [];
|
|
195
|
+
let yamlFilesTasks = [];
|
|
196
|
+
if (jsFiles.length > 0) {
|
|
197
|
+
// Warming up swc compiler cache
|
|
198
|
+
const dummyFile = {
|
|
199
|
+
fileName: 'dummy.js',
|
|
200
|
+
content: ';',
|
|
201
|
+
};
|
|
202
|
+
await this.transpileJsFile(dummyFile, errorsReport, { cubeNames, cubeSymbols, transpilerNames, contextSymbols: CubeSymbols_1.CONTEXT_SYMBOLS, compilerId, stage });
|
|
203
|
+
const jsChunks = splitFilesToChunks(jsFiles, transpilationNativeThreadsCount);
|
|
204
|
+
jsFilesTasks = jsChunks.map(chunk => this.transpileJsFilesNativeBulk(chunk, errorsReport, { transpilerNames, compilerId }));
|
|
205
|
+
}
|
|
206
|
+
if (yamlFiles.length > 0) {
|
|
207
|
+
const yamlChunks = splitFilesToChunks(yamlFiles, transpilationNativeThreadsCount);
|
|
208
|
+
yamlFilesTasks = yamlChunks.map(chunk => this.transpileYamlFilesNativeBulk(chunk, errorsReport, { transpilerNames, compilerId }));
|
|
209
|
+
}
|
|
210
|
+
const jinjaFilesTasks = jinjaTemplatedFiles
|
|
211
|
+
.map(f => this.transpileJinjaFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames }));
|
|
212
|
+
results = (await Promise.all([...jsFilesTasks, ...yamlFilesTasks, ...jinjaFilesTasks])).flat();
|
|
213
|
+
}
|
|
214
|
+
else if (transpilationWorkerThreads) {
|
|
215
|
+
results = await Promise.all(toCompile.map(f => this.transpileFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames })));
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
results = await Promise.all(toCompile.map(f => this.transpileFile(f, errorsReport, {})));
|
|
219
|
+
}
|
|
220
|
+
return results.filter(f => !!f);
|
|
221
|
+
};
|
|
222
|
+
const transpilePhase = async (stage) => {
|
|
223
|
+
let cubeNames = [];
|
|
224
|
+
let cubeSymbols = {};
|
|
225
|
+
let transpilerNames = [];
|
|
226
|
+
let results;
|
|
227
|
+
if (toCompile.length === 0) {
|
|
228
|
+
return [];
|
|
229
|
+
}
|
|
230
|
+
if (transpilationNative || transpilationWorkerThreads) {
|
|
231
|
+
({ cubeNames, cubeSymbols, transpilerNames } = this.prepareTranspileSymbols());
|
|
232
|
+
}
|
|
233
|
+
// After the first phase all files are with JS source code: original or transpiled
|
|
161
234
|
if (transpilationNative) {
|
|
162
235
|
// Warming up swc compiler cache
|
|
163
236
|
const dummyFile = {
|
|
@@ -165,34 +238,15 @@ class DataSchemaCompiler {
|
|
|
165
238
|
content: ';',
|
|
166
239
|
};
|
|
167
240
|
await this.transpileJsFile(dummyFile, errorsReport, { cubeNames, cubeSymbols, transpilerNames, contextSymbols: CubeSymbols_1.CONTEXT_SYMBOLS, compilerId, stage });
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
let JsFilesTasks = [];
|
|
172
|
-
if (jsFiles.length > 0) {
|
|
173
|
-
let jsChunks;
|
|
174
|
-
if (jsFiles.length < transpilationNativeThreadsCount * transpilationNativeThreadsCount) {
|
|
175
|
-
jsChunks = [jsFiles];
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
const baseSize = Math.floor(jsFiles.length / transpilationNativeThreadsCount);
|
|
179
|
-
jsChunks = [];
|
|
180
|
-
for (let i = 0; i < transpilationNativeThreadsCount; i++) {
|
|
181
|
-
// For the last part, we take the remaining files so we don't lose the extra ones.
|
|
182
|
-
const start = i * baseSize;
|
|
183
|
-
const end = (i === transpilationNativeThreadsCount - 1) ? jsFiles.length : start + baseSize;
|
|
184
|
-
jsChunks.push(jsFiles.slice(start, end));
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
JsFilesTasks = jsChunks.map(chunk => this.transpileJsFilesBulk(chunk, errorsReport, { transpilerNames, compilerId }));
|
|
188
|
-
}
|
|
189
|
-
results = (await Promise.all([...nonJsFilesTasks, ...JsFilesTasks])).flat();
|
|
241
|
+
const jsChunks = splitFilesToChunks(toCompile, transpilationNativeThreadsCount);
|
|
242
|
+
const jsFilesTasks = jsChunks.map(chunk => this.transpileJsFilesNativeBulk(chunk, errorsReport, { transpilerNames, compilerId }));
|
|
243
|
+
results = (await Promise.all(jsFilesTasks)).flat();
|
|
190
244
|
}
|
|
191
245
|
else if (transpilationWorkerThreads) {
|
|
192
|
-
results = await Promise.all(toCompile.map(f => this.
|
|
246
|
+
results = await Promise.all(toCompile.map(f => this.transpileJsFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames })));
|
|
193
247
|
}
|
|
194
248
|
else {
|
|
195
|
-
results = await Promise.all(toCompile.map(f => this.
|
|
249
|
+
results = await Promise.all(toCompile.map(f => this.transpileJsFile(f, errorsReport, {})));
|
|
196
250
|
}
|
|
197
251
|
return results.filter(f => !!f);
|
|
198
252
|
};
|
|
@@ -202,6 +256,13 @@ class DataSchemaCompiler {
|
|
|
202
256
|
let compiledFiles = {};
|
|
203
257
|
let asyncModules = [];
|
|
204
258
|
let transpiledFiles = [];
|
|
259
|
+
const cleanup = () => {
|
|
260
|
+
cubes = [];
|
|
261
|
+
exports = {};
|
|
262
|
+
contexts = [];
|
|
263
|
+
compiledFiles = {};
|
|
264
|
+
asyncModules = [];
|
|
265
|
+
};
|
|
205
266
|
this.compileV8ContextCache = vm_1.default.createContext({
|
|
206
267
|
view: (name, cube) => {
|
|
207
268
|
const file = ctxFileStorage.getStore();
|
|
@@ -264,7 +325,7 @@ class DataSchemaCompiler {
|
|
|
264
325
|
else {
|
|
265
326
|
const foundFile = this.resolveModuleFile(file, extensionName, transpiledFiles, errorsReport);
|
|
266
327
|
if (!foundFile && this.allowNodeRequire) {
|
|
267
|
-
if (extensionName.
|
|
328
|
+
if (extensionName.startsWith('.')) {
|
|
268
329
|
extensionName = path_1.default.resolve(this.repository.localPath(), extensionName);
|
|
269
330
|
}
|
|
270
331
|
// eslint-disable-next-line global-require,import/no-dynamic-require
|
|
@@ -274,24 +335,30 @@ class DataSchemaCompiler {
|
|
|
274
335
|
}
|
|
275
336
|
return Extension;
|
|
276
337
|
}
|
|
277
|
-
this.compileFile(foundFile, errorsReport, compiledFiles,
|
|
338
|
+
this.compileFile(foundFile, errorsReport, compiledFiles, { doSyntaxCheck: true });
|
|
278
339
|
exports[foundFile.fileName] = exports[foundFile.fileName] || {};
|
|
279
340
|
return exports[foundFile.fileName];
|
|
280
341
|
}
|
|
281
342
|
},
|
|
282
343
|
COMPILE_CONTEXT: this.standalone ? this.standaloneCompileContextProxy() : this.cloneCompileContextWithGetterAlias(this.compileContext || {}),
|
|
283
344
|
});
|
|
345
|
+
const compilePhaseFirst = async (compilers, stage) => {
|
|
346
|
+
// clear the objects for the next phase
|
|
347
|
+
cleanup();
|
|
348
|
+
transpiledFiles = await transpilePhaseFirst(stage);
|
|
349
|
+
// We render jinja and transpile yaml only once on first phase and then use resulting JS for these files
|
|
350
|
+
// afterward avoiding costly YAML/Python parsing again. Original JS files are preserved as is for cache hits.
|
|
351
|
+
const convertedToJsFiles = transpiledFiles.filter(f => !f.fileName.endsWith('.js'));
|
|
352
|
+
toCompile = [...originalJsFiles, ...convertedToJsFiles];
|
|
353
|
+
return this.compileCubeFiles(cubes, contexts, compiledFiles, asyncModules, compilers, transpiledFiles, errorsReport);
|
|
354
|
+
};
|
|
284
355
|
const compilePhase = async (compilers, stage) => {
|
|
285
356
|
// clear the objects for the next phase
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
contexts = [];
|
|
289
|
-
compiledFiles = {};
|
|
290
|
-
asyncModules = [];
|
|
291
|
-
transpiledFiles = await transpile(stage);
|
|
357
|
+
cleanup();
|
|
358
|
+
transpiledFiles = await transpilePhase(stage);
|
|
292
359
|
return this.compileCubeFiles(cubes, contexts, compiledFiles, asyncModules, compilers, transpiledFiles, errorsReport);
|
|
293
360
|
};
|
|
294
|
-
return
|
|
361
|
+
return compilePhaseFirst({ cubeCompilers: this.cubeNameCompilers }, 0)
|
|
295
362
|
.then(() => compilePhase({ cubeCompilers: this.preTranspileCubeCompilers.concat([this.viewCompilationGate]) }, 1))
|
|
296
363
|
.then(() => (this.viewCompilationGate.shouldCompileViews() ?
|
|
297
364
|
compilePhase({ cubeCompilers: this.viewCompilers }, 2)
|
|
@@ -302,12 +369,9 @@ class DataSchemaCompiler {
|
|
|
302
369
|
}, 3))
|
|
303
370
|
.then(() => {
|
|
304
371
|
// Free unneeded resources
|
|
305
|
-
|
|
306
|
-
exports = {};
|
|
307
|
-
contexts = [];
|
|
308
|
-
compiledFiles = {};
|
|
309
|
-
asyncModules = [];
|
|
372
|
+
cleanup();
|
|
310
373
|
transpiledFiles = [];
|
|
374
|
+
toCompile = [];
|
|
311
375
|
if (transpilationNative) {
|
|
312
376
|
// Clean up cache
|
|
313
377
|
const dummyFile = {
|
|
@@ -336,33 +400,48 @@ class DataSchemaCompiler {
|
|
|
336
400
|
}
|
|
337
401
|
return this.compilePromise;
|
|
338
402
|
}
|
|
403
|
+
loadJinjaTemplates(files) {
|
|
404
|
+
if (NATIVE_IS_SUPPORTED !== true) {
|
|
405
|
+
throw new Error(`Native extension is required to process jinja files. ${NATIVE_IS_SUPPORTED.reason}. Read more: ` +
|
|
406
|
+
'https://github.com/cube-js/cube/blob/master/packages/cubejs-backend-native/README.md#supported-architectures-and-platforms');
|
|
407
|
+
}
|
|
408
|
+
const jinjaEngine = this.yamlCompiler.getJinjaEngine();
|
|
409
|
+
files.forEach((file) => {
|
|
410
|
+
jinjaEngine.loadTemplate(file.fileName, file.content);
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
prepareTranspileSymbols() {
|
|
414
|
+
const cubeNames = Object.keys(this.cubeDictionary.byId);
|
|
415
|
+
// We need only cubes and all its member names for transpiling.
|
|
416
|
+
// Cubes doesn't change during transpiling, but are changed during compilation phase,
|
|
417
|
+
// so we can prepare them once for every phase.
|
|
418
|
+
// Communication between main and worker threads uses
|
|
419
|
+
// The structured clone algorithm (@see https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm)
|
|
420
|
+
// which doesn't allow passing any function objects, so we need to sanitize the symbols.
|
|
421
|
+
// Communication with native backend also involves deserialization.
|
|
422
|
+
const cubeSymbols = Object.fromEntries(Object.entries(this.cubeSymbols.symbols)
|
|
423
|
+
.map(([key, value]) => [key, Object.fromEntries(Object.keys(value).map((k) => [k, true]))]));
|
|
424
|
+
// Transpilers are the same for all files within phase.
|
|
425
|
+
const transpilerNames = this.transpilers.map(t => t.constructor.name);
|
|
426
|
+
return { cubeNames, cubeSymbols, transpilerNames };
|
|
427
|
+
}
|
|
339
428
|
async transpileFile(file, errorsReport, options = {}) {
|
|
340
|
-
if (file.fileName.endsWith('.
|
|
429
|
+
if (file.fileName.endsWith('.js')) {
|
|
430
|
+
return this.transpileJsFile(file, errorsReport, options);
|
|
431
|
+
}
|
|
432
|
+
else if (file.fileName.endsWith('.jinja') ||
|
|
341
433
|
(file.fileName.endsWith('.yml') || file.fileName.endsWith('.yaml'))
|
|
342
|
-
// TODO do Jinja syntax check with jinja compiler
|
|
343
434
|
&& file.content.match(JINJA_SYNTAX)) {
|
|
344
|
-
|
|
345
|
-
throw new Error(`Native extension is required to process jinja files. ${NATIVE_IS_SUPPORTED.reason}. Read more: ` +
|
|
346
|
-
'https://github.com/cube-js/cube/blob/master/packages/cubejs-backend-native/README.md#supported-architectures-and-platforms');
|
|
347
|
-
}
|
|
348
|
-
this.yamlCompiler.getJinjaEngine().loadTemplate(file.fileName, file.content);
|
|
349
|
-
return file;
|
|
435
|
+
return this.transpileJinjaFile(file, errorsReport, options);
|
|
350
436
|
}
|
|
351
437
|
else if (file.fileName.endsWith('.yml') || file.fileName.endsWith('.yaml')) {
|
|
352
|
-
return file;
|
|
353
|
-
}
|
|
354
|
-
else if (file.fileName.endsWith('.js')) {
|
|
355
|
-
return this.transpileJsFile(file, errorsReport, options);
|
|
438
|
+
return this.transpileYamlFile(file, errorsReport, options);
|
|
356
439
|
}
|
|
357
440
|
else {
|
|
358
441
|
return file;
|
|
359
442
|
}
|
|
360
443
|
}
|
|
361
|
-
|
|
362
|
-
* Right now it is used only for transpilation in native,
|
|
363
|
-
* so no checks for transpilation type inside this method
|
|
364
|
-
*/
|
|
365
|
-
async transpileJsFilesBulk(files, errorsReport, { cubeNames, cubeSymbols, contextSymbols, transpilerNames, compilerId, stage }) {
|
|
444
|
+
async transpileJsFilesNativeBulk(files, errorsReport, { cubeNames, cubeSymbols, contextSymbols, transpilerNames, compilerId, stage }) {
|
|
366
445
|
// for bulk processing this data may be optimized even more by passing transpilerNames, compilerId only once for a bulk
|
|
367
446
|
// but this requires more complex logic to be implemented in the native side.
|
|
368
447
|
// And comparing to the file content sizes, a few bytes of JSON data is not a big deal here
|
|
@@ -387,7 +466,27 @@ class DataSchemaCompiler {
|
|
|
387
466
|
errorsReport.error(`No transpilation result received for the file ${file.fileName}.`);
|
|
388
467
|
return undefined;
|
|
389
468
|
}
|
|
390
|
-
errorsReport.addErrors(res[index].errors);
|
|
469
|
+
errorsReport.addErrors(res[index].errors, file.fileName);
|
|
470
|
+
errorsReport.addWarnings(res[index].warnings);
|
|
471
|
+
errorsReport.exitFile();
|
|
472
|
+
return { ...file, content: res[index].code };
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
async transpileYamlFilesNativeBulk(files, errorsReport, { compilerId }) {
|
|
476
|
+
const reqDataArr = files.map(file => ({
|
|
477
|
+
fileName: file.fileName,
|
|
478
|
+
fileContent: file.content,
|
|
479
|
+
transpilers: [],
|
|
480
|
+
compilerId: compilerId || '',
|
|
481
|
+
}));
|
|
482
|
+
const res = await (0, native_1.transpileYaml)(reqDataArr);
|
|
483
|
+
return files.map((file, index) => {
|
|
484
|
+
errorsReport.inFile(file);
|
|
485
|
+
if (!res[index]) { // This should not happen in theory but just to be safe
|
|
486
|
+
errorsReport.error(`No transpilation result received for the file ${file.fileName}.`);
|
|
487
|
+
return undefined;
|
|
488
|
+
}
|
|
489
|
+
errorsReport.addErrors(res[index].errors, file.fileName);
|
|
391
490
|
errorsReport.addWarnings(res[index].warnings);
|
|
392
491
|
errorsReport.exitFile();
|
|
393
492
|
return { ...file, content: res[index].code };
|
|
@@ -412,7 +511,7 @@ class DataSchemaCompiler {
|
|
|
412
511
|
};
|
|
413
512
|
errorsReport.inFile(file);
|
|
414
513
|
const res = await (0, native_1.transpileJs)([reqData]);
|
|
415
|
-
errorsReport.addErrors(res[0].errors);
|
|
514
|
+
errorsReport.addErrors(res[0].errors, file.fileName);
|
|
416
515
|
errorsReport.addWarnings(res[0].warnings);
|
|
417
516
|
errorsReport.exitFile();
|
|
418
517
|
return { ...file, content: res[0].code };
|
|
@@ -425,8 +524,8 @@ class DataSchemaCompiler {
|
|
|
425
524
|
cubeNames,
|
|
426
525
|
cubeSymbols,
|
|
427
526
|
};
|
|
428
|
-
const res = await this.workerPool.exec('
|
|
429
|
-
errorsReport.addErrors(res.errors);
|
|
527
|
+
const res = await this.workerPool.exec('transpileJs', [data]);
|
|
528
|
+
errorsReport.addErrors(res.errors, file.fileName);
|
|
430
529
|
errorsReport.addWarnings(res.warnings);
|
|
431
530
|
return { ...file, content: res.content };
|
|
432
531
|
}
|
|
@@ -458,6 +557,60 @@ class DataSchemaCompiler {
|
|
|
458
557
|
}
|
|
459
558
|
return undefined;
|
|
460
559
|
}
|
|
560
|
+
async transpileYamlFile(file, errorsReport, { cubeNames, cubeSymbols, compilerId }) {
|
|
561
|
+
const cacheKey = crypto_1.default.createHash('md5').update(JSON.stringify(file.content)).digest('hex');
|
|
562
|
+
if (this.compiledYamlCache.has(cacheKey)) {
|
|
563
|
+
const content = this.compiledYamlCache.get(cacheKey);
|
|
564
|
+
return { ...file, content };
|
|
565
|
+
}
|
|
566
|
+
if ((0, shared_1.getEnv)('transpilationNative')) {
|
|
567
|
+
const reqData = {
|
|
568
|
+
fileName: file.fileName,
|
|
569
|
+
fileContent: file.content,
|
|
570
|
+
transpilers: [],
|
|
571
|
+
compilerId: compilerId || '',
|
|
572
|
+
};
|
|
573
|
+
errorsReport.inFile(file);
|
|
574
|
+
const res = await (0, native_1.transpileYaml)([reqData]);
|
|
575
|
+
errorsReport.addErrors(res[0].errors, file.fileName);
|
|
576
|
+
errorsReport.addWarnings(res[0].warnings);
|
|
577
|
+
errorsReport.exitFile();
|
|
578
|
+
this.compiledYamlCache.set(cacheKey, res[0].code);
|
|
579
|
+
return { ...file, content: res[0].code };
|
|
580
|
+
}
|
|
581
|
+
else if ((0, shared_1.getEnv)('transpilationWorkerThreads')) {
|
|
582
|
+
const data = {
|
|
583
|
+
fileName: file.fileName,
|
|
584
|
+
content: file.content,
|
|
585
|
+
transpilers: [],
|
|
586
|
+
cubeNames,
|
|
587
|
+
cubeSymbols,
|
|
588
|
+
};
|
|
589
|
+
const res = await this.workerPool.exec('transpileYaml', [data]);
|
|
590
|
+
errorsReport.addErrors(res.errors, file.fileName);
|
|
591
|
+
errorsReport.addWarnings(res.warnings);
|
|
592
|
+
this.compiledYamlCache.set(cacheKey, res.content);
|
|
593
|
+
return { ...file, content: res.content };
|
|
594
|
+
}
|
|
595
|
+
else {
|
|
596
|
+
const transpiledFile = this.yamlCompiler.transpileYamlFile(file, errorsReport);
|
|
597
|
+
this.compiledYamlCache.set(cacheKey, transpiledFile?.content || '');
|
|
598
|
+
return transpiledFile;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
async transpileJinjaFile(file, errorsReport, options) {
|
|
602
|
+
const cacheKey = crypto_1.default.createHash('md5').update(JSON.stringify(file.content)).digest('hex');
|
|
603
|
+
let renderedFileContent;
|
|
604
|
+
if (this.compiledJinjaCache.has(cacheKey)) {
|
|
605
|
+
renderedFileContent = this.compiledJinjaCache.get(cacheKey);
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
const renderedFile = await this.yamlCompiler.renderTemplate(file, this.standalone ? {} : this.cloneCompileContextWithGetterAlias(this.compileContext), this.pythonContext);
|
|
609
|
+
renderedFileContent = renderedFile.content;
|
|
610
|
+
this.compiledJinjaCache.set(cacheKey, renderedFileContent);
|
|
611
|
+
}
|
|
612
|
+
return this.transpileYamlFile({ ...file, content: renderedFileContent }, errorsReport, options);
|
|
613
|
+
}
|
|
461
614
|
withQuery(query, fn) {
|
|
462
615
|
const oldQuery = this.currentQuery;
|
|
463
616
|
this.currentQuery = query;
|
|
@@ -471,10 +624,10 @@ class DataSchemaCompiler {
|
|
|
471
624
|
contextQuery() {
|
|
472
625
|
return this.currentQuery;
|
|
473
626
|
}
|
|
474
|
-
async compileCubeFiles(cubes, contexts, compiledFiles, asyncModules, compilers,
|
|
475
|
-
|
|
627
|
+
async compileCubeFiles(cubes, contexts, compiledFiles, asyncModules, compilers, transpiledFiles, errorsReport) {
|
|
628
|
+
transpiledFiles
|
|
476
629
|
.forEach((file) => {
|
|
477
|
-
this.compileFile(file, errorsReport, compiledFiles
|
|
630
|
+
this.compileFile(file, errorsReport, compiledFiles);
|
|
478
631
|
});
|
|
479
632
|
await asyncModules.reduce((a, b) => a.then(() => b()), Promise.resolve());
|
|
480
633
|
return this.compileObjects(compilers.cubeCompilers || [], cubes, errorsReport)
|
|
@@ -483,23 +636,14 @@ class DataSchemaCompiler {
|
|
|
483
636
|
throwIfAnyErrors() {
|
|
484
637
|
this.errorsReporter?.throwIfAny();
|
|
485
638
|
}
|
|
486
|
-
compileFile(file, errorsReport, compiledFiles,
|
|
639
|
+
compileFile(file, errorsReport, compiledFiles, { doSyntaxCheck } = { doSyntaxCheck: false }) {
|
|
487
640
|
if (compiledFiles[file.fileName]) {
|
|
488
641
|
return;
|
|
489
642
|
}
|
|
490
643
|
compiledFiles[file.fileName] = true;
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
}
|
|
494
|
-
else if (file.fileName.endsWith('.yml.jinja') || file.fileName.endsWith('.yaml.jinja') ||
|
|
495
|
-
(file.fileName.endsWith('.yml') || file.fileName.endsWith('.yaml')
|
|
496
|
-
// TODO do Jinja syntax check with jinja compiler
|
|
497
|
-
) && file.content.match(JINJA_SYNTAX)) {
|
|
498
|
-
asyncModules.push(() => this.yamlCompiler.compileYamlWithJinjaFile(file, errorsReport, this.standalone ? {} : this.cloneCompileContextWithGetterAlias(this.compileContext), this.pythonContext));
|
|
499
|
-
}
|
|
500
|
-
else if (file.fileName.endsWith('.yml') || file.fileName.endsWith('.yaml')) {
|
|
501
|
-
this.yamlCompiler.compileYamlFile(file, errorsReport);
|
|
502
|
-
}
|
|
644
|
+
// As now all types of files are transpiled to JS,
|
|
645
|
+
// we just call JS compiler for all of them
|
|
646
|
+
this.compileJsFile(file, errorsReport, { doSyntaxCheck });
|
|
503
647
|
}
|
|
504
648
|
getJsScript(file) {
|
|
505
649
|
const cacheKey = crypto_1.default.createHash('md5').update(JSON.stringify(file.content)).digest('hex');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSchemaCompiler.js","sourceRoot":"","sources":["../../../src/compiler/DataSchemaCompiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataSchemaCompiler.js","sourceRoot":"","sources":["../../../src/compiler/DataSchemaCompiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ export declare class ErrorReporter {
|
|
|
39
39
|
inContext(context: string): ErrorReporter;
|
|
40
40
|
throwIfAny(): void;
|
|
41
41
|
getErrors(): CompilerErrorInterface[];
|
|
42
|
-
addErrors(errors: PossibleError[]): void;
|
|
42
|
+
addErrors(errors: PossibleError[], fileName?: string): void;
|
|
43
43
|
getWarnings(): SyntaxErrorInterface[];
|
|
44
44
|
addWarnings(warnings: SyntaxErrorInterface[]): void;
|
|
45
45
|
protected rootReporter(): ErrorReporter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorReporter.d.ts","sourceRoot":"","sources":["../../../src/compiler/ErrorReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,eAAe,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC;AAED,UAAU,IAAI;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAED,qBAAa,aAAa;IAQtB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAC/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IATlD,SAAS,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAM;IAEhD,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAM;IAEhD,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;gBAGd,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,OAAO,GAAE,GAAG,EAAO,EACnB,OAAO,GAAE,oBAE3B;IAII,QAAQ;IAIR,MAAM,CAAC,IAAI,EAAE,IAAI;IAIjB,OAAO,CAAC,CAAC,EAAE,oBAAoB;IA+B/B,WAAW,CAAC,CAAC,EAAE,oBAAoB;IA0BnC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG;IAiB9D,SAAS,CAAC,OAAO,EAAE,MAAM;IAIzB,UAAU;IASV,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"ErrorReporter.d.ts","sourceRoot":"","sources":["../../../src/compiler/ErrorReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,eAAe,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC;AAED,UAAU,IAAI;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAED,qBAAa,aAAa;IAQtB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAC/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IATlD,SAAS,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAM;IAEhD,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAM;IAEhD,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;gBAGd,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,OAAO,GAAE,GAAG,EAAO,EACnB,OAAO,GAAE,oBAE3B;IAII,QAAQ;IAIR,MAAM,CAAC,IAAI,EAAE,IAAI;IAIjB,OAAO,CAAC,CAAC,EAAE,oBAAoB;IA+B/B,WAAW,CAAC,CAAC,EAAE,oBAAoB;IA0BnC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG;IAiB9D,SAAS,CAAC,OAAO,EAAE,MAAM;IAIzB,UAAU;IASV,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM;IAIpD,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,oBAAoB,EAAE;IAInD,SAAS,CAAC,YAAY,IAAI,aAAa;CAGxC"}
|
|
@@ -99,8 +99,8 @@ class ErrorReporter {
|
|
|
99
99
|
getErrors() {
|
|
100
100
|
return this.rootReporter().errors;
|
|
101
101
|
}
|
|
102
|
-
addErrors(errors) {
|
|
103
|
-
errors.forEach((e) => { this.error(e); });
|
|
102
|
+
addErrors(errors, fileName) {
|
|
103
|
+
errors.forEach((e) => { this.error(e, fileName); });
|
|
104
104
|
}
|
|
105
105
|
getWarnings() {
|
|
106
106
|
return this.rootReporter().warnings;
|