@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.
Files changed (32) hide show
  1. package/dist/src/adapter/BaseQuery.js +2 -2
  2. package/dist/src/adapter/BaseQuery.js.map +1 -1
  3. package/dist/src/adapter/PreAggregations.js +6 -5
  4. package/dist/src/adapter/PreAggregations.js.map +1 -1
  5. package/dist/src/compiler/CubeSymbols.d.ts +2 -1
  6. package/dist/src/compiler/CubeSymbols.d.ts.map +1 -1
  7. package/dist/src/compiler/CubeSymbols.js.map +1 -1
  8. package/dist/src/compiler/DataSchemaCompiler.d.ts +13 -7
  9. package/dist/src/compiler/DataSchemaCompiler.d.ts.map +1 -1
  10. package/dist/src/compiler/DataSchemaCompiler.js +235 -91
  11. package/dist/src/compiler/DataSchemaCompiler.js.map +1 -1
  12. package/dist/src/compiler/ErrorReporter.d.ts +1 -1
  13. package/dist/src/compiler/ErrorReporter.d.ts.map +1 -1
  14. package/dist/src/compiler/ErrorReporter.js +2 -2
  15. package/dist/src/compiler/ErrorReporter.js.map +1 -1
  16. package/dist/src/compiler/PrepareCompiler.d.ts +2 -0
  17. package/dist/src/compiler/PrepareCompiler.d.ts.map +1 -1
  18. package/dist/src/compiler/PrepareCompiler.js +4 -0
  19. package/dist/src/compiler/PrepareCompiler.js.map +1 -1
  20. package/dist/src/compiler/ViewCompilationGate.js +2 -2
  21. package/dist/src/compiler/ViewCompilationGate.js.map +1 -1
  22. package/dist/src/compiler/YamlCompiler.d.ts +6 -8
  23. package/dist/src/compiler/YamlCompiler.d.ts.map +1 -1
  24. package/dist/src/compiler/YamlCompiler.js +17 -16
  25. package/dist/src/compiler/YamlCompiler.js.map +1 -1
  26. package/dist/src/compiler/transpilers/CubePropContextTranspiler.d.ts +1 -1
  27. package/dist/src/compiler/transpilers/CubePropContextTranspiler.d.ts.map +1 -1
  28. package/dist/src/compiler/transpilers/CubePropContextTranspiler.js +26 -8
  29. package/dist/src/compiler/transpilers/CubePropContextTranspiler.js.map +1 -1
  30. package/dist/src/compiler/transpilers/transpiler_worker.js +18 -2
  31. package/dist/src/compiler/transpilers/transpiler_worker.js.map +1 -1
  32. 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 toCompile = files.filter((f) => !this.filesToCompile || !this.filesToCompile.length || this.filesToCompile.indexOf(f.fileName) !== -1);
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 (!transpilationNative && transpilationWorkerThreads) {
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 transpile = async (stage) => {
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 = Object.keys(this.cubeDictionary.byId);
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 nonJsFilesTasks = toCompile.filter(file => !file.fileName.endsWith('.js'))
169
- .map(f => this.transpileFile(f, errorsReport, { transpilerNames, compilerId }));
170
- const jsFiles = toCompile.filter(file => file.fileName.endsWith('.js'));
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.transpileFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames })));
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.transpileFile(f, errorsReport, {})));
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.indexOf('.') === 0) {
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, [], { doSyntaxCheck: true });
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
- cubes = [];
287
- exports = {};
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 compilePhase({ cubeCompilers: this.cubeNameCompilers }, 0)
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
- cubes = [];
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('.jinja') ||
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
- if (NATIVE_IS_SUPPORTED !== true) {
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('transpile', [data]);
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, toCompile, errorsReport) {
475
- toCompile
627
+ async compileCubeFiles(cubes, contexts, compiledFiles, asyncModules, compilers, transpiledFiles, errorsReport) {
628
+ transpiledFiles
476
629
  .forEach((file) => {
477
- this.compileFile(file, errorsReport, compiledFiles, asyncModules);
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, asyncModules, { doSyntaxCheck } = { doSyntaxCheck: false }) {
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
- if (file.fileName.endsWith('.js')) {
492
- this.compileJsFile(file, errorsReport, { doSyntaxCheck });
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;IAIjC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,oBAAoB,EAAE;IAInD,SAAS,CAAC,YAAY,IAAI,aAAa;CAGxC"}
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;