Skip to content

Commit 41d6a2d

Browse files
refactor: export Loader, MMSocket and Module as ES modules
1 parent 4425f52 commit 41d6a2d

4 files changed

Lines changed: 17 additions & 15 deletions

File tree

index.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,9 @@
5151
<script type="text/javascript" src="translations/translations.js"></script>
5252
<script type="text/javascript" src="js/translator.js"></script>
5353
<script type="text/javascript" src="config/basepath.js"></script>
54-
<script type="text/javascript" src="js/module.js"></script>
55-
<script type="text/javascript" src="js/loader.js"></script>
56-
<script type="text/javascript" src="js/socketclient.js"></script>
5754
<script type="text/javascript" src="js/animateCSS.js"></script>
5855
<script type="text/javascript" src="js/positions.js"></script>
59-
<script type="text/javascript" src="js/main.js"></script>
56+
<script type="module" src="js/module.js"></script>
57+
<script type="module" src="js/main.js"></script>
6058
</body>
6159
</html>

js/loader.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* global defaultModules, vendor */
22

3-
const Loader = (function () {
3+
export const Loader = (function () {
44

55
/* Create helper variables */
66

@@ -294,5 +294,3 @@ const Loader = (function () {
294294
}
295295
};
296296
}());
297-
298-
globalThis.Loader = Loader;

js/module.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
/* global Loader, MMSocket, nunjucks */
1+
/* global nunjucks */
2+
3+
// eslint-disable-next-line import-x/extensions
4+
import { Loader } from "./loader.js";
5+
// eslint-disable-next-line import-x/extensions
6+
import { MMSocket } from "./socketclient.js";
27

38
/*
49
* Module Blueprint.
510
* @typedef {Object} Module
611
*/
7-
class Module {
12+
export class Module {
813

914
/**
1015
* Initializes per-instance mutable state.
@@ -412,6 +417,8 @@ class Module {
412417
}
413418
}
414419

420+
globalThis.Module = Module;
421+
415422
/**
416423
* Merging MagicMirror² (or other) default/config script by `@bugsounet`
417424
* Merge 2 objects or/with array
@@ -499,16 +506,14 @@ Module.register = function (name, moduleDefinition) {
499506
Module.definitions[name] = moduleDefinition;
500507
};
501508

502-
window.Module = Module;
503-
504509
/**
505510
* Compare two semantic version numbers and return the difference.
506511
* @param {string} a Version number a.
507512
* @param {string} b Version number b.
508513
* @returns {number} A positive number if a is larger than b, a negative
509514
* number if a is smaller and 0 if they are the same
510515
*/
511-
function cmpVersions (a, b) {
516+
export function cmpVersions (a, b) {
512517
const regExStrip0 = /(\.0+)+$/;
513518
const segmentsA = a.replace(regExStrip0, "").split(".");
514519
const segmentsB = b.replace(regExStrip0, "").split(".");
@@ -528,7 +533,7 @@ function cmpVersions (a, b) {
528533
* @param {object} obj Object to be cloned
529534
* @returns {object} the cloned object
530535
*/
531-
function cloneObject (obj) {
536+
export function cloneObject (obj) {
532537
if (obj === null || typeof obj !== "object") {
533538
return obj;
534539
}

js/socketclient.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* global io */
22

3-
const MMSocket = function (moduleName) {
3+
export const MMSocket = function (moduleName) {
44
if (typeof moduleName !== "string") {
55
throw new Error("Please set the module name for the MMSocket.");
66
}
@@ -45,4 +45,5 @@ const MMSocket = function (moduleName) {
4545
};
4646
};
4747

48-
globalThis.MMSocket = MMSocket;
48+
// Legacy global bridge for third-party modules that reference MMSocket directly.
49+
if (!globalThis.MMSocket) globalThis.MMSocket = MMSocket;

0 commit comments

Comments
 (0)