From 4f062da39803f4f7002b8f2fa763128d283d0c6c Mon Sep 17 00:00:00 2001 From: dirrk Date: Wed, 14 Oct 2015 23:39:39 -0400 Subject: [PATCH] Init --- .editorconfig | 22 +++++++++++++++++ .gitignore | 26 ++++++++++++++++++++ .jscrc | 50 +++++++++++++++++++++++++++++++++++++++ .jshintrc | 22 +++++++++++++++++ README.md | 3 +++ index.js | 23 ++++++++++++++++++ lib/api/report/index.js | 8 +++++++ lib/config.js | 9 +++++++ lib/routes.js | 9 +++++++ lib/setup.js | 26 ++++++++++++++++++++ package.json | 14 +++++++++++ public/index.html | 8 +++++++ public/javascript/test.js | 2 ++ 13 files changed, 222 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .jscrc create mode 100644 .jshintrc create mode 100644 README.md create mode 100644 index.js create mode 100644 lib/api/report/index.js create mode 100644 lib/config.js create mode 100644 lib/routes.js create mode 100644 lib/setup.js create mode 100644 package.json create mode 100644 public/index.html create mode 100644 public/javascript/test.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c076c16 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,22 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 4 +quote_type = single + +[Makefile] +indent_style = tab + +[*.js] +space_after_control_statements = true +space_after_anonymous_functions = true +spaces_around_operators = true +spaces_in_brackets = hybrid + +[package.json] +indent_size = 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6f6f38 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage* + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# Deployed apps should consider commenting this line out: +# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git +node_modules +.idea diff --git a/.jscrc b/.jscrc new file mode 100644 index 0000000..4839b77 --- /dev/null +++ b/.jscrc @@ -0,0 +1,50 @@ +{ + "disallowEmptyBlocks": true, + "disallowSpacesInsideArrayBrackets": true, + "disallowSpacesInsideParentheses": true, + "disallowQuotedKeysInObjects": true, + "disallowSpaceAfterObjectKeys": true, + "disallowSpaceAfterPrefixUnaryOperators": true, + "disallowSpaceBeforePostfixUnaryOperators": true, + "disallowSpaceBeforeBinaryOperators": [ + "," + ], + "disallowMixedSpacesAndTabs": true, + "disallowTrailingWhitespace": true, + "disallowTrailingComma": true, + "disallowYodaConditions": true, + "disallowKeywords": [ "with" ], + "disallowNewlineBeforeBlockStatements": true, + "requireSpaceBeforeBlockStatements": true, + "requireParenthesesAroundIIFE": true, + "requireSpacesInConditionalExpression": true, + "requireMultipleVarDecl": "onevar", + "requireBlocksOnNewline": 1, + "requireCommaBeforeLineBreak": true, + "requireSpaceBeforeBinaryOperators": true, + "requireSpaceAfterBinaryOperators": true, + "requireCamelCaseOrUpperCaseIdentifiers": "ignoreProperties", + "requireLineFeedAtFileEnd": true, + "requireCapitalizedConstructors": true, + "requireDotNotation": true, + "requireCurlyBraces": [ + "do" + ], + "requireSpaceAfterKeywords": [ + "if", + "else", + "for", + "while", + "do", + "switch", + "case", + "return", + "try", + "catch", + "typeof" + ], + "safeContextKeyword": ["_this", "self"], + "validateLineBreaks": "LF", + "validateQuoteMarks": "'", + "excludeFiles": ["node_modules/**"] +} diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..62d1114 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,22 @@ +{ + "eqnull": true, + "nonew": true, + "curly": true, + "unused": "vars", + "noarg": true, + "indent": 4, + "forin": true, + "noempty": true, + "quotmark": "single", + "node": true, + "eqeqeq": true, + "strict": true, + "undef": true, + "bitwise": true, + "newcap": true, + "immed": true, + "nonbsp": true, + "freeze": true, + "globalstrict": true +} + diff --git a/README.md b/README.md new file mode 100644 index 0000000..c6c2037 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Hampton Roads Resolutions +================= + diff --git a/index.js b/index.js new file mode 100644 index 0000000..6f4416e --- /dev/null +++ b/index.js @@ -0,0 +1,23 @@ +'use strict'; + +// Setup hapi +var setup = require('./lib/setup'); + +setup(function (err) { + if (err) { + exit(err); + } else { + console.log('Setup server completed'); + } + process.on('uncaughtException', exit); + process.on('uncaughtRejection', exit); + process.on('error', exit); +}); + + +function exit(err) { + if (err) { + console.error(err); + } + process.exit(err ? 1 : 0); +} diff --git a/lib/api/report/index.js b/lib/api/report/index.js new file mode 100644 index 0000000..1fcb30a --- /dev/null +++ b/lib/api/report/index.js @@ -0,0 +1,8 @@ +'use strict'; + +exports.createReport = function (request, reply) { + reply({ + status: 200, + tracking: '000000-00000-000000000' + }); +}; diff --git a/lib/config.js b/lib/config.js new file mode 100644 index 0000000..6a6190e --- /dev/null +++ b/lib/config.js @@ -0,0 +1,9 @@ +'use strict'; + +var constants = { + server: { + port: 3000 + } +}; + +module.exports = Object.freeze(constants); diff --git a/lib/routes.js b/lib/routes.js new file mode 100644 index 0000000..2b89656 --- /dev/null +++ b/lib/routes.js @@ -0,0 +1,9 @@ +'use strict'; + +var report = require('./api/report'); + +module.exports = [ + { method: 'GET', path: '/', handler: { file: function () { return 'public/index.html'; }}}, + { method: 'GET', path: '/javascript/{file?}', handler: { directory: { path: 'public/javascript/'}}}, + { method: 'POST', path: '/api/report', handler: report.createReport } +]; diff --git a/lib/setup.js b/lib/setup.js new file mode 100644 index 0000000..dc63937 --- /dev/null +++ b/lib/setup.js @@ -0,0 +1,26 @@ +'use strict'; + +var Hapi = require('hapi'), + config = require('./config'); + +module.exports = function (next) { + var server = new Hapi.Server(); + + server.connection(config.server); + server.start(function (err) { + if (err) { + return next(err); + } + console.log('Server listening on ', server.info.uri); + setupRoutes(server, next); + }); +}; + +function setupRoutes(server, next) { + var routes = require('./routes'); + + routes.forEach(function (route) { + server.route(route); + }); + next(); +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8d3f65f --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "2015-hr-resolution", + "version": "1.0.0", + "description": "2015 DE Hampton Roads Resolutions app", + "main": "index.js", + "scripts": { + "test": "npm test" + }, + "dependencies": { + "hapi": "8.x.x" + }, + "author": "Homes.com", + "license": "MIT" +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..09dca6f --- /dev/null +++ b/public/index.html @@ -0,0 +1,8 @@ + + + + + +

Hello World

+ + diff --git a/public/javascript/test.js b/public/javascript/test.js new file mode 100644 index 0000000..69823fa --- /dev/null +++ b/public/javascript/test.js @@ -0,0 +1,2 @@ +var a = 'Hello world'; +console.log(a);