@usebruno/js 0.14.0 → 0.15.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.
@@ -3,17 +3,39 @@ const Bru = require('../bru');
3
3
  const BrunoRequest = require('../bruno-request');
4
4
  const { evaluateJsTemplateLiteral, evaluateJsExpression, createResponseParser } = require('../utils');
5
5
 
6
+ const { executeQuickJsVm } = require('../sandbox/quickjs');
7
+
8
+ const evaluateJsTemplateLiteralBasedOnRuntime = (literal, context, runtime) => {
9
+ if (runtime === 'quickjs') {
10
+ return executeQuickJsVm({
11
+ script: literal,
12
+ context,
13
+ scriptType: 'template-literal'
14
+ });
15
+ }
16
+
17
+ return evaluateJsTemplateLiteral(literal, context);
18
+ };
19
+
20
+ const evaluateJsExpressionBasedOnRuntime = (expr, context, runtime, mode) => {
21
+ if (runtime === 'quickjs') {
22
+ return executeQuickJsVm({
23
+ script: expr,
24
+ context,
25
+ scriptType: 'expression'
26
+ });
27
+ }
28
+
29
+ return evaluateJsExpression(expr, context);
30
+ };
31
+
6
32
  class VarsRuntime {
7
- runPreRequestVars(
8
- vars,
9
- request,
10
- envVariables,
11
- collectionVariables,
12
- collectionPath,
13
- processEnvVars,
14
- historyLogger,
15
- secretVars = {}
16
- ) {
33
+ constructor(props) {
34
+ this.runtime = props?.runtime || 'vm2';
35
+ this.mode = props?.mode || 'developer';
36
+ }
37
+
38
+ runPreRequestVars(vars, request, envVariables, runtimeVariables, collectionPath, processEnvVars, historyLogger, secretVars = {}) {
17
39
  if (!request?.requestVariables) {
18
40
  request.requestVariables = {};
19
41
  }
@@ -24,12 +46,13 @@ class VarsRuntime {
24
46
 
25
47
  const bru = new Bru(
26
48
  envVariables,
27
- collectionVariables,
49
+ runtimeVariables,
28
50
  processEnvVars,
29
51
  null,
30
52
  historyLogger,
31
- undefined, // setHtmlVisualizationString
32
- secretVars
53
+ undefined, // setVisualizations
54
+ secretVars,
55
+ undefined, // requestVariables
33
56
  );
34
57
  const req = new BrunoRequest(request, historyLogger);
35
58
 
@@ -40,13 +63,13 @@ class VarsRuntime {
40
63
 
41
64
  const context = {
42
65
  ...envVariables,
43
- ...collectionVariables,
66
+ ...runtimeVariables,
44
67
  ...secretVars,
45
68
  ...bruContext
46
69
  };
47
70
 
48
71
  _.each(enabledVars, (v) => {
49
- const value = evaluateJsTemplateLiteral(v.value, context);
72
+ const value = evaluateJsTemplateLiteralBasedOnRuntime(v.value, context, this.runtime);
50
73
  request?.requestVariables && (request.requestVariables[v.name] = value);
51
74
  });
52
75
  }
@@ -56,7 +79,7 @@ class VarsRuntime {
56
79
  request,
57
80
  response,
58
81
  envVariables,
59
- collectionVariables,
82
+ runtimeVariables,
60
83
  collectionPath,
61
84
  processEnvVars,
62
85
  historyLogger,
@@ -70,11 +93,11 @@ class VarsRuntime {
70
93
 
71
94
  const bru = new Bru(
72
95
  envVariables,
73
- collectionVariables,
96
+ runtimeVariables,
74
97
  processEnvVars,
75
98
  null,
76
99
  historyLogger,
77
- undefined, // setHtmlVisualizationString
100
+ undefined, // setVisualizations
78
101
  secretVars,
79
102
  requestVariables
80
103
  );
@@ -89,7 +112,7 @@ class VarsRuntime {
89
112
 
90
113
  const context = {
91
114
  ...envVariables,
92
- ...collectionVariables,
115
+ ...runtimeVariables,
93
116
  ...secretVars,
94
117
  ...bruContext
95
118
  };
@@ -97,7 +120,7 @@ class VarsRuntime {
97
120
  const errors = new Map();
98
121
  _.each(enabledVars, (v) => {
99
122
  try {
100
- const value = evaluateJsExpression(v.value, context);
123
+ const value = evaluateJsExpressionBasedOnRuntime(v.value, context, this.runtime);
101
124
  bru.setVar(v.name, value);
102
125
  } catch (error) {
103
126
  errors.set(v.name, error);
@@ -113,7 +136,7 @@ class VarsRuntime {
113
136
 
114
137
  return {
115
138
  envVariables,
116
- collectionVariables,
139
+ runtimeVariables,
117
140
  error
118
141
  };
119
142
  }