From 32b9f0f52388b02416d2601991c8eb6f27e5b2b9 Mon Sep 17 00:00:00 2001 From: David Diaz Date: Thu, 23 Nov 2017 09:42:01 -0600 Subject: [PATCH] Cleaning the CLI tool. Small refactorings all around. If a string is passed to a request configuration its now considered that request's alias. --- __tests__/requestList.spec.js | 3 +- bin/beau | 39 ++++---- examples/jsonplaceholder.yml | 2 + package-lock.json | 175 +++++++++++++++------------------- package.json | 2 +- request.js | 16 ++-- requestList.js | 24 +++-- 7 files changed, 131 insertions(+), 130 deletions(-) diff --git a/__tests__/requestList.spec.js b/__tests__/requestList.spec.js index 63109f5..35204a6 100644 --- a/__tests__/requestList.spec.js +++ b/__tests__/requestList.spec.js @@ -5,6 +5,7 @@ describe('RequestList', () => { let doc = { 'POST /session': null, 'Not a Request': null, + 'GET /post': 'get-posts', 'POST /user': { alias: 'user', payload: { @@ -19,7 +20,7 @@ describe('RequestList', () => { let requests = new RequestList(doc, { HOST: host }); let request = requests.list[0]; - expect(requests.list.length).toBe(2); + expect(requests.list.length).toBe(3); expect(request.VERB).toBe('POST'); expect(request.ENDPOINT).toBe(host + '/session'); }); diff --git a/bin/beau b/bin/beau index ac8b4d6..c184a47 100755 --- a/bin/beau +++ b/bin/beau @@ -6,7 +6,7 @@ const yaml = require('js-yaml'); const fs = require('fs'); const { Line, Spinner } = require('clui'); const clc = require('cli-color'); -const eyes = require('eyes'); +const jsome = require('jsome'); const package = require('../package.json'); @@ -58,9 +58,10 @@ if ( if (program.cleanList) { beau.requests.list.forEach(({ VERB, ALIAS, ENDPOINT, DOCUMENTATION }) => { if (typeof DOCUMENTATION !== 'undefined') { - let {title, description} = DOCUMENTATION; - console.log(`${VERB}\t${ALIAS}\t${ENDPOINT}\t${title}\t${description}`); - + let { title, description } = DOCUMENTATION; + console.log( + `${VERB}\t${ALIAS}\t${ENDPOINT}\t${title}\t${description}` + ); } else { console.log(`${VERB}\t${ALIAS}\t${ENDPOINT}`); } @@ -88,15 +89,22 @@ if (program.list) { } if (program.cleanRequest) { - beau.requests.execByAlias(program.cleanRequest).then(res => { - let {status, headers, body} = res.response; - let {endpoint} = res.request; + beau.requests + .execByAlias(program.cleanRequest) + .then(res => { + let { status, headers, body } = res.response; + let { endpoint } = res.request; - process.stdout.write(status + '\n'); - process.stdout.write(endpoint + '\n'); - process.stdout.write(JSON.stringify(headers) + '\n'); - process.stdout.write(JSON.stringify(body) + '\n'); - }); + console.log(status); + console.log(endpoint); + console.log(JSON.stringify(headers)); + console.log(JSON.stringify(body)); + }) + .catch(err => { + new Line().output(); + console.error(err); + process.exit(1); + }); } if (program.request) { @@ -131,17 +139,16 @@ if (program.request) { new Line().output(); let maxLength = +(program.truncate || res.length); - let inspect = eyes.inspector({ maxLength }); if (program.verbose) { - inspect(res); + jsome(res); } else { - inspect(body); + jsome(body); } process.exit(0); }) - .catch(function(err) { + .catch(err => { new Line().output(); console.error(err); process.exit(1); diff --git a/examples/jsonplaceholder.yml b/examples/jsonplaceholder.yml index 130bb8b..663eaba 100644 --- a/examples/jsonplaceholder.yml +++ b/examples/jsonplaceholder.yml @@ -1,6 +1,8 @@ version: 1 host: 'http://jsonplaceholder.typicode.com' +GET /posts/1: get-post + GET /posts/: alias: posts documentation: diff --git a/package-lock.json b/package-lock.json index 154cfd7..b7b8730 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,8 +58,7 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "ansicolors": { "version": "0.2.1", @@ -293,8 +292,7 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "callsites": { "version": "2.0.0", @@ -330,8 +328,7 @@ "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" }, "ci-info": { "version": "1.1.1", @@ -422,8 +419,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "colors": { "version": "1.0.3", @@ -520,8 +516,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "deep-extend": { "version": "0.2.11", @@ -572,8 +567,7 @@ "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=" }, "es5-ext": { "version": "0.10.35", @@ -598,8 +592,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.8.1", @@ -678,11 +671,6 @@ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "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": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", @@ -721,8 +709,7 @@ "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" }, "for-in": { "version": "1.0.2", @@ -755,8 +742,7 @@ "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, "getpass": { "version": "0.1.7", @@ -797,8 +783,7 @@ "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "growly": { "version": "1.3.0", @@ -839,8 +824,7 @@ "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" }, "has-flag": { "version": "1.0.0", @@ -867,8 +851,7 @@ "hosted-git-info": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", - "dev": true + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, "html-encoding-sniffer": { "version": "1.0.1", @@ -912,14 +895,12 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { "version": "1.1.5", @@ -930,8 +911,7 @@ "is-builtin-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=" }, "is-ci": { "version": "1.0.10", @@ -972,8 +952,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" }, "is-glob": { "version": "2.0.1", @@ -1012,8 +991,7 @@ "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "isarray": { "version": "1.0.0", @@ -1411,6 +1389,38 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "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": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -1470,8 +1480,7 @@ "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=" }, "levn": { "version": "0.3.0", @@ -1482,8 +1491,7 @@ "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=" }, "lodash": { "version": "4.17.4", @@ -1541,8 +1549,7 @@ "lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" }, "lodash.clonedeep": { "version": "3.0.2", @@ -1724,8 +1731,7 @@ "normalize-package-data": { "version": "2.4.0", "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==", - "dev": true + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" }, "normalize-path": { "version": "2.1.1", @@ -1736,8 +1742,7 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "nwmatcher": { "version": "1.4.3", @@ -1797,8 +1802,7 @@ "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=" }, "os-tmpdir": { "version": "1.0.2", @@ -1815,8 +1819,7 @@ "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=" }, "parse5": { "version": "1.5.1", @@ -1827,8 +1830,7 @@ "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=" }, "path-is-absolute": { "version": "1.0.1", @@ -1845,8 +1847,7 @@ "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=" }, "performance-now": { "version": "2.1.0", @@ -1856,20 +1857,17 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" }, "prelude-ls": { "version": "1.1.2", @@ -1947,14 +1945,12 @@ "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=" }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=" }, "redeyed": { "version": "1.0.1", @@ -2024,14 +2020,12 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "requireg": { "version": "0.1.7", @@ -2084,14 +2078,12 @@ "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "shellwords": { "version": "0.1.1", @@ -2125,20 +2117,17 @@ "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" }, "spdx-expression-parse": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" }, "spdx-license-ids": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, "sprintf-js": { "version": "1.0.3", @@ -2165,8 +2154,7 @@ "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" }, "stringstream": { "version": "0.0.5", @@ -2176,14 +2164,12 @@ "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" }, "strip-json-comments": { "version": "0.1.3", @@ -2193,8 +2179,7 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "symbol-tree": { "version": "3.2.2", @@ -2296,8 +2281,7 @@ "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=" }, "verror": { "version": "1.10.0", @@ -2358,8 +2342,7 @@ "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" }, "window-size": { "version": "0.1.0", @@ -2383,8 +2366,7 @@ "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=" }, "wrappy": { "version": "1.0.2", @@ -2407,8 +2389,7 @@ "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yargs": { "version": "6.6.0", diff --git a/package.json b/package.json index 62d7d8e..604579a 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "cli-color": "^1.1.0", "clui": "^0.3.1", "commander": "^2.9.0", - "eyes": "^0.1.8", "js-yaml": "^3.7.0", + "jsome": "^2.3.26", "request": "^2.83.0", "request-promise-native": "^1.0.5", "requireg": "^0.1.6" diff --git a/request.js b/request.js index f976b5a..43700ce 100644 --- a/request.js +++ b/request.js @@ -4,7 +4,7 @@ const RequestList = require('./requestList'); const RequestCache = require('./requestCache'); class Request { - constructor(req, list) { + constructor(req) { let config = {}; this.originalRequest = req; @@ -21,11 +21,13 @@ class Request { this.PARAMS = PARAMS; this.ALIAS = ALIAS; - this.DEPENDENCIES = this.findDependencies(req); - 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) { @@ -54,10 +56,10 @@ class Request { return set; } - async exec(modifiers = []) { + async exec(modifiers = [], requestList) { let dependencies = Array.from(this.DEPENDENCIES); - let cache = await this.list.fetchDependencies(dependencies); + let cache = await requestList.fetchDependencies(dependencies); let settings = { endpoint: cache.parse(this.ENDPOINT), @@ -103,7 +105,7 @@ class Request { cache.add(`$${this.ALIAS}`, results); return results; - } catch({error}) { + } catch({ error }) { throw new Error(error); } } diff --git a/requestList.js b/requestList.js index 6c598b1..b7103df 100644 --- a/requestList.js +++ b/requestList.js @@ -20,7 +20,7 @@ class RequestList { } try { - let response = await request.exec(this.modifiers); + let response = await request.exec(this.modifiers, this); this.modifiers.forEach(mod => { if (typeof mod.postResponse !== 'undefined') { @@ -44,18 +44,26 @@ class RequestList { } loadRequests(doc) { - let requestKeys = Object.keys(doc).filter(key => { + let requests = Object.keys(doc).filter(key => { let verb = key.split(' ')[0].toUpperCase(); return httpVerbs.indexOf(verb) > -1; }); - return requestKeys.map(key => { - doc[key] = doc[key] || {}; + return requests.map(request => { + let type = typeof doc[request]; - doc[key].HOST = this.config.HOST; - doc[key].request = key; + if (type === 'string') { + 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]; } - return new (requireg(name))(settings) + return new (requireg(name))(settings); }); } }