From c8d999984487d5a9946ac06d6d0f6bf099de7429 Mon Sep 17 00:00:00 2001
From: Jason Mulligan <jason.mulligan@avoidwork.com>
Date: Tue, 29 Sep 2015 18:24:07 -0400
Subject: [PATCH] Initial commit of code (just a shell)

---
 .eslintrc    | 176 +++++++++++++++++++++++++++++++++++++++++++++++++++
 .gitignore   |   1 +
 .npmignore   |   9 +++
 .travis.yml  |   5 ++
 Gruntfile.js |  42 ++++++++++++
 README.md    |  37 ++++++++++-
 lib/index.js |  11 ++++
 package.json |  37 +++++++++++
 src/index.js |   9 +++
 9 files changed, 326 insertions(+), 1 deletion(-)
 create mode 100644 .eslintrc
 create mode 100644 .npmignore
 create mode 100644 .travis.yml
 create mode 100644 Gruntfile.js
 create mode 100644 lib/index.js
 create mode 100644 package.json
 create mode 100644 src/index.js

diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..fadf09d
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,176 @@
+{
+	"parser": "babel-eslint",
+	"rules": {
+		"strict": 0
+	},
+	"env": {
+		"browser": true,
+		"node": true,
+		"es6": true,
+		"amd": true
+	},
+	"ecmaFeatures": {
+		"jsx": true,
+		"superInFunctions": false,
+		"classes": false,
+		"modules": [2]
+	},
+	"rules": {
+		"block-scoped-var": [0],
+		"brace-style": [2, "1tbs", { "allowSingleLine": true }],
+		"camelcase": [0],
+		"comma-dangle": [2, "never"],
+		"comma-spacing": [2],
+		"comma-style": [2, "last"],
+		"complexity": [0, 11],
+		"consistent-return": [2],
+		"consistent-this": [0, "that"],
+		"curly": [2, "multi-line"],
+		"default-case": [2],
+		"dot-notation": [2, { "allowKeywords": true }],
+		"eol-last": [2],
+		"eqeqeq": [2],
+		"func-names": [0],
+		"func-style": [0, "declaration"],
+		"generator-star-spacing": [2, "after"],
+		"strict": [2, "always"],
+		"guard-for-in": [0],
+		"handle-callback-err": [0],
+		"key-spacing": [2, { "beforeColon": false, "afterColon": true }],
+		"quotes": [2, "double", "avoid-escape"],
+		"max-depth": [0, 4],
+		"max-len": [0, 80, 4],
+		"max-nested-callbacks": [0, 2],
+		"max-params": [0, 3],
+		"max-statements": [0, 10],
+		"new-parens": [2],
+		"new-cap": [2, { "capIsNewExceptions": ["ToInteger", "ToObject", "ToPrimitive", "ToUint32"] }],
+		"newline-after-var": [0],
+		"no-alert": [2],
+		"no-array-constructor": [2],
+		"no-bitwise": [0],
+		"no-caller": [2],
+		"no-catch-shadow": [2],
+		"no-cond-assign": [2],
+		"no-console": [0],
+		"no-constant-condition": [1],
+		"no-continue": [2],
+		"no-control-regex": [2],
+		"no-debugger": [2],
+		"no-delete-var": [2],
+		"no-div-regex": [0],
+		"no-dupe-args": [2],
+		"no-dupe-keys": [2],
+		"no-duplicate-case": [2],
+		"no-else-return": [0],
+		"no-empty": [2],
+		"no-empty-character-class": [2],
+		"no-empty-label": [2],
+		"no-eq-null": [0],
+		"no-eval": [2],
+		"no-ex-assign": [2],
+		"no-extend-native": [1],
+		"no-extra-bind": [2],
+		"no-extra-boolean-cast": [2],
+		"no-extra-parens": [0],
+		"no-extra-semi": [1],
+		"no-fallthrough": [2],
+		"no-floating-decimal": [2],
+		"no-func-assign": [2],
+		"no-implied-eval": [2],
+		"no-inline-comments": [0],
+		"no-inner-declarations": [2, "functions"],
+		"no-invalid-regexp": [2],
+		"no-irregular-whitespace": [2],
+		"no-iterator": [2],
+		"no-label-var": [2],
+		"no-labels": [2],
+		"no-lone-blocks": [2],
+		"no-lonely-if": [2],
+		"no-loop-func": [2],
+		"no-mixed-requires": [0, false],
+		"no-mixed-spaces-and-tabs": [2, false],
+		"no-multi-spaces": [2],
+		"no-multi-str": [2],
+		"no-multiple-empty-lines": [2, { "max": 2 }],
+		"no-native-reassign": [0],
+		"no-negated-in-lhs": [2],
+		"no-nested-ternary": [0],
+		"no-new": [2],
+		"no-new-func": [2],
+		"no-new-object": [2],
+		"no-new-require": [0],
+		"no-new-wrappers": [2],
+		"no-obj-calls": [2],
+		"no-octal": [2],
+		"no-octal-escape": [2],
+		"no-param-reassign": [2],
+		"no-path-concat": [0],
+		"no-plusplus": [0],
+		"no-process-env": [0],
+		"no-process-exit": [0],
+		"no-proto": [2],
+		"no-redeclare": [2],
+		"no-regex-spaces": [2],
+		"no-reserved-keys": [0],
+		"no-restricted-modules": [0],
+		"no-return-assign": [2],
+		"no-script-url": [2],
+		"no-self-compare": [0],
+		"no-sequences": [2],
+		"no-shadow": [2],
+		"no-shadow-restricted-names": [2],
+		"semi-spacing": [2],
+		"no-spaced-func": [2],
+		"no-sparse-arrays": [2],
+		"no-sync": [0],
+		"no-ternary": [0],
+		"no-throw-literal": [2],
+		"no-trailing-spaces": [2],
+		"no-undef": [2],
+		"no-undef-init": [2],
+		"no-undefined": [0],
+		"no-underscore-dangle": [0],
+		"no-unreachable": [2],
+		"no-unused-expressions": [2],
+		"no-unused-vars": [1, { "vars": "all", "args": "after-used" }],
+		"no-use-before-define": [2],
+		"no-void": [0],
+		"no-warning-comments": [0, { "terms": ["todo", "fixme", "xxx"], "location": "start" }],
+		"no-with": [2],
+		"no-extra-parens": [2],
+		"one-var": [0],
+		"operator-assignment": [0, "always"],
+		"operator-linebreak": [2, "after"],
+		"padded-blocks": [0],
+		"quote-props": [0],
+		"radix": [0],
+		"semi": [2],
+		"semi-spacing": [2, { "before": false, "after": true }],
+		"sort-vars": [0],
+		"space-after-keywords": [2, "always"],
+		"space-before-function-paren": [2, { "anonymous": "always", "named": "always" }],
+		"space-before-blocks": [0, "always"],
+		"space-in-brackets": [0, "never", {
+			"singleValue": true,
+			"arraysInArrays": false,
+			"arraysInObjects": false,
+			"objectsInArrays": true,
+			"objectsInObjects": true,
+			"propertyName": false
+		}],
+		"space-in-parens": [2, "never"],
+		"space-infix-ops": [2],
+		"space-return-throw-case": [2],
+		"space-unary-ops": [2, { "words": true, "nonwords": false }],
+		"spaced-line-comment": [0, "always"],
+		"strict": [1],
+		"use-isnan": [2],
+		"valid-jsdoc": [0],
+		"valid-typeof": [2],
+		"vars-on-top": [0],
+		"wrap-iife": [2],
+		"wrap-regex": [2],
+		"yoda": [2, "never", { "exceptRange": true }]
+	}
+}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 123ae94..9940cd2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ build/Release
 # Dependency directory
 # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
 node_modules
