Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Nason committed Oct 18, 2016
0 parents commit 3a23034
Show file tree
Hide file tree
Showing 32 changed files with 1,324 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .babelrc
@@ -0,0 +1,13 @@
{
"presets": [
"es2015",
"stage-0"
],
plugins: [
],
"env": {
"test": {
"plugins": [ [ "istanbul", { "exclude": "test/**/*" } ] ]
}
}
}
226 changes: 226 additions & 0 deletions .eslintrc
@@ -0,0 +1,226 @@
env:

###########################################################################
# #
# ENVIRONMENT: if you write code that will be executed in one of the #
# following environments, the value for that environment should be #
# set to true. #
# #
###########################################################################

node: true
browser: true
es6: true

parserOptions:
sourceType: "module"
ecmaFeatures:
destructuring: true
spread: true
arrowFunctions: true
blockBindings: true
experimentalObjectRestSpread: true

globals:

###########################################################################
# #
# GLOBALS: ESLint will assume the following variables are declared #
# globally; other variables will require explicit declaration. #
# #
###########################################################################

require: true

rules:

###########################################################################
# #
# POSSIBLE ERRORS: these rules point out areas where you might have #
# made mistakes. #
# #
###########################################################################

comma-dangle: 1 # disallow trailing commas in object literals
no-cond-assign: 0 # disallow assignment in conditional expressions
no-console: 0 # disallow use of console
no-constant-condition: 2 # disallow use of constant expressions in conditions
no-control-regex: 2 # disallow control characters in regular expressions
no-debugger: 2 # disallow use of debugger
no-dupe-keys: 2 # disallow duplicate keys when creating object literals
no-empty: 2 # disallow empty statements
no-empty-character-class: 2 # disallow the use of empty character classes in regular expressions
no-ex-assign: 2 # disallow assigning to the exception in a catch block
no-extra-boolean-cast: 2 # disallow double-negation boolean casts in a boolean context
no-extra-semi: 0 # disallow unnecessary semicolons
no-func-assign: 0 # disallow overwriting functions written as function declarations
no-inner-declarations: 1 # disallow function or variable declarations in nested blocks
no-invalid-regexp: 2 # disallow invalid regular expression strings in the RegExp
# constructor
no-irregular-whitespace: 2 # disallow irregular whitespace outside of strings and comments
no-negated-in-lhs: 2 # disallow negation of the left operand of an in expression
no-obj-calls: 2 # disallow the use of object properties of the global object (Math
# and JSON) as functions
no-regex-spaces: 1 # disallow multiple spaces in a regular expression literal
no-reserved-keys: 0 # disallow reserved words being used as object literal keys
no-sparse-arrays: 2 # disallow sparse arrays
no-unreachable: 2 # disallow unreachable statements after a return, throw, continue,
# or break statement
use-isnan: 2 # disallow comparisons with the value NaN
valid-jsdoc: # ensure JSDoc comments are valid
[1, { "prefer": { "return": "returns" }, "requireReturn": false, requireParamDescription: false, requireReturnDescription: false }]
valid-typeof: 2 # ensure that the results of typeof are compared against a
# valid string

###########################################################################
# #
# BEST PRACTICES: these rules are designed to prevent you from making #
# mistakes. They either prescribe a better way of doing something or #
# help you avoid pitfalls. #
# #
###########################################################################

