UNPKG

nsmockup

Version:

Test your Suitescripts before deploying to NetSuite

37 lines (32 loc) 1.13 kB
'use strict'; var vmSim = require('../../vm-sim'); exports.exec = (req, res) => { let db = global.$db, id = req.query.script, script = db.object.__scripts[id - 1]; if (!script) { res.status(500).send('SSS_INVALID_INTERNAL_ID'); } else { let methods, method = req.method.toLowerCase(); if (script.type === 'suitelet') { methods = ['get', 'post']; } if (!methods || !~methods.indexOf(method)) { res.status(500).send('SSS_INVALID_TYPE_SCRIPT'); } let execFunc; if (script.functions && method) { execFunc = script.functions[method]; } else { execFunc = script.function; } // load libs in specific context let context = vmSim.importSuiteScript(script); // init request and response variables in context context.$NS_REQ = new context.nlobjRequest(req); context.$NS_RES = new context.nlobjResponse(res); // execute script on his context vmSim.evalContext(execFunc + '($NS_REQ, $NS_RES)', context); } };