{"version":3,"file":"jdoodle-client.node.mjs","sources":["../src/universal/base.js","../src/node/jdoodle-client.js"],"sourcesContent":["import {\n  name as LIB_NAME,\n  version as LIB_VERSION\n} from '../../package.json';\n\nconst jdoodle = {\n  get [Symbol.toStringTag]() {\n    return LIB_NAME;\n  },\n  version: LIB_VERSION,\n  defaultExecutePath: '/jdoodleExecute',\n  defaultCreditSpentPath: '/jdoodleCreditSpent'\n};\n\nexport default jdoodle;\n","import jdoodle from '../universal/base';\n\nimport https from 'https';\n\nfunction _callAPI(url, opts) {\n  return new Promise((resolve, reject) => {\n    let content = JSON.stringify(opts);\n    let req = https.request(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'Content-Length': content.length\n      }\n    }, res => {\n      let received = [];\n      res.\n        on('data', data => received.push(String(data))).\n        on('end', () => {\n          // Wrap in a try-catch because JSON.parse might throw and\n          // we're in an unprotected callback after the promise is created\n          try { resolve(JSON.parse(received.join(''))); }\n          catch (err) { reject(err); }\n        }).\n        on('error', err => reject(err));\n    }).on('error', err => reject(err));\n    req.write(content);\n    req.end();\n  });\n}\n\nfunction callExecuteAPI({\n  endpoint = process.env.JDOODLE_ENDPOINT_EXECUTE ||\n    'https://api.jdoodle.com/v1/execute',\n  clientId = process.env.JDOODLE_CLIENT_ID,\n  clientSecret = process.env.JDOODLE_CLIENT_SECRET,\n  language = 'ruby',\n  versionIndex = 2,\n  stdin = 'Hi',\n  script = 'puts \"ruby \\#{RUBY_VERSION}: \\#{ARGF.read}\"'\n} = {}) {\n  return _callAPI(endpoint, {\n    clientId,\n    clientSecret,\n    language,\n    versionIndex,\n    stdin,\n    script\n  });\n}\n\nfunction callCreditSpentAPI({\n  endpoint = process.env.JDOODLE_ENDPOINT_CREDIT_SPENT ||\n    'https://api.jdoodle.com/v1/credit-spent',\n  clientId = process.env.JDOODLE_CLIENT_ID,\n  clientSecret = process.env.JDOODLE_CLIENT_SECRET\n} = {}) {\n  return _callAPI(endpoint, {\n    clientId,\n    clientSecret\n  });\n}\n\nconst execute = opts => callExecuteAPI(opts).\n  catch(err => ({error: `${err}`, statusCode: 500}));\n\nconst creditSpent = opts => callCreditSpentAPI(opts).\n  catch(err => ({error: `${err}`, statusCode: 500}));\n\nObject.assign(jdoodle, {\n  callExecuteAPI,\n  callCreditSpentAPI,\n  execute,\n  creditSpent\n});\n\nexport default jdoodle;\n"],"names":["LIB_NAME","LIB_VERSION"],"mappings":"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"}