From 75d7e8545463a383d4056de6e96f9a1171585973 Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Sat, 2 Dec 2017 01:44:10 -0800 Subject: [PATCH] New skeleton web app --- .eslintrc.json | 17 +++++++++++++++++ client/.eslintrc.json | 6 ++++++ client/app.js | 5 +++++ package.json | 25 +++++++++++++++++++++++++ public/index.html | 7 +++++++ server/.eslintrc.json | 5 +++++ server/api.js | 7 +++++++ server/config.js | 3 +++ server/server.js | 21 +++++++++++++++++++++ webpack.config.js | 6 ++++++ 10 files changed, 102 insertions(+) create mode 100644 .eslintrc.json create mode 100644 client/.eslintrc.json create mode 100644 client/app.js create mode 100644 package.json create mode 100644 public/index.html create mode 100644 server/.eslintrc.json create mode 100644 server/api.js create mode 100644 server/config.js create mode 100644 server/server.js create mode 100644 webpack.config.js diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..7a3bed9 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,17 @@ +{ + "env": { + "es6": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "sourceType": "script" + }, + "plugins": ["prettier"], + "rules": { + "no-shadow": ["error", { "allow": ["err"] }], + "handle-callback-err": "error", + "prefer-arrow-callback": "error", + "curly": ["error", "multi", "consistent"], + "prettier/prettier": "error" + } +} diff --git a/client/.eslintrc.json b/client/.eslintrc.json new file mode 100644 index 0000000..dcd577e --- /dev/null +++ b/client/.eslintrc.json @@ -0,0 +1,6 @@ +{ + "env": { + "browser": true, + "commonjs": true + } +} diff --git a/client/app.js b/client/app.js new file mode 100644 index 0000000..5f20515 --- /dev/null +++ b/client/app.js @@ -0,0 +1,5 @@ +"use strict"; + +const m = require("mithril"); + +m.render(document.body, "hello world"); diff --git a/package.json b/package.json new file mode 100644 index 0000000..75fa1d6 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "genieacs-ui", + "version": "1.0.0", + "description": "", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "lint": "eslint --fix server/*.js client/*.js", + "build": "webpack", + "start": "npm run lint;npm run build;node server/server" + }, + "author": "Zaid Abdulla ", + "dependencies": { + "koa": "^2.4.1", + "koa-bodyparser": "^4.2.0", + "koa-router": "^7.3.0", + "koa-static": "^4.0.2", + "mithril": "^1.1.5" + }, + "devDependencies": { + "eslint": "^4.12.1", + "eslint-plugin-prettier": "^2.3.1", + "prettier": "^1.8.2", + "webpack": "^3.9.1" + } +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..772daa5 --- /dev/null +++ b/public/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/server/.eslintrc.json b/server/.eslintrc.json new file mode 100644 index 0000000..10d2238 --- /dev/null +++ b/server/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "env": { + "node": true + } +} diff --git a/server/api.js b/server/api.js new file mode 100644 index 0000000..c0c9598 --- /dev/null +++ b/server/api.js @@ -0,0 +1,7 @@ +"use strict"; + +const Router = require("koa-router"); + +const router = new Router(); + +module.exports = router; diff --git a/server/config.js b/server/config.js new file mode 100644 index 0000000..41d7767 --- /dev/null +++ b/server/config.js @@ -0,0 +1,3 @@ +"use strict"; + +exports.PORT = 3000; diff --git a/server/server.js b/server/server.js new file mode 100644 index 0000000..ea0d898 --- /dev/null +++ b/server/server.js @@ -0,0 +1,21 @@ +"use strict"; + +const Koa = require("koa"); +const Router = require("koa-router"); +const koaStatic = require("koa-static"); + +const config = require("./config"); +const api = require("./api"); + +const koa = new Koa(); +const router = new Router(); + +router.use("/api", api.routes(), api.allowedMethods()); + +koa.use(router.routes()); +koa.use(koaStatic("./public")); + +koa.listen(config.PORT, () => { + // eslint-disable-next-line no-console + console.log(`Server listening on port ${config.PORT}`); +}); diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..06a9de9 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,6 @@ +module.exports = { + entry: "./client/app.js", + output: { + filename: "public/app.js" + } +};