Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor and improvements: Prettier, Lint, and Bugfix #62

Open
wants to merge 10 commits into
base: develop
Choose a base branch
from
Open
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules/
test/coverage/
38 changes: 38 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"env": {
"commonjs": true,
"es6": true,
"node": true
},
"extends": [
"plugin:@coorpacademy/coorpacademy/core",
"plugin:@coorpacademy/coorpacademy/mocha",
"plugin:@coorpacademy/coorpacademy/es20XX",
"plugin:@coorpacademy/coorpacademy/lodash-fp",
"plugin:@coorpacademy/coorpacademy/prettier"
],
"parserOptions": {
"ecmaVersion": 2017,
"sourceType": "module"
},
"plugins": [
"@coorpacademy/coorpacademy"
],
"rules": {
"promise/no-native": "off",
"strict": "off",
"fp/no-arguments": "warn",
"no-param-reassign": "warn",
"prefer-rest-params": "warn",
"fp/no-loops": "warn"
},
"overrides": [
{
"files": [ "bin/*" ],
"rules": {
"no-console": "off",
"no-continue": "warn"
}
}
]
}
9 changes: 7 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
language: node_js
node_js:
- "4"
- "5"
- "6"
- "7"
- "8"
- "9"
- "10"
- "node"

install:
- npm install

script:
- npm run lint
- npm test
131 changes: 70 additions & 61 deletions bin/dogapi
Original file line number Diff line number Diff line change
@@ -1,81 +1,90 @@
#!/usr/bin/env node
var dogapi = require("../");
var json = require("../lib/json");
var minimist = require("minimist");
var rc = require("rc");
var EOL = require("os").EOL;
const dogapi = require('..');
const json = require('../lib/json');
const minimist = require('minimist');
const rc = require('rc');
const EOL = require('os').EOL;

var config = rc("dogapi", {
api_key: null,
app_key: null
const config = rc('dogapi', {
api_key: null,
app_key: null
});
dogapi.initialize(config);

var usage = [
"Usage:",
" dogapi --help",
" dogapi <command> --help",
" dogapi --version",
" dogapi now",
" dogapi past <seconds-ago>",
" dogapi future <seconds-ahead>"
let usage = [
'Usage:',
' dogapi --help',
' dogapi <command> --help',
' dogapi --version',
' dogapi now',
' dogapi past <seconds-ago>',
' dogapi future <seconds-ahead>'
];
var help = [];
for(var key in dogapi){
if(!dogapi.hasOwnProperty(key)){
continue;
} else if(!dogapi[key].hasOwnProperty("getUsage") || typeof dogapi[key].getUsage !== "function"){
continue;
} else if(!dogapi[key].hasOwnProperty("handleCli") || typeof dogapi[key].handleCli !== "function"){
continue;
}
usage = usage.concat(dogapi[key].getUsage());
let help = [];
for (const key in dogapi) {
if (!dogapi.hasOwnProperty(key)) {
continue;
} else if (
!dogapi[key].hasOwnProperty('getUsage') ||
typeof dogapi[key].getUsage !== 'function'
) {
continue;
} else if (
!dogapi[key].hasOwnProperty('handleCli') ||
typeof dogapi[key].handleCli !== 'function'
) {
continue;
}
usage = usage.concat(dogapi[key].getUsage());

if(dogapi[key].hasOwnProperty("getHelp") && typeof dogapi[key].getHelp === "function"){
help = help.concat([""], dogapi[key].getHelp());
}
if (dogapi[key].hasOwnProperty('getHelp') && typeof dogapi[key].getHelp === 'function') {
help = help.concat([''], dogapi[key].getHelp());
}
}

usage = usage.concat(help);
usage = usage.join(EOL);
var args = minimist(process.argv);
const args = minimist(process.argv);

var command = args._[2];
var subcommand = args._[3];
let command = args._[2];
const subcommand = args._[3];

// this is the one unusual case
if(command === "servicecheck"){
command = "serviceCheck";
if (command === 'servicecheck') {
command = 'serviceCheck';
}

if(command === "now"){
console.log(dogapi.now());
} else if(command === "past" && args._.length > 3){
console.log(dogapi.now() - parseInt(args._[args._.length - 1]));
} else if(command === "future" && args._.length > 3){
console.log(dogapi.now() + parseInt(args._[args._.length - 1]));
} else if(dogapi.hasOwnProperty(command)){
if(subcommand){
dogapi[command].handleCli(subcommand, args, function(err, res){
if(err){
console.error(json.stringify(err, null, ' '));
process.exit(1);
} else {
if(res === ""){
res = "success";
}
console.log(json.stringify(res, null, ' '));
}
});
} else {
var commandUsage = ["Usage:"].concat(dogapi[command].getUsage());
if(dogapi[command].hasOwnProperty("getHelp") && typeof dogapi[command].getHelp === "function"){
commandUsage = commandUsage.concat([EOL], dogapi[command].getHelp());
if (command === 'now') {
console.log(dogapi.now());
} else if (command === 'past' && args._.length > 3) {
console.log(dogapi.now() - parseInt(args._[args._.length - 1]));
} else if (command === 'future' && args._.length > 3) {
console.log(dogapi.now() + parseInt(args._[args._.length - 1]));
} else if (dogapi.hasOwnProperty(command)) {
if (subcommand) {
dogapi[command].handleCli(subcommand, args, function(err, res) {
if (err) {
console.error(json.stringify(err, null, ' '));
process.exit(1);
} else {
if (res === '') {
res = 'success';
}
console.log(commandUsage.join(EOL).replace(/\$\{command\}/g, " dogapi"));
console.log(json.stringify(res, null, ' '));
}
});
} else {
let commandUsage = ['Usage:'].concat(dogapi[command].getUsage());
if (
dogapi[command].hasOwnProperty('getHelp') &&
typeof dogapi[command].getHelp === 'function'
) {
commandUsage = commandUsage.concat([EOL], dogapi[command].getHelp());
}
} else if(args.version){
console.log(require("../package.json").version);
console.log(commandUsage.join(EOL).replace(/\$\{command\}/g, ' dogapi'));
}
} else if (args.version) {
console.log(require('../package.json').version);
} else {
console.log(usage);
console.log(usage);
}
10 changes: 10 additions & 0 deletions examples/new-interface.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const Dogapi = require('../lib');

const options = {
api_key: 'YOUR_KEY_HERE',
app_key: 'YOUR_KEY_HERE'
};

const dogapi = new Dogapi(options);

dogapi.metric.send('test', 1);
10 changes: 10 additions & 0 deletions examples/original-interface.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const dogapi = require('../lib');

const options = {
api_key: 'YOUR_KEY_HERE',
app_key: 'YOUR_KEY_HERE'
};

dogapi.initialize(options);

dogapi.metric.send('test', 1);
Loading