block-scoped-var: 0 # treat var statements as if they were block scoped
complexity: [1, 250] # specify the maximum cyclomatic complexity allowed in a program
consistent-return: 0 # require return statements to either always or never specify values
curly: 0 # specify curly brace conventions for all control
# statements
default-case: 2 # require default case in switch statements
dot-notation: 1 # encourages use of dot notation whenever possible
eqeqeq: 0 # require the use of === and !==
guard-for-in: 1 # make sure for-in loops have an if statement
no-alert: 0 # disallow the use of alert, confirm, and prompt
no-caller: 2 # disallow use of arguments.caller or arguments.callee
no-div-regex: 0 # disallow division operators explicitly at beginning of regular
# expression
no-else-return: 0 # disallow else after a return in an if
no-eq-null: 0 # disallow comparisons to null without a type-checking operator
no-eval: 2 # disallow use of eval()
no-extend-native: 2 # disallow adding to native types
no-extra-bind: 2 # disallow unnecessary function binding
no-fallthrough: 2 # disallow fallthrough of case statements
no-floating-decimal: 2 # disallow the use of leading or trailing decimal points in numeric
# literals
no-implied-eval: 2 # disallow use of eval()-like methods
no-iterator: 2 # disallow usage of __iterator__ property
no-labels: 2 # disallow use of labeled statements
no-lone-blocks: 2 # disallow unnecessary nested blocks
no-loop-func: 0 # disallow creation of functions within loops
no-multi-spaces: 0 # disallow use of multiple spaces
no-multi-str: 2 # disallow use of multiline strings
no-native-reassign: 2 # disallow reassignments of native objects
no-new: 2 # disallow use of new operator when not part of the assignment or
# comparison
no-new-func: 0 # disallow use of new operator for Function object
no-new-wrappers: 2 # disallows creating new instances of String,Number, and Boolean
no-octal: 0 # disallow use of octal literals
no-octal-escape: 0 # disallow use of octal escape sequences in string literals, such as
# `var foo = "Copyright \251"`
no-process-env: 0 # disallow use of process.env
no-proto: 2 # disallow usage of __proto__ property
no-redeclare: 1 # disallow declaring the same variable more then once
no-return-assign: 0 # disallow use of assignment in return statement
no-script-url: 2 # disallow use of javascript urls.
no-self-compare: 2 # disallow comparisons where both sides are exactly the same
no-sequences: 2 # disallow use of comma operator
no-unused-expressions: 0 # disallow usage of expressions in statement position
no-void: 2 # disallow use of void operator
no-warning-comments: 0 # disallow usage of configurable warning terms in comments - e.g.
no-with: 2 # disallow use of the with statement
radix: 2 # require use of the second argument for parseInt()
vars-on-top: 0 # requires to declare all vars on top of their containing scope
wrap-iife: [2, "inside"] # require immediate function invocation to be wrapped in parentheses

###########################################################################
# #
# STRICT MODE: these rules relate to using strict mode. #
# #
###########################################################################

strict: [2, "never"] # require that all functions are run in strict mode

###########################################################################
# #
# VARIABLES: these rules have to do with variable declarations. #
# #
###########################################################################

no-catch-shadow: 2 # disallow the catch clause parameter name being the same as a
# variable in the outer scope
no-delete-var: 2 # disallow deletion of variables
no-label-var: 2 # disallow labels that share a name with a variable
no-shadow: 0 # disallow declaration of variables already declared in the
# outer scope
no-shadow-restricted-names: 2 # disallow shadowing of names such as arguments
no-undef: 0 # disallow use of undeclared variables unless mentioned in a
# /*global */ block
no-undef-init: 2 # disallow use of undefined when initializing variables
no-undefined: 0 # disallow use of undefined variable
no-unused-vars: 0 # disallow declaration of variables that are not used in the code
no-use-before-define: 0 # disallow use of variables before they are defined

###########################################################################
# #
# NODE: these rules relate to functionality provided in Node.js. #
# #
###########################################################################

handle-callback-err: 0 # enforces error handling in callbacks
no-mixed-requires: 0 # disallow mixing regular variable and require declarations
no-new-require: 2 # disallow use of new operator with the require function
no-path-concat: 2 # disallow string concatenation with __dirname and __filename
no-process-exit: 0 # disallow process.exit()
no-restricted-modules: 0 # restrict usage of specified node modules
no-sync: 0 # disallow use of synchronous methods

###########################################################################
# #
# STYLISTIC ISSUES: these rules are purely matters of style and, #
# while valueable to enforce consistently across a project, are #
# quite subjective. #
# #
###########################################################################

