webapi-eca/examples/runscript.coffee
2014-04-06 21:36:34 +02:00

65 lines
No EOL
1.5 KiB
CoffeeScript

###
runscript.js
------------
A script that helps to track errors happening durin coffee
compilation and running of module code
###
if not process.argv[ 2 ]
console.log 'Please provide a path to a coffee file'
process.exit()
fs = require 'fs'
vm = require 'vm'
cs = require 'coffee-script'
needle = require 'needle'
crypto = require 'crypto-js'
request = require 'request'
issueApiCall = ( method, url, data, options, cb ) ->
try
needle.request method, url, data, options, ( err, resp, body ) =>
try
cb err, resp, body
catch err
console.log 'Error during needle request! ' + err.message
catch err
console.log 'Error before needle request! ' + err.message
issueRequest = ( options, cb ) ->
try
request options, ( err, resp, body ) =>
try
cb err, resp, body
catch err
console.log 'Error during request! ' + err.message
catch err
console.log 'Error before request! ' + err.message
params = JSON.parse fs.readFileSync 'params.json', 'utf8'
code = fs.readFileSync process.argv[ 2 ], 'utf8'
src = cs.compile code
sandbox =
id: 'test.vm'
params: params.userparams
needlereq: issueApiCall
request: issueRequest
cryptoJS: crypto
log: console.log
debug: console.log
exports: {}
vm.runInNewContext src, sandbox, sandbox.id
if process.argv[ 3 ] is 'ep'
sandbox.exports[ process.argv[ 4 ] ] ( evt ) ->
console.log evt
else
sandbox.exports[ process.argv[ 3 ] ] params.event
console.log "If no error happened until here it seems the script
compiled and ran correctly! Congrats!"