mirror of
https://github.com/github/codeql.git
synced 2025-12-17 09:13:20 +01:00
62 lines
1.9 KiB
JavaScript
62 lines
1.9 KiB
JavaScript
// adopted from https://stackoverflow.com/questions/6158933/how-to-make-an-http-post-request-in-node-js
|
|
|
|
var querystring = require('querystring');
|
|
var http = require('http');
|
|
var fs = require('fs');
|
|
|
|
function PostCode(codestring) {
|
|
// Build the post string from an object
|
|
var post_data = querystring.stringify({
|
|
'compilation_level' : 'ADVANCED_OPTIMIZATIONS',
|
|
'output_format': 'json',
|
|
'output_info': 'compiled_code',
|
|
'warning_level' : 'QUIET',
|
|
'js_code' : codestring // passing data from file to the request json body
|
|
});
|
|
|
|
// An object of options to indicate where to post to
|
|
var post_options = {
|
|
host: 'closure-compiler.appspot.com',
|
|
port: '80',
|
|
path: '/compile',
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
'Content-Length': Buffer.byteLength(post_data)
|
|
}
|
|
};
|
|
|
|
// Set up the request
|
|
var post_req = http.request(post_options, function(res) {
|
|
res.setEncoding('utf8');
|
|
res.on('data', function (chunk) {
|
|
console.log('Response: ' + chunk);
|
|
});
|
|
});
|
|
|
|
post_req.write(post_data); // $ Alert[js/file-access-to-http] - post the data from file to request body
|
|
post_req.end();
|
|
|
|
}
|
|
|
|
// This is an async file read
|
|
fs.readFile('LinkedList.js', 'utf-8', function (err, data) { // $ Source[js/file-access-to-http]
|
|
if (err) {
|
|
// If this were just a small part of the application, you would
|
|
// want to handle this differently, maybe throwing an exception
|
|
// for the caller to handle. Since the file is absolutely essential
|
|
// to the program's functionality, we're going to exit with a fatal
|
|
// error instead.
|
|
console.log("FATAL An error occurred trying to read in the file: " + err);
|
|
process.exit(-2);
|
|
}
|
|
// Make sure there's data before we post it
|
|
if(data) {
|
|
PostCode(data);
|
|
}
|
|
else {
|
|
console.log("No data to post");
|
|
process.exit(-1);
|
|
}
|
|
});
|