indent: [2, 2] # Set a specific tab width
brace-style: 0 # enforce one true brace style
camelcase: 0 # require camel case names
comma-spacing: 2 # enforce spacing before and after comma
comma-style: 2 # enforce one true comma style
consistent-this: 0 # enforces consistent naming when capturing the current execution context
eol-last: 0 # enforce newline at the end of file, with no multiple empty lines
func-names: 0 # require function expressions to have a name
func-style: 0 # enforces use of function declarations or expressions
key-spacing: 2 # enforces spacing between keys and values in object literal properties
max-nested-callbacks: [2, 4] # specify the maximum depth callbacks can be nested
new-cap: 0 # require a capital letter for constructors
new-parens: 2 # disallow the omission of parentheses when invoking a constructor with no arguments
no-array-constructor: 2 # disallow use of the Array constructor
no-lonely-if: 0 # disallow if as the only statement in an else block
no-mixed-spaces-and-tabs: 2 # disallow mixed spaces and tabs for indentation
no-nested-ternary: 0 # disallow nested ternary expressions
no-new-object: 1 # disallow use of the Object constructor
no-space-before-semi: 0 # disallow space before semicolon
no-spaced-func: 2 # disallow space between function identifier and application
no-ternary: 0 # disallow the use of ternary operators

no-trailing-spaces: 2 # disallow trailing whitespace at the end of lines
no-multiple-empty-lines: 0 # disallow multiple empty lines
no-underscore-dangle: 0 # disallow dangling underscores in identifiers
no-extra-parens: 2 # disallow wrapping of non-IIFE statements in parens
one-var: 0 # allow just one var statement per function
padded-blocks: 0 # enforce padding within blocks
quotes: # specify whether double or single quotes should be used
[1, "single", "avoid-escape"]
quote-props: 0 # require quotes around object literal property names
semi: [2, "always"] # require or disallow use of semicolons instead of ASI
semi-spacing: 0
sort-vars: 0 # sort variables within the same declaration block
keyword-spacing: 2 # require a space after certain keywords
space-before-blocks: 2 # require or disallow space before blocks
space-in-brackets: 0 # require or disallow spaces inside brackets
space-in-parens: 0 # require or disallow spaces inside parentheses
space-infix-ops: 0 # require spaces around operators
spaced-line-comment: 0 # require or disallow a space immediately following
# the // in a line comment
wrap-regex: 0 # require regex literals to be wrapped in parentheses

35 changes: 35 additions & 0 deletions .gitignore
@@ -0,0 +1,35 @@
dist

lib-cov
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz

pids
logs
results

npm-debug.log
node_modules
coverage
.nyc_output
.DS_Store

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history
8 changes: 8 additions & 0 deletions .npmignore
@@ -0,0 +1,8 @@
# Don't publish anything to npm but package.json, the dist
# directory, API.md, CHANGELOG.md, and the root index.js file

!dist/*
!API.md
!CHANGELOG.md
!package.json
!index.js
2 changes: 2 additions & 0 deletions .npmrc
@@ -0,0 +1,2 @@
loglevel=error
save-exact=true
1 change: 1 addition & 0 deletions .nvmrc
@@ -0,0 +1 @@
6.7.0
18 changes: 18 additions & 0 deletions .nycrc
@@ -0,0 +1,18 @@
{
"reporter": [
"html",
"lcov",
"cobertura",
"text-summary"
],
"report-dir": "./coverage/node",
"include": [
"src/**/*.js"
],
"require": [
"babel-register"
],
"sourceMap": false,
"instrument": false,
"show-process-tree": true
}
22 changes: 22 additions & 0 deletions .travis.yml
@@ -0,0 +1,22 @@
language: node_js
node_js:
- "6.*"

branches:
only:
- master

script:
- "npm run test:ci"

after_success:
- SAUCELABS=true npm run test:browser

cache:
directories:
- node_modules

notifications:
email: false

sudo: false

0 comments on commit 3a23034

Please sign in to comment.