Cleaning the CLI tool. Small refactorings all around.

If a string is passed to a request configuration its now considered
that request's alias.
This commit is contained in:
David Diaz 2017-11-23 09:42:01 -06:00
parent a8a71caad8
commit 32b9f0f523
7 changed files with 131 additions and 130 deletions

View File

@ -5,6 +5,7 @@ describe('RequestList', () => {
let doc = { let doc = {
'POST /session': null, 'POST /session': null,
'Not a Request': null, 'Not a Request': null,
'GET /post': 'get-posts',
'POST /user': { 'POST /user': {
alias: 'user', alias: 'user',
payload: { payload: {
@ -19,7 +20,7 @@ describe('RequestList', () => {
let requests = new RequestList(doc, { HOST: host }); let requests = new RequestList(doc, { HOST: host });
let request = requests.list[0]; let request = requests.list[0];
expect(requests.list.length).toBe(2); expect(requests.list.length).toBe(3);
expect(request.VERB).toBe('POST'); expect(request.VERB).toBe('POST');
expect(request.ENDPOINT).toBe(host + '/session'); expect(request.ENDPOINT).toBe(host + '/session');
}); });

View File

@ -6,7 +6,7 @@ const yaml = require('js-yaml');
const fs = require('fs'); const fs = require('fs');
const { Line, Spinner } = require('clui'); const { Line, Spinner } = require('clui');
const clc = require('cli-color'); const clc = require('cli-color');
const eyes = require('eyes'); const jsome = require('jsome');
const package = require('../package.json'); const package = require('../package.json');
@ -58,9 +58,10 @@ if (
if (program.cleanList) { if (program.cleanList) {
beau.requests.list.forEach(({ VERB, ALIAS, ENDPOINT, DOCUMENTATION }) => { beau.requests.list.forEach(({ VERB, ALIAS, ENDPOINT, DOCUMENTATION }) => {
if (typeof DOCUMENTATION !== 'undefined') { if (typeof DOCUMENTATION !== 'undefined') {
let {title, description} = DOCUMENTATION; let { title, description } = DOCUMENTATION;
console.log(`${VERB}\t${ALIAS}\t${ENDPOINT}\t${title}\t${description}`); console.log(
`${VERB}\t${ALIAS}\t${ENDPOINT}\t${title}\t${description}`
);
} else { } else {
console.log(`${VERB}\t${ALIAS}\t${ENDPOINT}`); console.log(`${VERB}\t${ALIAS}\t${ENDPOINT}`);
} }
@ -88,15 +89,22 @@ if (program.list) {
} }
if (program.cleanRequest) { if (program.cleanRequest) {
beau.requests.execByAlias(program.cleanRequest).then(res => { beau.requests
let {status, headers, body} = res.response; .execByAlias(program.cleanRequest)
let {endpoint} = res.request; .then(res => {
let { status, headers, body } = res.response;
let { endpoint } = res.request;
process.stdout.write(status + '\n'); console.log(status);
process.stdout.write(endpoint + '\n'); console.log(endpoint);
process.stdout.write(JSON.stringify(headers) + '\n'); console.log(JSON.stringify(headers));
process.stdout.write(JSON.stringify(body) + '\n'); console.log(JSON.stringify(body));
}); })
.catch(err => {
new Line().output();
console.error(err);
process.exit(1);
});
} }
if (program.request) { if (program.request) {
@ -131,17 +139,16 @@ if (program.request) {
new Line().output(); new Line().output();
let maxLength = +(program.truncate || res.length); let maxLength = +(program.truncate || res.length);
let inspect = eyes.inspector({ maxLength });
if (program.verbose) { if (program.verbose) {
inspect(res); jsome(res);
} else { } else {
inspect(body); jsome(body);
} }
process.exit(0); process.exit(0);
}) })
.catch(function(err) { .catch(err => {
new Line().output(); new Line().output();
console.error(err); console.error(err);
process.exit(1); process.exit(1);

View File

@ -1,6 +1,8 @@
version: 1 version: 1
host: 'http://jsonplaceholder.typicode.com' host: 'http://jsonplaceholder.typicode.com'
GET /posts/1: get-post
GET /posts/: GET /posts/:
alias: posts alias: posts
documentation: documentation:

175
package-lock.json generated
View File

@ -58,8 +58,7 @@
"ansi-styles": { "ansi-styles": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
"dev": true
}, },
"ansicolors": { "ansicolors": {
"version": "0.2.1", "version": "0.2.1",
@ -293,8 +292,7 @@
"builtin-modules": { "builtin-modules": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
"dev": true
}, },
"callsites": { "callsites": {
"version": "2.0.0", "version": "2.0.0",
@ -330,8 +328,7 @@
"chalk": { "chalk": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
"dev": true
}, },
"ci-info": { "ci-info": {
"version": "1.1.1", "version": "1.1.1",
@ -422,8 +419,7 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
"dev": true
}, },
"colors": { "colors": {
"version": "1.0.3", "version": "1.0.3",
@ -520,8 +516,7 @@
"decamelize": { "decamelize": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
"dev": true
}, },
"deep-extend": { "deep-extend": {
"version": "0.2.11", "version": "0.2.11",
@ -572,8 +567,7 @@
"error-ex": { "error-ex": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
"integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw="
"dev": true
}, },
"es5-ext": { "es5-ext": {
"version": "0.10.35", "version": "0.10.35",
@ -598,8 +592,7 @@
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
"dev": true
}, },
"escodegen": { "escodegen": {
"version": "1.8.1", "version": "1.8.1",
@ -678,11 +671,6 @@
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
}, },
"eyes": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
"integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
},
"fast-deep-equal": { "fast-deep-equal": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
@ -721,8 +709,7 @@
"find-up": { "find-up": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8="
"dev": true
}, },
"for-in": { "for-in": {
"version": "1.0.2", "version": "1.0.2",
@ -755,8 +742,7 @@
"get-caller-file": { "get-caller-file": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
"integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
"dev": true
}, },
"getpass": { "getpass": {
"version": "0.1.7", "version": "0.1.7",
@ -797,8 +783,7 @@
"graceful-fs": { "graceful-fs": {
"version": "4.1.11", "version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
"dev": true
}, },
"growly": { "growly": {
"version": "1.3.0", "version": "1.3.0",
@ -839,8 +824,7 @@
"has-ansi": { "has-ansi": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
"dev": true
}, },
"has-flag": { "has-flag": {
"version": "1.0.0", "version": "1.0.0",
@ -867,8 +851,7 @@
"hosted-git-info": { "hosted-git-info": {
"version": "2.5.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
"integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg=="
"dev": true
}, },
"html-encoding-sniffer": { "html-encoding-sniffer": {
"version": "1.0.1", "version": "1.0.1",
@ -912,14 +895,12 @@
"invert-kv": { "invert-kv": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
"dev": true
}, },
"is-arrayish": { "is-arrayish": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
"dev": true
}, },
"is-buffer": { "is-buffer": {
"version": "1.1.5", "version": "1.1.5",
@ -930,8 +911,7 @@
"is-builtin-module": { "is-builtin-module": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74="
"dev": true
}, },
"is-ci": { "is-ci": {
"version": "1.0.10", "version": "1.0.10",
@ -972,8 +952,7 @@
"is-fullwidth-code-point": { "is-fullwidth-code-point": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs="
"dev": true
}, },
"is-glob": { "is-glob": {
"version": "2.0.1", "version": "2.0.1",
@ -1012,8 +991,7 @@
"is-utf8": { "is-utf8": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
"dev": true
}, },
"isarray": { "isarray": {
"version": "1.0.0", "version": "1.0.0",
@ -1411,6 +1389,38 @@
"integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
"dev": true "dev": true
}, },
"jsome": {
"version": "2.3.26",
"resolved": "https://registry.npmjs.org/jsome/-/jsome-2.3.26.tgz",
"integrity": "sha1-jLRDiSTSyd1SlMkK3wPzVBT7PKk=",
"dependencies": {
"camelcase": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
},
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0="
},
"window-size": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
"integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU="
},
"yargs": {
"version": "4.8.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz",
"integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA="
},
"yargs-parser": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
"integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ="
}
}
},
"json-schema": { "json-schema": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@ -1470,8 +1480,7 @@
"lcid": { "lcid": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU="
"dev": true
}, },
"levn": { "levn": {
"version": "0.3.0", "version": "0.3.0",
@ -1482,8 +1491,7 @@
"load-json-file": { "load-json-file": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA="
"dev": true
}, },
"lodash": { "lodash": {
"version": "4.17.4", "version": "4.17.4",
@ -1541,8 +1549,7 @@
"lodash.assign": { "lodash.assign": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
"integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
"dev": true
}, },
"lodash.clonedeep": { "lodash.clonedeep": {
"version": "3.0.2", "version": "3.0.2",
@ -1724,8 +1731,7 @@
"normalize-package-data": { "normalize-package-data": {
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw=="
"dev": true
}, },
"normalize-path": { "normalize-path": {
"version": "2.1.1", "version": "2.1.1",
@ -1736,8 +1742,7 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
"dev": true
}, },
"nwmatcher": { "nwmatcher": {
"version": "1.4.3", "version": "1.4.3",
@ -1797,8 +1802,7 @@
"os-locale": { "os-locale": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk="
"dev": true
}, },
"os-tmpdir": { "os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
@ -1815,8 +1819,7 @@
"parse-json": { "parse-json": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck="
"dev": true
}, },
"parse5": { "parse5": {
"version": "1.5.1", "version": "1.5.1",
@ -1827,8 +1830,7 @@
"path-exists": { "path-exists": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s="
"dev": true
}, },
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
@ -1845,8 +1847,7 @@
"path-type": { "path-type": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE="
"dev": true
}, },
"performance-now": { "performance-now": {
"version": "2.1.0", "version": "2.1.0",
@ -1856,20 +1857,17 @@
"pify": { "pify": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
"dev": true
}, },
"pinkie": { "pinkie": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
"dev": true
}, },
"pinkie-promise": { "pinkie-promise": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o="
"dev": true
}, },
"prelude-ls": { "prelude-ls": {
"version": "1.1.2", "version": "1.1.2",
@ -1947,14 +1945,12 @@
"read-pkg": { "read-pkg": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg="
"dev": true
}, },
"read-pkg-up": { "read-pkg-up": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI="
"dev": true
}, },
"redeyed": { "redeyed": {
"version": "1.0.1", "version": "1.0.1",
@ -2024,14 +2020,12 @@
"require-directory": { "require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
"dev": true
}, },
"require-main-filename": { "require-main-filename": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
"dev": true
}, },
"requireg": { "requireg": {
"version": "0.1.7", "version": "0.1.7",
@ -2084,14 +2078,12 @@
"semver": { "semver": {
"version": "5.4.1", "version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
"integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
"dev": true
}, },
"set-blocking": { "set-blocking": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
"dev": true
}, },
"shellwords": { "shellwords": {
"version": "0.1.1", "version": "0.1.1",
@ -2125,20 +2117,17 @@
"spdx-correct": { "spdx-correct": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
"integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A="
"dev": true
}, },
"spdx-expression-parse": { "spdx-expression-parse": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
"integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
"dev": true
}, },
"spdx-license-ids": { "spdx-license-ids": {
"version": "1.2.2", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
"integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
"dev": true
}, },
"sprintf-js": { "sprintf-js": {
"version": "1.0.3", "version": "1.0.3",
@ -2165,8 +2154,7 @@
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M="
"dev": true
}, },
"stringstream": { "stringstream": {
"version": "0.0.5", "version": "0.0.5",
@ -2176,14 +2164,12 @@
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
"dev": true
}, },
"strip-bom": { "strip-bom": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4="
"dev": true
}, },
"strip-json-comments": { "strip-json-comments": {
"version": "0.1.3", "version": "0.1.3",
@ -2193,8 +2179,7 @@
"supports-color": { "supports-color": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
"dev": true
}, },
"symbol-tree": { "symbol-tree": {
"version": "3.2.2", "version": "3.2.2",
@ -2296,8 +2281,7 @@
"validate-npm-package-license": { "validate-npm-package-license": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
"integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w="
"dev": true
}, },
"verror": { "verror": {
"version": "1.10.0", "version": "1.10.0",
@ -2358,8 +2342,7 @@
"which-module": { "which-module": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
"integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
"dev": true
}, },
"window-size": { "window-size": {
"version": "0.1.0", "version": "0.1.0",
@ -2383,8 +2366,7 @@
"wrap-ansi": { "wrap-ansi": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU="
"dev": true
}, },
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
@ -2407,8 +2389,7 @@
"y18n": { "y18n": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
"integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
"dev": true
}, },
"yargs": { "yargs": {
"version": "6.6.0", "version": "6.6.0",

View File

@ -13,8 +13,8 @@
"cli-color": "^1.1.0", "cli-color": "^1.1.0",
"clui": "^0.3.1", "clui": "^0.3.1",
"commander": "^2.9.0", "commander": "^2.9.0",
"eyes": "^0.1.8",
"js-yaml": "^3.7.0", "js-yaml": "^3.7.0",
"jsome": "^2.3.26",
"request": "^2.83.0", "request": "^2.83.0",
"request-promise-native": "^1.0.5", "request-promise-native": "^1.0.5",
"requireg": "^0.1.6" "requireg": "^0.1.6"

View File

@ -4,7 +4,7 @@ const RequestList = require('./requestList');
const RequestCache = require('./requestCache'); const RequestCache = require('./requestCache');
class Request { class Request {
constructor(req, list) { constructor(req) {
let config = {}; let config = {};
this.originalRequest = req; this.originalRequest = req;
@ -21,11 +21,13 @@ class Request {
this.PARAMS = PARAMS; this.PARAMS = PARAMS;
this.ALIAS = ALIAS; this.ALIAS = ALIAS;
this.DEPENDENCIES = this.findDependencies(req);
this.DOCUMENTATION = DOCUMENTATION; this.DOCUMENTATION = DOCUMENTATION;
this.list = list; if (typeof this.ALIAS === 'undefined') {
console.info(`${REQUEST} is missing an alias.`);
}
this.DEPENDENCIES = this.findDependencies(req);
} }
parseRequest(request) { parseRequest(request) {
@ -54,10 +56,10 @@ class Request {
return set; return set;
} }
async exec(modifiers = []) { async exec(modifiers = [], requestList) {
let dependencies = Array.from(this.DEPENDENCIES); let dependencies = Array.from(this.DEPENDENCIES);
let cache = await this.list.fetchDependencies(dependencies); let cache = await requestList.fetchDependencies(dependencies);
let settings = { let settings = {
endpoint: cache.parse(this.ENDPOINT), endpoint: cache.parse(this.ENDPOINT),
@ -103,7 +105,7 @@ class Request {
cache.add(`$${this.ALIAS}`, results); cache.add(`$${this.ALIAS}`, results);
return results; return results;
} catch({error}) { } catch({ error }) {
throw new Error(error); throw new Error(error);
} }
} }

View File

@ -20,7 +20,7 @@ class RequestList {
} }
try { try {
let response = await request.exec(this.modifiers); let response = await request.exec(this.modifiers, this);
this.modifiers.forEach(mod => { this.modifiers.forEach(mod => {
if (typeof mod.postResponse !== 'undefined') { if (typeof mod.postResponse !== 'undefined') {
@ -44,18 +44,26 @@ class RequestList {
} }
loadRequests(doc) { loadRequests(doc) {
let requestKeys = Object.keys(doc).filter(key => { let requests = Object.keys(doc).filter(key => {
let verb = key.split(' ')[0].toUpperCase(); let verb = key.split(' ')[0].toUpperCase();
return httpVerbs.indexOf(verb) > -1; return httpVerbs.indexOf(verb) > -1;
}); });
return requestKeys.map(key => { return requests.map(request => {
doc[key] = doc[key] || {}; let type = typeof doc[request];
doc[key].HOST = this.config.HOST; if (type === 'string') {
doc[key].request = key; doc[request] = {
ALIAS: doc[request]
};
}
return new Request(doc[key], this); doc[request] = doc[request] || {};
doc[request].HOST = this.config.HOST;
doc[request].request = request;
return new Request(doc[request]);
}); });
} }
@ -73,7 +81,7 @@ class RequestList {
settings = plugin[name]; settings = plugin[name];
} }
return new (requireg(name))(settings) return new (requireg(name))(settings);
}); });
} }
} }