Skip to content

Commit

Permalink
Migrate build system to ESLint
Browse files Browse the repository at this point in the history
JSHint's ES6 support is shaky, and its development has stalled as of late.
Since ESLint can do by itself both JSHint and JSCS' jobs, this commit replaces them.
Gulp and its related dependencies are also hereby removed.
  • Loading branch information
Slayer95 committed Nov 8, 2015
1 parent 9a52fe3 commit 7dddb66
Show file tree
Hide file tree
Showing 31 changed files with 358 additions and 640 deletions.
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
/config/*
/logs/*
/node_modules
/gulp-cache
/eslint-cache
/chat-plugins/private.js
npm-debug.log
.eslintcache*

# boilerplate #
###############
Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ node_js:
cache:
directories:
- node_modules
- gulp-cache
- eslint-cache
9 changes: 6 additions & 3 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,12 @@ try {
Config.port = cloudenv.get('PORT', Config.port);
} catch (e) {}

if (require.main === module && process.argv[2] && parseInt(process.argv[2])) {
Config.port = parseInt(process.argv[2]);
Config.ssl = null;
if (require.main === module && process.argv[2]) {
let port = parseInt(process.argv[2]); // eslint-disable-line radix
if (port) {
Config.port = port;
Config.ssl = null;
}
}

/*********************************************************
Expand Down
4 changes: 2 additions & 2 deletions battle-engine.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ let Battle, BattleSide, BattlePokemon;

let Battles = Object.create(null);

require('./repl.js').start('battle-engine-', process.pid, function (cmd) { return eval(cmd); }); // eslint-disable-line no-eval
require('./repl.js').start('battle-engine-', process.pid, function (cmd) { return eval(cmd); });

// Receive and process a message sent using Simulator.prototype.send in
// another process.
Expand Down Expand Up @@ -129,7 +129,7 @@ process.on('message', function (message) {
}
} else if (data[1] === 'eval') {
try {
eval(data[2]); // eslint-disable-line no-eval
eval(data[2]);
} catch (e) {}
}
}
Expand Down
2 changes: 1 addition & 1 deletion chat-plugins/info.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

const RESULTS_MAX_LENGTH = 10;

let commands = exports.commands = {
let commands = exports.commands = { // eslint-disable-line no-unused-vars

ip: 'whois',
rooms: 'whois',
Expand Down
3 changes: 2 additions & 1 deletion chat-plugins/jeopardy.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,9 @@ let JeopardyQuestions = (function () {

JeopardyQuestions.prototype.export = function (category, start, end) {
let data = [];
for (let q = start; q < end; ++q)
for (let q = start; q < end; ++q) {
data.push(this.grid[category][q]);
}
return data;
};
JeopardyQuestions.prototype.import = function (category, start, end, data) {
Expand Down
2 changes: 1 addition & 1 deletion cidr.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,6 @@ let checker = exports.checker = function (cidr) {
};
};

let check = exports.check = function (cidr, ip) {
let check = exports.check = function (cidr, ip) { // eslint-disable-line no-unused-vars
return checker(cidr)(ip);
};
4 changes: 3 additions & 1 deletion commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const MAX_REASON_LENGTH = 300;
const MUTE_LENGTH = 7 * 60 * 1000;
const HOURMUTE_LENGTH = 60 * 60 * 1000;

let commands = exports.commands = {
let commands = exports.commands = { // eslint-disable-line no-unused-vars

version: function (target, room, user) {
if (!this.canBroadcast()) return;
Expand Down Expand Up @@ -2048,9 +2048,11 @@ let commands = exports.commands = {

if (!this.broadcasting) this.sendReply('||>> ' + target);
try {
/* eslint-disable no-unused-vars */
let battle = room.battle;
let me = user;
this.sendReply('||<< ' + eval(target));
/* eslint-enable no-unused-vars */
} catch (e) {
this.sendReply('||<< error: ' + e.message);
let stack = '||' + ('' + e.stack).replace(/\n/g, '\n||');
Expand Down
167 changes: 167 additions & 0 deletions dev-tools/eslint/config-base.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
const os = require('os');

module.exports = {
"env": {
"node": true,
"es6": true
},
"globals": {
"Config": false, "Monitor": false, "toId": false, "Tools": false, "LoginServer": false,
"Users": false, "Rooms": false, "Verifier": false, "CommandParser": false, "Simulator": false,
"Tournaments": false, "Dnsbl": false, "Cidr": false, "Sockets": false, "TeamValidator": false, "Ladders": false
},
"rules": {
"comma-dangle": [2, "never"],
"no-cond-assign": [2, "except-parens"],
"no-console": 0,
"no-constant-condition": 0,
"no-control-regex": 0,
"no-debugger": 2,
"no-dupe-args": 2,
"no-dupe-keys": 2,
"no-duplicate-case": 1,
"no-empty-character-class": 2,
"no-empty": 0,
"no-ex-assign": 2,
"disallow-extra-boolean-casts": 0,
"no-extra-parens": 0,
"no-extra-semi": 2,
"no-func-assign": 2,
"no-inner-declarations": 2,
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
"no-negated-in-lhs": 2,
"no-obj-calls": 2,
"no-regex-spaces": 2,
"no-sparse-arrays": 2,
"no-unexpected-multiline": 2,
"no-unreachable": 2,
"use-isnan": 2,
"valid-jsdoc": 0,
"valid-typeof": 2,

"block-scoped-var": 2,
"complexity": 0,
"consistent-return": 0,
"curly": [2, "multi-line", "consistent"],
"default-case": 0,
"dot-location": [2, "property"],
"dot-notation": 0,
"eqeqeq": 2,
"no-caller": 2,
"no-case-declarations": 0,
"no-div-regex": 2,
"no-else-return": 0,
"no-empty-label": 2,
"no-empty-pattern": 1,
"no-eval": 0,
"no-implied-eval": 2,
"no-extend-native": 2,
"no-extra-bind": 1,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-implicit-coercion": 0,
"no-invalid-this": 0,
"no-lone-blocks": 0,
"no-loop-func": 0,
"no-magic-numbers": 0,
"no-multi-spaces": 0,
"no-multi-str": 2,
"no-native-reassign": 2,
"no-new-func": 2,
"no-new-wrappers": 2,
"no-new": 2,
"no-octal-escape": 2,
"no-octal": 1,
"no-param-reassign": 0,
"no-process-env": 0,
"no-proto": 2,
"no-redeclare": 2,
"no-return-assign": [2, "except-parens"],
"no-self-compare": 2,
"no-sequences": 1,
"no-throw-literal": 2,
"no-unused-expressions": 2,
"no-useless-call": 2,
"no-useless-concat": 0,
"no-void": 0,
"no-warning-comments": 0,
"no-with": 2,
"radix": 1,
"vars-on-top": 0,
"wrap-iife": [2, "inside"],
"yoda": 0,
"strict": 0,
"init-declarations": 0,
"no-delete-var": 2,
"no-label-var": 2,
"no-shadow-restricted-names": 2,
"no-shadow": 0,
"no-undef-init": 0,
"no-undef": [2, {"typeof": true}],
"no-undefined": 0,
"no-unused-vars": [1, {"args": "none"}],
"no-use-before-define": [2, "nofunc"],

"no-new-require": 2,

"array-bracket-spacing": [2, "never"],
"block-spacing": 0,
"brace-style": [2, "1tbs", {"allowSingleLine": true}],
"camelcase": 0,
"comma-spacing": [2, {"before": false, "after": true}],
"comma-style": [2, "last"],
"computed-property-spacing": [2, "never"],
"consistent-this": 0,
"eol-last": os.EOL === '\n' ? [2, "unix"] : 0,
"func-names": 0,
"func-style": 0,
"id-length": 0,
"id-match": 0,
"indent": [2, "tab"],
"key-spacing": 0,
"linebreak-style": os.EOL === '\n' ? [2, "unix"] : 0,
"lines-around-comment": 0,
"max-nested-callbacks": 0,
"new-cap": 2,
"new-parens": 2,
"newline-after-var": 0,
"no-array-constructor": 2,
"no-continue": 0,
"no-inline-comments": 0,
"no-lonely-if": 0,
"no-mixed-spaces-and-tabs": [2, "smart-tabs"],
"no-multiple-empty-lines": [2, {"max": 2, "maxEOF": 1}],
"no-negated-condition": 0,
"no-nested-ternary": 0,
"no-new-object": 2,
"no-spaced-func": 2,
"no-ternary": 0,
"no-trailing-spaces": 2,
"no-underscore-dangle": 0,
"no-unneeded-ternary": 2,
"object-curly-spacing": [2, "never"],
"one-var": 0,
"operator-assignment": 0,
"operator-linebreak": [2, "after"],
"padded-blocks": [2, "never"],
"quote-props": 0,
"quotes": 0,
"require-jsdoc": 0,
"semi-spacing": [2, {"before": false, "after": true}],
"semi": [2, "always"],
"sort-vars": 0,
"space-after-keywords": [2, "always"],
"space-before-blocks": [2, "always"],
"space-before-function-paren": [2, {"anonymous": "always", "named": "never"}],
"space-before-keywords": [2, "always"],
"space-in-parens": [2, "never"],
"space-infix-ops": 2,
"space-return-throw-case": 2,
"space-unary-ops": [2, {"words": true, "nonwords": false}],
"spaced-comment": 0,
"wrap-regex": 0,

"validate-conditionals": 2
}
};
10 changes: 10 additions & 0 deletions dev-tools/eslint/config-compat.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module.exports = {
"extends": "./config-base.js",
"env": {
"browser": true,
"es6": false
},
"rules": {
"quote-props": [2, "as-needed", {"keywords": true, "unnecessary": false}]
}
};
6 changes: 6 additions & 0 deletions dev-tools/eslint/config-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
"extends": "./config-base.js",
"rules": {
"comma-dangle": 0
}
};
7 changes: 7 additions & 0 deletions dev-tools/eslint/config-data-compact.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module.exports = {
"extends": "./config-data.js",
"rules": {
"key-spacing": [2, {"beforeColon": false, "afterColon": false}],
"indent": 0,
}
};
17 changes: 17 additions & 0 deletions dev-tools/eslint/config-data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module.exports = {
"extends": "./config-base.js",
"rules": {
"comma-dangle": [2, "never"],
"comma-spacing": [2, {"before": false, "after": false}],
"no-restricted-syntax": [2,
"ReturnStatement", "LabeledStatement", "BreakStatement", "ContinueStatement",
"IfStatement", "SwitchStatement",
"WhileStatement", "DoWhileStatement", "ForStatement", "ForInStatement",
"FunctionDeclaration", "VariableDeclaration",
"FunctionExpression",
"UpdateExpression",
"BinaryExpression", "LogicalExpression",
"ConditionalExpression", "CallExpression", "NewExpression", "SequenceExpression"
]
}
};
9 changes: 9 additions & 0 deletions dev-tools/eslint/config-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module.exports = {
"extends": "./config-base.js",
"env": {
"mocha": true
},
"globals": {
"BattleEngine": false
},
};
Loading

0 comments on commit 7dddb66

Please sign in to comment.