+.idea
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..b422e46
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,9 @@
+/.idea/
+/node_modules/
+/src/
+/test/
+.eslintrc
+.git
+.gitignore
+.travis.yml
+Gruntfile.js
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..3ab14ce
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+  - "0.10"
+  - "0.12"
+  #- "iojs"
\ No newline at end of file
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..b66631e
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,42 @@
+module.exports = function (grunt) {
+	grunt.initConfig({
+		pkg : grunt.file.readJSON("package.json"),
+		babel: {
+			options: {
+				sourceMap: false
+			},
+			dist: {
+				files: [{
+					expand: true,
+					cwd: "src",
+					src: ["*.js"],
+					dest: "lib",
+					ext: ".js"
+				}]
+			}
+		},
+		eslint: {
+			target: ["src/*.js"]
+		},
+		watch : {
+			js : {
+				files : ["src/*.js"],
+				tasks : "default"
+			},
+			pkg: {
+				files : "package.json",
+				tasks : "default"
+			}
+		}
+	});
+
+	// tasks
+	grunt.loadNpmTasks("grunt-contrib-watch");
+	grunt.loadNpmTasks("grunt-babel");
+	grunt.loadNpmTasks("grunt-eslint");
+
+	// aliases
+	grunt.registerTask("test", ["eslint"]);
+	grunt.registerTask("build", ["babel"]);
+	grunt.registerTask("default", ["build", "test"]);
+};
diff --git a/README.md b/README.md
index 30df4c9..4f7a380 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,37 @@
 # tiny-worker
