Skip to content

Commit

Permalink
Merge pull request #7 from DonutEspresso/let-const
Browse files Browse the repository at this point in the history
update eslint to allow for let and const usage
  • Loading branch information
DonutEspresso committed Jan 24, 2017
2 parents de3d8c9 + 769b66f commit bdf3412
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 106 deletions.
68 changes: 41 additions & 27 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
{
// eslint: recommended automatically enables most/all rules from the
// possible errors section and more:
// http://eslint.org/docs/rules/#possible-errors
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 6
},
"env": {
"browser": false,
"node": true,
"es6": true
},
"rules": {
// possible errors
"comma-dangle": [ 2 ],
"no-cond-assign": [ 2 ],
"no-console": [ 2 ],
"no-constant-condition": [ 2 ],
"no-control-regex": [ 2 ],
"no-debugger": [ 2 ],
Expand All @@ -21,27 +25,23 @@
"no-extra-boolean-cast": [ 2 ],
"no-extra-semi": [ 2 ],
"no-func-assign": [ 2 ],
// this is for variable hoisting, not necessary if we use block scoped declarations
// "no-inner-declarations": [ 2, "both" ],
"no-invalid-regexp": [ 2 ],
"no-irregular-whitespace": [ 2 ],
"no-negated-in-lhs": [ 2 ],
// when IE8 dies
"no-reserved-keys": [ 0 ],
"no-regex-spaces": [ 2 ],
"no-sparse-arrays": [ 2 ],
"no-unreachable": [ 2 ],
"use-isnan": [ 2 ],
// should we enforce valid documentation comments?
// i.e., if you do documentation, do it right
"valid-typeof": [ 2 ],
"valid-jsdoc": [ 2, {
"requireReturnDescription": false,
"requireReturnDescription": false
}],
"valid-typeof": [ 2 ],

// best practices
"array-callback-return": [ 2 ],
"block-scoped-var": [ 2 ],
// warning for now until we get them fixed
"complexity": [ 1 ],
"consistent-return": [ 2 ],
"curly": [ 2 ],
"default-case": [ 2 ],
Expand All @@ -50,39 +50,50 @@
"guard-for-in": [ 2 ],
"no-alert": [ 2 ],
"no-caller": [ 2 ],
"no-case-declarations": [ 2 ],
"no-div-regex": [ 2 ],
"no-empty-function": [ 2 ],
"no-empty-pattern": [ 2 ],
"no-eq-null": [ 2 ],
"no-eval": [ 2 ],
"no-extend-native": [ 2 ],
"no-extra-bind": [ 2 ],
"no-extra-label": [ 2 ],
"no-fallthrough": [ 2 ],
"no-floating-decimal": [ 2 ],
"no-implicit-coercion": [ 2 ],
"no-implied-eval": [ 2 ],
"no-iterator": [ 2 ],
"no-labels": [ 2 ],
"no-lone-blocks": [ 2 ],
"no-loop-func": [ 2 ],
"no-magic-numbers": [ 0 ],
"no-multi-spaces": [ 0 ],
"no-native-reassign": [ 2 ],
"no-new": [ 2 ],
"no-new-func": [ 2 ],
"no-new-wrappers": [ 2 ],
"no-octal": [ 2 ],
"no-octal-escape": [ 2 ],
// "no-param-reassign": [ 2 ],
"no-param-reassign": [ 2 ],
"no-proto": [ 2 ],
"no-redeclare": [ 2 ],
"no-return-assign": [ 2 ],
"no-script-url": [ 2 ],
"no-self-assign": [ 2 ],
"no-self-compare": [ 2 ],
"no-sequences": [ 2 ],
"no-throw-literal": [ 2 ],
"no-unmodified-loop-condition": [ 2 ],
"no-unused-expressions": [ 2 ],
"no-unused-labels": [ 2 ],
"no-useless-call": [ 2 ],
"no-useless-concat": [ 2 ],
"no-void": [ 2 ],
"no-warning-comments": [ 1 ],
"no-with": [ 2 ],
// "vars-on-top": [ 2 ],
"wrap-iife": [ 2 ],
"yoda": [ 0 ],
"yoda": [ 2, "never" ],

// strict mode
"strict": [ 2, "global" ],
Expand All @@ -94,29 +105,32 @@
"no-shadow-restricted-names": [ 2 ],
"no-undef": [ 2 ],
"no-undef-init": [ 2 ],
"no-undefined": [ 0 ],
"no-undefined": [ 2 ],
"no-unused-vars": [ 2, { "vars": "all", "args": "none" } ],
"no-use-before-define": [ 2, "nofunc" ],

// node.js
"callback-return": [ 2, [ "callback", "cb", "cb1", "cb2", "cb3", "next", "innerCb", "done" ]],
"global-require": [ 2 ],
"handle-callback-err": [ 2, "^.*(e|E)rr" ],
"no-mixed-requires": [ 2 ],
"no-new-require": [ 2 ],
"no-restricted-modules": [ 2, "" ],
"no-path-concat": [ 2 ],
"no-process-exit": [ 0 ],

// ES6
"generator-star-spacing": [ 2, "after" ],

// stylistic
"camelcase": [ 2, { "properties": "never" } ],
"eol-last": [ 0 ],
"key-spacing": [ 0 ],
"no-mixed-spaces-and-tabs": [ 2, "smart-tabs" ],
// turn on the few on that aren't handled by JSCS.
"consistent-this": [ 2, "self" ],
"no-array-constructor": [ 2 ],
"no-nested-ternary": [ 2 ],
"no-underscore-dangle": [ 0 ],
"semi": [ 2, "always" ],
"space-infix-ops": [ 2 ],
"quotes": [ 0 ]
"no-new-object": [ 2 ],

// es6
"no-class-assign": [ 2 ],
"no-dupe-class-members": [ 2 ],
"no-new-symbol": [ 2 ],
"no-const-assign": [ 2 ],
"no-var": [ 2 ],
"prefer-const": [ 2 ]
}
}
6 changes: 3 additions & 3 deletions lib/bind.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

