diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..5dd4165
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,20 @@
+# EditorConfig: http://EditorConfig.org
+# all files defaults
+[**]
+# Unix-style newlines with a newline ending
+end_of_line = lf
+insert_final_newline = true
+# Set default charset
+charset = utf-8
+# 4 space indentation
+indent_style = space
+indent_size = 4
+# trim whitespaces
+trim_trailing_whitespace = true
+# always insert final newline
+insert_final_newline = true
+
+# 2 spaces indent for config files
+[{package.json}]
+indent_style = space
+indent_size = 2
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..6e5cc87
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,252 @@
+{
+ // I want to use babel-eslint for parsing!
+ "parser": "babel-eslint",
+ "env": {
+ // I write for browser
+ "browser": true,
+ // in CommonJS
+ "node": true,
+ // use ES6
+ "es6": true
+ },
+ "ecmaProperties": {
+ // enable JSX support
+ "jsx": true
+ },
+ "plugins": [
+ // enable react plugin
+ "react"
+ ],
+ "globals": {
+ "__WEBPACK__": true
+ },
+ // To give you an idea how to override rule options
+ "rules": {
+ // Possible Errors
+ "comma-dangle": 0,
+ "no-console": 2,
+ "no-debugger": 1,
+ "no-dupe-keys": 2,
+ "no-dupe-args": 2,
+ "no-empty": 2,
+ "no-extra-boolean-cast": 2,
+ "no-extra-semi": 2,
+ "no-invalid-regexp": 2,
+ "no-irregular-whitespace": 2,
+ "quote-props": [
+ 2,
+ "consistent-as-needed",
+ {
+ "keywords": true
+ }
+ ],
+ "no-sparse-arrays": 2,
+ "no-unreachable": 2,
+ "use-isnan": 2,
+ "valid-jsdoc": 2,
+ "valid-typeof": 2,
+ // Best Practices
+ "consistent-return": 1,
+ "curly": 2,
+ "default-case": 2,
+ "dot-notation": 2,
+ "eqeqeq": 2,
+ "no-alert": 2,
+ "no-caller": 2,
+ "no-else-return": 2,
+ "no-eq-null": 2,
+ "no-eval": 2,
+ "no-extend-native": 2,
+ "no-floating-decimal": 2,
+ "no-implied-eval": 2,
+ "no-iterator": 2,
+ "no-labels": 2,
+ "no-loop-func": 1,
+ "no-lone-blocks": 2,
+ "no-multi-spaces": 2,
+ "no-native-reassign": 2,
+ "no-new": 2,
+ "no-new-func": 2,
+ "no-new-wrappers": 2,
+ "no-proto": 2,
+ "no-redeclare": 2,
+ "no-return-assign": 2,
+ "no-script-url": 2,
+ "no-self-compare": 2,
+ "no-sequences": 2,
+ "no-throw-literal": 2,
+ "no-unused-expressions": 2,
+ "no-void": 2,
+ "radix": 2,
+ "yoda": 0,
+ // Strict Mode
+ "strict": 0,
+ // Variables
+ "no-catch-shadow": 2,
+ "no-delete-var": 2,
+ "no-shadow": 2,
+ "no-shadow-restricted-names": 2,
+ "no-undef": 2,
+ "no-unused-vars": [
+ 2,
+ {
+ "vars": "all",
+ "args": "after-used"
+ }
+ ],
+ "no-use-before-define": 2,
+ // Node
+ "handle-callback-err": 2,
+ "no-new-require": 2,
+ "no-path-concat": 2,
+ // Stylistic Issues
+ "indent": 2,
+ // 4 spaces
+ "camelcase": 0,
+ "comma-spacing": [
+ 2,
+ {
+ "before": false,
+ "after": true
+ }
+ ],
+ "comma-style": [
+ 2,
+ "last"
+ ],
+ "eol-last": 2,
+ "func-style": [
+ 2,
+ "expression"
+ ],
+ "max-nested-callbacks": [
+ 2,
+ 3
+ ],
+ "no-array-constructor": 2,
+ "no-mixed-spaces-and-tabs": 2,
+ "no-multiple-empty-lines": [
+ 1,
+ {
+ "max": 2
+ }
+ ],
+ "no-nested-ternary": 2,
+ "no-new-object": 2,
+ "semi-spacing": [
+ 2,
+ {
+ "before": false,
+ "after": true
+ }
+ ],
+ "no-spaced-func": 2,
+ "no-trailing-spaces": 2,
+ "no-underscore-dangle": 2,
+ "no-extra-parens": [
+ 2,
+ "functions"
+ ],
+ "quote-props": [
+ 1,
+ "as-needed"
+ ],
+ "quotes": [
+ 1,
+ "single"
+ ],
+ "semi": [
+ 2,
+ "always"
+ ],
+ "semi-spacing": [
+ 2,
+ {
+ "before": false,
+ "after": true
+ }
+ ],
+ "space-before-function-paren": [
+ 1,
+ {
+ "anonymous": "never",
+ "named": "never"
+ }
+ ],
+ "space-after-keywords": [
+ 1,
+ "always"
+ ],
+ "space-before-blocks": [
+ 1,
+ "always"
+ ],
+ "object-curly-spacing": [
+ 1,
+ "never"
+ ],
+ "array-bracket-spacing": [
+ 1,
+ "never"
+ ],
+ "computed-property-spacing": [
+ 1,
+ "never"
+ ],
+ "space-in-parens": [
+ 1,
+ "never"
+ ],
+ "key-spacing": [
+ 1,
+ {
+ "beforeColon": false,
+ "afterColon": true
+ }
+ ],
+ "object-curly-spacing": [
+ 1,
+ "never"
+ ],
+ "space-infix-ops": 2,
+ // complexity rules
+ "max-depth": [
+ 2,
+ 3
+ ],
+ "max-statements": [
+ 1,
+ 20
+ ],
+ "complexity": [
+ 1,
+ 3
+ ],
+ "max-len": [
+ 2,
+ 120
+ ],
+ "max-params": [
+ 2,
+ 2
+ ],
+ // jsx rules
+ "react/jsx-quotes": 1,
+ "react/jsx-no-undef": 1,
+ "react/jsx-uses-react": 1,
+ "react/jsx-uses-vars": 1,
+ "react/no-did-mount-set-state": 1,
+ "react/no-did-update-set-state": 1,
+ "react/no-multi-comp": 1,
+ "react/react-in-jsx-scope": 1,
+ "react/self-closing-comp": 1,
+ "react/wrap-multilines": 1,
+ // ES6
+ "prefer-const": 2,
+ "object-shorthand": [
+ 2,
+ "always"
+ ],
+ "no-var": 2
+ }
+}
diff --git a/build/index.html b/build/index.html
new file mode 100644
index 0000000..e6825fc
--- /dev/null
+++ b/build/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Worklife – Camden
+
+
+ Display
+
+
diff --git a/build/worklife-camden.js b/build/worklife-camden.js
new file mode 100644
index 0000000..399de07
--- /dev/null
+++ b/build/worklife-camden.js
@@ -0,0 +1,2 @@
+!function(r){function t(o){if(e[o])return e[o].exports;var n=e[o]={exports:{},id:o,loaded:!1};return r[o].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var e={};return t.m=r,t.c=e,t.p="/",t(0)}([function(r,t){"use strict"}]);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd29ya2xpZmUtY2FtZGVuLmpzIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCA2YjJmNzI1M2I0M2ViZjE0Y2ViNSJdLCJuYW1lcyI6WyJtb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaW5zdGFsbGVkTW9kdWxlcyIsImV4cG9ydHMiLCJtb2R1bGUiLCJpZCIsImxvYWRlZCIsImNhbGwiLCJtIiwiYyIsInAiXSwibWFwcGluZ3MiOiJDQUFTLFNBQVVBLEdDSW5CLFFBQUFDLEdBQUFDLEdBR0EsR0FBQUMsRUFBQUQsR0FDQSxNQUFBQyxHQUFBRCxHQUFBRSxPQUdBLElBQUFDLEdBQUFGLEVBQUFELElBQ0FFLFdBQ0FFLEdBQUFKLEVBQ0FLLFFBQUEsRUFVQSxPQU5BUCxHQUFBRSxHQUFBTSxLQUFBSCxFQUFBRCxRQUFBQyxJQUFBRCxRQUFBSCxHQUdBSSxFQUFBRSxRQUFBLEVBR0FGLEVBQUFELFFBdkJBLEdBQUFELEtBcUNBLE9BVEFGLEdBQUFRLEVBQUFULEVBR0FDLEVBQUFTLEVBQUFQLEVBR0FGLEVBQUFVLEVBQUEsSUFHQVYsRUFBQSxLRE1NLFNBQVNJLEVBQVFELEdBRXRCIiwiZmlsZSI6IndvcmtsaWZlLWNhbWRlbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9LFxuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqL1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVkIGJ5IG1pY2hlbGUgb24gMTQvMTAvMTUuXG5cdCAqL1xuXG4vKioqLyB9XG4vKioqKioqLyBdKTtcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3b3JrbGlmZS1jYW1kZW4uanNcbiAqKi8iLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0ZXhwb3J0czoge30sXG4gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuIFx0XHRcdGxvYWRlZDogZmFsc2VcbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrL2Jvb3RzdHJhcCA2YjJmNzI1M2I0M2ViZjE0Y2ViNVxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=
\ No newline at end of file
diff --git a/package.json b/package.json
index fcdf1eb..b51aebe 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,9 @@
"description": "Climb.social display for Worklife – Camden",
"main": "src/index.js",
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "webpack-dev-server --content-base src/",
+ "build": "webpack -p"
},
"repository": {
"type": "git",
@@ -20,5 +22,17 @@
"bugs": {
"url": "https://github.com/Climb-social/worklife-camden-display/issues"
},
- "homepage": "https://github.com/Climb-social/worklife-camden-display#readme"
+ "homepage": "https://github.com/Climb-social/worklife-camden-display#readme",
+ "devDependencies": {
+ "babel-core": "^5.8.25",
+ "babel-eslint": "^4.1.3",
+ "babel-loader": "^5.3.2",
+ "eslint": "^1.6.0",
+ "eslint-loader": "^1.1.0",
+ "eslint-plugin-react": "^3.5.1",
+ "html-webpack-plugin": "^1.6.2",
+ "json-loader": "^0.5.3",
+ "webpack": "^1.12.2",
+ "webpack-dev-server": "^1.12.0"
+ }
}
diff --git a/src/index.html b/src/index.html
new file mode 100644
index 0000000..c9bad3a
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Worklife – Camden
+
+
+ Display
+
+
diff --git a/src/index.js b/src/index.js
new file mode 100644
index 0000000..16bed76
--- /dev/null
+++ b/src/index.js
@@ -0,0 +1,3 @@
+/**
+ * Created by michele on 14/10/15.
+ */
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000..e98f0ce
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,52 @@
+var path = require('path');
+var webpack = require('webpack');
+var HtmlWebpackPlugin = require('html-webpack-plugin');
+
+module.exports = {
+ devtool: 'inline-source-map',
+ debug: true,
+ context: path.resolve(__dirname),
+ entry: './src/index.js',
+ output: {
+ path: path.resolve(__dirname, 'build'),
+ publicPath: '/',
+ filename: 'worklife-camden.js'
+ },
+ resolve: {
+ root: path.resolve(__dirname),
+ extensions: ['', '.js', '.jsx'],
+ modulesDirectories: ['node_modules']
+ },
+ node: {
+ fs: 'empty'
+ },
+ eslint: {
+ configFile: path.join(__dirname, '.eslintrc')
+ },
+ module: {
+ preLoaders: [
+ {
+ test: /\.jsx?$/,
+ exclude: /node_modules/,
+ loader: 'eslint'
+ }
+ ],
+ loaders: [
+ {
+ test: /\.jsx?$/,
+ exclude: /node_modules/,
+ loader: 'babel',
+ query: {stage: 0}
+ }
+ ]
+ },
+ externals: {
+ 'react': 'React'
+ },
+ plugins: [
+ new HtmlWebpackPlugin({
+ inject: true,
+ template: 'src/index.html'
+ })
+ ]
+};