-Tiny WebWorker for the Server
+Tiny WebWorker for Server
+
+[![build status](https://secure.travis-ci.org/avoidwork/tiny-worker.svg)](http://travis-ci.org/avoidwork/tiny-worker)
+
+## Example
+```javascript
+var Worker = require('tiny-worker'),
+    worker;
+
+worker = new Worker(function () {
+  onmessage = function (ev) {
+    postMessage(ev.data);
+  };
+});
+
+worker.onmessage = function (ev) {
+  console.log(ev.data);
+};
+
+worker.postMessage("Hello world!"); // "Hello world!" is logged to console after bouncing through the Worker
+```
+
+## Properties
+#### onmessage
+Message handler, accepts an `Event`
+
+#### onerror
+Error handler, accepts an `Event`
+
+## API
+#### postMessage()
+Broadcasts a message to the `Worker`
+
+## License
+Copyright (c) 2015 Jason Mulligan
+Licensed under the BSD-3 license
diff --git a/lib/index.js b/lib/index.js
new file mode 100644
index 0000000..30dc184
--- /dev/null
+++ b/lib/index.js
@@ -0,0 +1,11 @@
+//const path = require("path");
+
+"use strict";
+
+function factory(arg) {
+	var fn = typeof arg === "function";
+
+	return fn;
+}
+
+module.exports = factory;
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..da984fb
--- /dev/null
+++ b/package.json
@@ -0,0 +1,37 @@
+{
+  "name": "tiny-worker",
+  "version": "0.1.0",
+  "description": "Tiny WebWorker for Server",
+  "main": "lib/tiny-worker.js",
+  "scripts": {
+    "test": "grunt test"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/avoidwork/tiny-worker.git"
+  },
+  "keywords": [
+    "es6",
+    "unboxed",
+    "promise",
+    "deferred",
+    "defer"
+  ],
+  "author": "Jason Mulligan <jason.mulligan@avoidwork.com>",
+  "license": "BSD-3-Clause",
+  "bugs": {
+    "url": "https://github.com/avoidwork/tiny-worker/issues"
+  },
+  "homepage": "https://github.com/avoidwork/tiny-worker",
+  "devDependencies": {
+    "babel-eslint": "^4.1.0",
+    "grunt": "^0.4.5",
+    "grunt-babel": "^5.0.0",
+    "grunt-cli": "^0.1.13",
+    "grunt-contrib-watch": "^0.6.1",
+    "grunt-eslint": "^17.1.0"
+  },
+  "dependencies": {
+    "tiny-defer": "^1.0.2"
+  }
+}
diff --git a/src/index.js b/src/index.js
new file mode 100644
index 0000000..7c9cf2a
--- /dev/null
+++ b/src/index.js
@@ -0,0 +1,9 @@
+//const path = require("path");
+
+function factory (arg) {
+	let fn = typeof arg === "function";
+
+	return fn;
+}
+
+module.exports = factory;
-- 
GitLab