Skip to content

Commit d4043ca

Browse files
refactor: replace module-alias dependency with internal alias resolver
1 parent a49fbed commit d4043ca

File tree

7 files changed

+52
-30
lines changed

7 files changed

+52
-30
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Thanks to: @dathbe.
4141
- Improve test reliability and maintainability
4242
- [tests] add alert module tests for different welcome_message configurations (#3867)
4343
- [lint-staged] use `prettier --write --ignore-unknown` in `lint-staged` to avoid errors on unsupported files (#3888)
44+
- [core] refactor: replace `module-alias` dependency with internal alias resolver
4445

4546
### Updated
4647

js/alias-resolver.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Internal alias mapping for default and 3rd party modules.
2+
// Provides short require identifiers: "logger" and "node_helper".
3+
// For a future ESM migration, replace this with a public export/import surface.
4+
5+
const path = require("node:path");
6+
const Module = require("module");
7+
8+
const root = path.join(__dirname, "..");
9+
10+
// Keep this list minimal; do not add new aliases without architectural review.
11+
const ALIASES = {
12+
logger: "js/logger.js",
13+
node_helper: "js/node_helper.js"
14+
};
15+
16+
// Resolve to absolute paths now.
17+
const resolved = Object.fromEntries(
18+
Object.entries(ALIASES).map(([k, rel]) => [k, path.join(root, rel)])
19+
);
20+
21+
// Prevent multiple patching if this file is required more than once.
22+
if (!Module._mmAliasPatched) {
23+
const origResolveFilename = Module._resolveFilename;
24+
Module._resolveFilename = function (request, parent, isMain, options) {
25+
if (Object.prototype.hasOwnProperty.call(resolved, request)) {
26+
return resolved[request];
27+
}
28+
return origResolveFilename.call(this, request, parent, isMain, options);
29+
};
30+
Module._mmAliasPatched = true; // non-enumerable marker would be overkill here
31+
}

js/app.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// Alias modules mentioned in package.js under _moduleAliases.
2-
require("module-alias/register");
1+
// Load lightweight internal alias resolver
2+
require("./alias-resolver");
33

44
const fs = require("node:fs");
55
const path = require("node:path");

js/utils.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
const path = require("node:path");
2-
3-
const rootPath = path.resolve(`${__dirname}/../`);
4-
const Log = require(`${rootPath}/js/logger.js`);
51
const os = require("node:os");
62
const fs = require("node:fs");
73
const si = require("systeminformation");
4+
const Log = require("logger");
85

96
const modulePositions = []; // will get list from index.html
107
const regionRegEx = /"region ([^"]*)/i;

modules/default/calendar/debug.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
* use this script with `node debug.js` to test the fetcher without the need
44
* of starting the MagicMirror² core. Adjust the values below to your desire.
55
*/
6-
// Alias modules mentioned in package.js under _moduleAliases.
7-
require("module-alias/register");
6+
// Load internal alias resolver
7+
require("../../../js/alias-resolver");
88
const Log = require("logger");
99

1010
const CalendarFetcher = require("./calendarfetcher");

package-lock.json

Lines changed: 15 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484
"helmet": "^8.1.0",
8585
"html-to-text": "^9.0.5",
8686
"iconv-lite": "^0.7.0",
87-
"module-alias": "^2.2.3",
8887
"moment": "^2.30.1",
8988
"moment-timezone": "^0.6.0",
9089
"node-ical": "^0.21.0",
@@ -121,9 +120,5 @@
121120
},
122121
"engines": {
123122
"node": ">=22.18.0"
124-
},
125-
"_moduleAliases": {
126-
"node_helper": "js/node_helper.js",
127-
"logger": "js/logger.js"
128123
}
129124
}

0 commit comments

Comments
 (0)