diff --git a/packages/polydev/src/middleware/router/handle.production.js b/packages/polydev/src/middleware/router/handle.production.js index c72ba48..4a04301 100644 --- a/packages/polydev/src/middleware/router/handle.production.js +++ b/packages/polydev/src/middleware/router/handle.production.js @@ -5,6 +5,15 @@ module.exports = async function handle(router, file, routes) { routes.map(async ([httpMethod, route]) => { const method = httpMethod.toLowerCase() const exported = require(file) + + if (!exported) { + return debug( + `Route %o does not have an exported handler from %o`, + route, + file.replace(process.cwd(), ".") + ) + } + const handler = await (exported.default || exported) debug(`router.${method}(%o, %o)`, route, file.replace(process.cwd(), ".")) diff --git a/packages/polydev/src/middleware/router/launcher.js b/packages/polydev/src/middleware/router/launcher.js index 535d345..3dba1e1 100644 --- a/packages/polydev/src/middleware/router/launcher.js +++ b/packages/polydev/src/middleware/router/launcher.js @@ -23,7 +23,7 @@ const routes = JSON.parse(routesString) async function startHandler() { const getLatestHandler = async () => { const exported = require(handlerPath) - const handler = await (exported.default || exported) + const handler = exported ? await (exported.default || exported) : exported return handler } @@ -82,8 +82,10 @@ async function startHandler() { `${handlerPath.replace( process.cwd(), "." - )} does not return a Function or a Server` + )} does not return a Function, Server, or path to package.json` ) + // In development, at least listen on PORT so that we can 404 + express().listen(PORT) } process.on("message", bridge(PORT)) diff --git a/routes/dev-only/index.js b/routes/dev-only/index.js new file mode 100644 index 0000000..5099622 --- /dev/null +++ b/routes/dev-only/index.js @@ -0,0 +1,25 @@ +module.exports = + process.env.NODE_ENV === "development" + ? (req, res) => { + res.send(` + + + + + + +
+ +
+
+

🤫 Shhhh!

+ +

+ This page is only available in development. +

+
+
+ + `) + } + : undefined diff --git a/routes/index.js b/routes/index.js index e7f1de9..b8384ca 100644 --- a/routes/index.js +++ b/routes/index.js @@ -25,6 +25,9 @@ module.exports = (req, res) => {
  • Apollo Server
  • +
  • + Development-Only Page +
  • Express