feat: support loading external libraries

This commit is contained in:
Anoop M D
2023-01-29 12:33:12 +05:30
parent 905f459ed0
commit d89f12c071
4 changed files with 26 additions and 16 deletions

View File

@ -1,4 +1,5 @@
const { NodeVM } = require('vm2');
const path = require('path');
const Bru = require('./bru');
const BrunoRequest = require('./bruno-request');
const BrunoResponse = require('./bruno-response');
@ -7,7 +8,7 @@ class ScriptRuntime {
constructor() {
}
runRequestScript(script, request, environment) {
runRequestScript(script, request, environment, collectionPath) {
const bru = new Bru(environment);
const brunoRequest = new BrunoRequest(request);
@ -16,10 +17,15 @@ class ScriptRuntime {
brunoRequest
};
const vm = new NodeVM({
sandbox: context
sandbox: context,
require: {
context: 'sandbox',
external: true,
root: [collectionPath]
}
});
vm.run(script);
vm.run(script, path.join(collectionPath, 'vm.js'));
return {
request,
@ -27,7 +33,7 @@ class ScriptRuntime {
};
}
runResponseScript(script, response, environment) {
runResponseScript(script, response, environment, collectionPath) {
const bru = new Bru(environment);
const brunoResponse = new BrunoResponse(response);
@ -36,10 +42,15 @@ class ScriptRuntime {
brunoResponse
};
const vm = new NodeVM({
sandbox: context
sandbox: context,
require: {
context: 'sandbox',
external: true,
root: [collectionPath]
}
});
vm.run(script);
vm.run(script, path.join(collectionPath, 'vm.js'));
return {
response,