mirror of https://github.com/Seich/Beau.git
Replaced unirest with request-promise. Tried using the built it http
stuff but it's just silly.
This commit is contained in:
parent
d1dfcb8c7d
commit
7ecd5428c6
|
|
@ -1,5 +1,5 @@
|
|||
version: 1
|
||||
host: 'https://jsonplaceholder.typicode.com'
|
||||
host: 'http://jsonplaceholder.typicode.com'
|
||||
|
||||
GET /posts/:
|
||||
alias: posts
|
||||
|
|
@ -9,3 +9,5 @@ POST /posts/:
|
|||
|
||||
GET /users/$posts.body.0.userId:
|
||||
alias: post-user
|
||||
params:
|
||||
hello: 'world'
|
||||
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
|
|
@ -1,12 +1,13 @@
|
|||
{
|
||||
"name": "beau",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"description": "A tool for testing JSON APIs",
|
||||
"main": "beau.js",
|
||||
"author": "Sergio Diaz <seich@martianwabbit.com>",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "jest"
|
||||
"test": "jest",
|
||||
"watch": "jest --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"cli-color": "^1.1.0",
|
||||
|
|
@ -14,8 +15,9 @@
|
|||
"commander": "^2.9.0",
|
||||
"eyes": "^0.1.8",
|
||||
"js-yaml": "^3.7.0",
|
||||
"requireg": "^0.1.6",
|
||||
"unirest": "^0.5.1"
|
||||
"request": "^2.83.0",
|
||||
"request-promise-native": "^1.0.5",
|
||||
"requireg": "^0.1.6"
|
||||
},
|
||||
"repository": "git@github.com:Seich/Beau.git",
|
||||
"devDependencies": {
|
||||
|
|
@ -23,7 +25,7 @@
|
|||
},
|
||||
"jest": {
|
||||
"testEnvironment": "node",
|
||||
"notify": false
|
||||
"notify": true
|
||||
},
|
||||
"bin": {
|
||||
"beau": "./bin/beau"
|
||||
|
|
|
|||
60
request.js
60
request.js
|
|
@ -1,4 +1,4 @@
|
|||
const unirest = require('unirest');
|
||||
const request = require('request-promise-native');
|
||||
const {httpVerbs, requestRegex, replacementRegex} = require('./shared');
|
||||
const RequestList = require('./requestList');
|
||||
const RequestCache = require('./requestCache');
|
||||
|
|
@ -71,39 +71,41 @@ class Request {
|
|||
}
|
||||
});
|
||||
|
||||
let request = unirest(settings.method, settings.endpoint);
|
||||
return request({
|
||||
url: settings.endpoint,
|
||||
method: settings.method,
|
||||
headers: settings.headers,
|
||||
qs: settings.query,
|
||||
body: settings.payload,
|
||||
json: true,
|
||||
simple: false,
|
||||
resolveWithFullResponse: true
|
||||
})
|
||||
|
||||
request.headers(settings.headers);
|
||||
request.query(settings.query);
|
||||
request.send(settings.payload);
|
||||
.then(response => {
|
||||
let results = {
|
||||
request: {
|
||||
headers: response.request.headers,
|
||||
body: response.request.body,
|
||||
endpoint: response.request.uri.href
|
||||
},
|
||||
response: {
|
||||
status: response.statusCode,
|
||||
headers: response.headers,
|
||||
body: response.body
|
||||
},
|
||||
body: response.body
|
||||
};
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
request.end(res => {
|
||||
if (res.error !== false) {
|
||||
let error = typeof res.error.code === 'undefined' ? `Invalid Request ${res.error}` : res.error.code;
|
||||
return reject(`HTTP Request failed: ${error}`);
|
||||
}
|
||||
cache.add(`$${this.ALIAS}`, results);
|
||||
|
||||
let results = {
|
||||
request: {
|
||||
headers: res.request.headers,
|
||||
body: res.request.body,
|
||||
endpoint: settings.endpoint
|
||||
},
|
||||
response: {
|
||||
status: res.status,
|
||||
headers: res.headers,
|
||||
body: res.body,
|
||||
}
|
||||
};
|
||||
return results;
|
||||
})
|
||||
|
||||
results.body = results.response.body;
|
||||
|
||||
cache.add(`$${this.ALIAS}`, results);
|
||||
|
||||
return resolve(results);
|
||||
});
|
||||
.catch(function({error}) {
|
||||
throw new Error(error.message);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,10 @@ class RequestList {
|
|||
}
|
||||
|
||||
loadPlugins() {
|
||||
if (typeof this.config.PLUGINS === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
return this.config.PLUGINS.map(plugin => {
|
||||
let name = plugin;
|
||||
let settings = null;
|
||||
|
|
|
|||
13
shared.js
13
shared.js
|
|
@ -1,4 +1,15 @@
|
|||
const httpVerbs = ['POST', 'GET', 'PUT', 'PATCH', 'DELETE'];
|
||||
const httpVerbs = [
|
||||
'GET',
|
||||
'HEAD',
|
||||
'POST',
|
||||
'PUT',
|
||||
'DELETE',
|
||||
'CONNECT',
|
||||
'OPTIONS',
|
||||
'TRACE',
|
||||
'PATCH'
|
||||
];
|
||||
|
||||
const requestRegex = new RegExp(`(${httpVerbs.join('|')})\\s(.*)`, 'i');
|
||||
const replacementRegex = /\$([a-zA-Z\.\d\-\_]*)/g;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue