Return execution time

This commit is contained in:
Peter Stockings
2025-07-25 15:01:43 +10:00
parent ca63a9b610
commit 7c635e3fff

View File

@@ -97,6 +97,7 @@ async function executeUserCode(
funcName = "userFunc"
) {
const logs = [];
const startTime = process.hrtime();
const vm = createVm(
logs,
requestObject,
@@ -118,21 +119,27 @@ async function executeUserCode(
const result = await Promise.resolve(
userFn(requestObject, vm.sandbox.environment)
);
const endTime = process.hrtime(startTime);
const executionTime = (endTime[0] * 1e9 + endTime[1]) / 1e6; // in milliseconds
return {
status: States.SUCCESS,
result,
logs,
environment: vm.sandbox.environment,
execution_time: executionTime,
};
} catch (err) {
const status = /timed out/i.test(err.message)
? States.TIMEOUT
: States.SCRIPT_ERROR;
const endTime = process.hrtime(startTime);
const executionTime = (endTime[0] * 1e9 + endTime[1]) / 1e6; // in milliseconds
return {
status,
result: err.message ?? err,
logs,
environment: vm.sandbox.environment,
execution_time: executionTime,
};
}
}