From 56e4f8a5f580f447a9dfa03b8fa36be76422d8e8 Mon Sep 17 00:00:00 2001 From: Said Sef Date: Fri, 3 Jul 2026 12:16:31 +0100 Subject: [PATCH] refactor(app): migrate to ES modules and drop unused mocha Convert the app from CommonJS to ES modules: set "type": "module" in package.json and switch the three source files from require/module.exports to import/export (keeping the .js extension - no .mjs rename). Relative imports now carry their .js extension as ESM requires, and the redundant 'use strict' pragmas are dropped since ES modules are always strict. Use the node: protocol for core builtins (node:http, node:crypto) so they can never be shadowed by a userland package. Remove the unused mocha devDependency: there are no test files and the test script is a stub, so it was dead weight (Node's built-in node:test covers future needs). Behaviour is unchanged - the explicit http.createServer(app) server handle is kept. Bump minor version 1.5.2 -> 1.6.0. --- app/index.js | 10 ++++------ app/middleware.js | 12 +++++------- app/package.json | 6 ++---- app/routes.js | 7 +++---- 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/app/index.js b/app/index.js index 56ef44f..66df4a2 100644 --- a/app/index.js +++ b/app/index.js @@ -1,9 +1,7 @@ -'use strict'; - -const express = require('express'); -const http = require('http'); -const middleware = require('./middleware'); -const routes = require('./routes'); +import express from 'express'; +import http from 'node:http'; +import middleware from './middleware.js'; +import routes from './routes.js'; const app = express(); const server = http.createServer(app); diff --git a/app/middleware.js b/app/middleware.js index e5b56de..0a75ef1 100644 --- a/app/middleware.js +++ b/app/middleware.js @@ -1,9 +1,7 @@ -'use strict'; - -const express = require('express'); -const logging = require('pino-http'); -const compression = require('compression'); -const helmet = require('helmet'); +import express from 'express'; +import logging from 'pino-http'; +import compression from 'compression'; +import helmet from 'helmet'; const middleware = [ express.urlencoded({ extended: true }), @@ -29,4 +27,4 @@ const middleware = [ compression() ]; -module.exports = middleware; \ No newline at end of file +export default middleware; diff --git a/app/package.json b/app/package.json index ceffc0d..e8be58f 100644 --- a/app/package.json +++ b/app/package.json @@ -1,8 +1,9 @@ { "name": "node-webserver", - "version": "1.5.2", + "version": "1.6.0", "description": "test application - web server", "main": "index.js", + "type": "module", "scripts": { "test": "echo \"Debug: no test specified\" && exit 0", "start": "node index.js", @@ -39,8 +40,5 @@ }, "bugs": { "url": "https://github.com/saidsef/node-webserver/issues" - }, - "devDependencies": { - "mocha": "^11.0.1" } } diff --git a/app/routes.js b/app/routes.js index d074066..6b55592 100644 --- a/app/routes.js +++ b/app/routes.js @@ -1,7 +1,6 @@ -'use strict'; +import express from 'express'; +import crypto from 'node:crypto'; -const express = require('express'); -const crypto = require('crypto'); const router = express.Router(); router.get('/healthz', (req, res) => { @@ -26,4 +25,4 @@ router.get('*default', (req, res) => { }); }); -module.exports = router; \ No newline at end of file +export default router;