// external modules
var assert = require('assert-plus');
const assert = require('assert-plus');


/**
Expand All @@ -22,9 +22,9 @@ function bind(fn, context, args) {

// working with arguments is a bit hazardous in terms of deopt.
// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments
var partialArgs = new Array(arguments.length);
const partialArgs = new Array(arguments.length);

for (var i = 0; i < partialArgs.length; i++) {
for (let i = 0; i < partialArgs.length; i++) {
partialArgs[i] = arguments[i];
}

Expand Down
34 changes: 17 additions & 17 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
'use strict';

// core modules
var events = require('events');
var util = require('util');
const events = require('events');
const util = require('util');

// external modules
var assert = require('assert-plus');
const assert = require('assert-plus');

// internal files
var bind = require('./bind');
const bind = require('./bind');


//------------------------------------------------------------------------------
Expand Down Expand Up @@ -40,11 +40,11 @@ function Reissue(opts) {
assert.optionalNumber(opts.timeout, 'timeout');

// assert options of different types
var typeofInterval = typeof opts.interval;
const typeofInterval = typeof opts.interval;
assert.equal(typeofInterval === 'function' || typeofInterval === 'number',
true);

var self = this;
const self = this;

//--------------------------------------------------------------------------
// user supplied properties
Expand Down Expand Up @@ -76,7 +76,7 @@ function Reissue(opts) {
* arguments to pass to the function. append the internal done callback.
* @type {Array}
*/
var boundDone = bind(self._done, self);
const boundDone = bind(self._done, self);
self._funcArgs = (opts.args) ?
opts.args.concat(boundDone) : [boundDone];

Expand Down Expand Up @@ -142,7 +142,7 @@ util.inherits(Reissue, events.EventEmitter);
*/
Reissue.prototype._execute = function _execute() {

var self = this;
const self = this;

// start invocation timer
self._startTime = Date.now();
Expand Down Expand Up @@ -181,9 +181,9 @@ Reissue.prototype._execute = function _execute() {
Reissue.prototype._done = function _done(err) {

// calculate delta interval
var self = this;
var interval = self._interval();
var elapsedTime = Date.now() - self._startTime;
const self = this;
const interval = self._interval();
const elapsedTime = Date.now() - self._startTime;

// we're out of user supplied func now
self._inUserFunc = false;
Expand Down Expand Up @@ -218,7 +218,7 @@ Reissue.prototype._done = function _done(err) {
// the interval, which means the last execution took longer than
// the interval itself. otherwise, subtract the time the previous
// invocation took.
var timeToInvocation = (elapsedTime >= interval) ?
const timeToInvocation = (elapsedTime >= interval) ?
0 : (interval - elapsedTime);

self._nextHandlerId = setTimeout(function _nextInvocation() {
Expand All @@ -238,7 +238,7 @@ Reissue.prototype._done = function _done(err) {
*/
Reissue.prototype._stop = function _stop() {

var self = this;
const self = this;

// clear the next invocation if one exists
if (self._nextHandlerId) {
Expand All @@ -265,7 +265,7 @@ Reissue.prototype._stop = function _stop() {
*/
Reissue.prototype._onTimeout = function _onTimeout() {

var self = this;
const self = this;

// we might have called stop during current invocation. emit timeout event
// only if we're still active.
Expand All @@ -290,8 +290,8 @@ Reissue.prototype.start = function start(delay) {

assert.optionalNumber(delay);

var self = this;
var realDelay = (typeof delay === 'number' && delay >= 0) ? delay : 0;
const self = this;
const realDelay = (typeof delay === 'number' && delay >= 0) ? delay : 0;

// before starting, see if reissue is already active. if so, throw an
// error.
Expand All @@ -316,7 +316,7 @@ Reissue.prototype.start = function start(delay) {
*/
Reissue.prototype.stop = function stop() {

var self = this;
const self = this;

// NOTE: while the below if statements could be collapsed to be more more
// terse, this logic is easier to read in terms of maintainability.
Expand Down

0 comments on commit bdf3412

Please sign in to comment.