@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
23 lines (22 loc) • 706 B
JavaScript
import { useEnv } from '@directus/env';
import { useLogger } from '../../../../logger/index.js';
export async function callReference(fn, args) {
const env = useEnv();
const logger = useLogger();
const sandboxTimeout = Number(env['EXTENSIONS_SANDBOX_TIMEOUT']);
try {
return await fn.apply(undefined, args, {
arguments: { copy: true },
result: { reference: true, promise: true },
timeout: sandboxTimeout,
});
}
catch (e) {
if (e instanceof RangeError) {
logger.error(`Extension sandbox has reached the memory limit`);
logger.error(e);
process.abort();
}
throw e;
}
}