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