From 31052bbb085ad275f2203a6691cb68cd26145c34 Mon Sep 17 00:00:00 2001 From: Eric Clemmons Date: Thu, 17 Jan 2019 19:16:50 -0800 Subject: [PATCH 1/2] Export { polydev} as a middleware --- packages/polydev/src/index.js | 23 +++++++++++++++++++++++ packages/polydev/src/server.js | 16 +++------------- 2 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 packages/polydev/src/index.js diff --git a/packages/polydev/src/index.js b/packages/polydev/src/index.js new file mode 100644 index 0000000..d95a471 --- /dev/null +++ b/packages/polydev/src/index.js @@ -0,0 +1,23 @@ +const express = require("express") +const path = require("path") + +const middleware = require("./middleware") + +const { NODE_ENV = "development" } = process.env + +module.exports.polydev = (options = {}) => { + const { assets = "public", routes = "routes" } = options + const app = express() + + app.use(middleware.assets(assets)) + app.use(middleware.router(routes)) + + // TODO Merge 404 & errors together + if (NODE_ENV === "development") { + app.use("/_polydev", middleware.assets(path.resolve(__dirname, "./public"))) + app.use(middleware.notFound) + app.use(middleware.error) + } + + return app +} diff --git a/packages/polydev/src/server.js b/packages/polydev/src/server.js index 14fec81..b4adff9 100644 --- a/packages/polydev/src/server.js +++ b/packages/polydev/src/server.js @@ -1,10 +1,8 @@ const express = require("express") const opn = require("opn") -const path = require("path") -const { assets, error, notFound, router } = require("./middleware") - -const { NODE_ENV = "development", PORT = 3000 } = process.env +const { polydev } = require(".") +const { PORT = 3000 } = process.env process.on("uncaughtException", (error) => { // TODO Youch @@ -18,15 +16,7 @@ process.on("unhandledRejection", (error) => { const proxy = express() -proxy.use(assets("public")) -proxy.use(router("routes")) - -// TODO Merge 404 & errors together -if (NODE_ENV === "development") { - proxy.use("/_polydev", assets(path.resolve(__dirname, "./public"))) - proxy.use(notFound) - proxy.use(error) -} +proxy.use(polydev()) const server = proxy.listen(PORT, () => { const url = `http://localhost:${server.address().port}/` From 62a81a5905553a9a75d825e9c0a867d982b1766b Mon Sep 17 00:00:00 2001 From: Eric Clemmons Date: Thu, 17 Jan 2019 19:17:02 -0800 Subject: [PATCH 2/2] Add a standalone server.js via dev:server & start:server --- package.json | 5 ++++- server.js | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 server.js diff --git a/package.json b/package.json index 4eb8e49..a764c0c 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,12 @@ "scripts": { "postinstall": "yarn workspace polydev link", "dev": "DEBUG=polydev polydev", + "dev:server": "DEBUG=polydev node server", "release": "cd packages/polydev && npx np --yolo", "prestart": "yarn workspace next-example build", - "start": "NODE_ENV=production polydev" + "prestart:server": "yarn workspace next-example build", + "start": "NODE_ENV=production polydev", + "start:server": "NODE_ENV=production node server" }, "workspaces": ["packages/*"] } diff --git a/server.js b/server.js new file mode 100644 index 0000000..fd760a2 --- /dev/null +++ b/server.js @@ -0,0 +1,15 @@ +const express = require("express") +const { polydev } = require("polydev") + +const app = express().use( + polydev({ + assets: "public", + routes: "routes" + }) +) + +const server = app.listen(process.env.PORT || 3000, () => { + const url = `http://localhost:${server.address().port}/` + + console.log(`🚀 Ready! ${url}`) +})