Skip to content

Commit b1865d8

Browse files
authored
refactor: use global.root_path instead relative paths (#3883)
1 parent 31bafc3 commit b1865d8

File tree

16 files changed

+34
-35
lines changed

16 files changed

+34
-35
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ Thanks to: @dathbe.
2424
- [clock] Add CSS to prevent line breaking of sunset/sunrise time display (#3816)
2525
- [core] Enhance system information logging format and include additional env and RAM details (#3839, #3843)
2626
- [refactor] Add new file `js/module_functions.js` to move code used in several modules to one place (#3837)
27+
- [refactor] Use global.root_path where possible (#3883)
2728
- [tests] refactor: simplify jest config file (#3844)
2829
- [tests] refactor: extract constants for weather electron tests (#3845)
2930
- [tests] refactor: add `setupDOMEnvironment` helper function to eliminate repetitive JSDOM setup code (#3860)

js/app.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,27 @@ const path = require("node:path");
66
const envsub = require("envsub");
77
const Log = require("logger");
88

9+
// global absolute root path
10+
global.root_path = path.resolve(`${__dirname}/../`);
11+
912
const Server = require(`${__dirname}/server`);
1013
const Utils = require(`${__dirname}/utils`);
11-
const defaultModules = require(`${__dirname}/../modules/default/defaultmodules`);
14+
15+
const defaultModules = require(`${global.root_path}/modules/default/defaultmodules`);
1216
// used to control fetch timeout for node_helpers
1317
const { setGlobalDispatcher, Agent } = require("undici");
1418
const { getEnvVarsAsObj } = require("#server_functions");
1519
// common timeout value, provide environment override in case
1620
const fetch_timeout = process.env.mmFetchTimeout !== undefined ? process.env.mmFetchTimeout : 30000;
1721

1822
// Get version number.
19-
global.version = require(`${__dirname}/../package.json`).version;
23+
global.version = require(`${global.root_path}/package.json`).version;
2024
global.mmTestMode = process.env.mmTestMode === "true";
2125
Log.log(`Starting MagicMirror: v${global.version}`);
2226

2327
// Log system information.
2428
Utils.logSystemInformation(global.version);
2529

26-
// global absolute root path
27-
global.root_path = path.resolve(`${__dirname}/../`);
28-
2930
if (process.env.MM_CONFIG_FILE) {
3031
global.configuration_file = process.env.MM_CONFIG_FILE.replace(`${global.root_path}/`, "");
3132
}
@@ -180,10 +181,10 @@ function App () {
180181
const elements = module.split("/");
181182
const moduleName = elements[elements.length - 1];
182183
const env = getEnvVarsAsObj();
183-
let moduleFolder = path.resolve(`${__dirname}/../${env.modulesDir}`, module);
184+
let moduleFolder = path.resolve(`${global.root_path}/${env.modulesDir}`, module);
184185

185186
if (defaultModules.includes(moduleName)) {
186-
const defaultModuleFolder = path.resolve(`${__dirname}/../modules/default/`, module);
187+
const defaultModuleFolder = path.resolve(`${global.root_path}/modules/default/`, module);
187188
if (process.env.JEST_WORKER_ID === undefined) {
188189
moduleFolder = defaultModuleFolder;
189190
} else {

js/check_config.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ const Ajv = require("ajv");
55
const globals = require("globals");
66
const { Linter } = require("eslint");
77

8-
const rootPath = path.resolve(`${__dirname}/../`);
9-
const Log = require(`${rootPath}/js/logger.js`);
10-
const Utils = require(`${rootPath}/js/utils.js`);
8+
const Log = require(`${global.root_path}/js/logger.js`);
9+
const Utils = require(`${global.root_path}/js/utils.js`);
1110

1211
const linter = new Linter({ configType: "flat" });
1312
const ajv = new Ajv();
@@ -19,7 +18,7 @@ const ajv = new Ajv();
1918
*/
2019
function getConfigFile () {
2120
// FIXME: This function should be in core. Do you want refactor me ;) ?, be good!
22-
return path.resolve(process.env.MM_CONFIG_FILE || `${rootPath}/config/config.js`);
21+
return path.resolve(process.env.MM_CONFIG_FILE || `${global.root_path}/config/config.js`);
2322
}
2423

2524
/**

js/utils.js

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

modules/default/calendar/calendarfetcherutils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44
const moment = require("moment-timezone");
55

6-
const Log = require("../../../js/logger");
6+
const Log = require("logger");
77

88
const CalendarFetcherUtils = {
99

modules/default/calendar/debug.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
// Alias modules mentioned in package.js under _moduleAliases.
77
require("module-alias/register");
8-
const Log = require("../../../js/logger");
8+
const Log = require("logger");
99

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

modules/default/updatenotification/git_helper.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ const fs = require("node:fs");
44
const path = require("node:path");
55
const Log = require("logger");
66

7-
const BASE_DIR = path.normalize(`${__dirname}/../../../`);
8-
97
class GitHelper {
108
constructor () {
119
this.gitRepos = [];
@@ -35,10 +33,10 @@ class GitHelper {
3533
}
3634

3735
async add (moduleName) {
38-
let moduleFolder = BASE_DIR;
36+
let moduleFolder = `${global.root_path}`;
3937

4038
if (moduleName !== "MagicMirror") {
41-
moduleFolder = `${moduleFolder}modules/${moduleName}`;
39+
moduleFolder = `${moduleFolder}/modules/${moduleName}`;
4240
}
4341

4442
try {

modules/default/updatenotification/node_helper.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
const fs = require("node:fs");
22
const path = require("node:path");
33
const NodeHelper = require("node_helper");
4-
const defaultModules = require("../defaultmodules");
4+
5+
const defaultModules = require(`${global.root_path}/modules/default/defaultmodules`);
56
const GitHelper = require("./git_helper");
67
const UpdateHelper = require("./update_helper");
78

@@ -21,7 +22,7 @@ module.exports = NodeHelper.create({
2122
return modules;
2223
} else {
2324
// get modules from modules-directory
24-
const moduleDir = path.normalize(`${__dirname}/../../`);
25+
const moduleDir = path.normalize(`${global.root_path}/modules`);
2526
const getDirectories = (source) => {
2627
return fs.readdirSync(source, { withFileTypes: true })
2728
.filter((dirent) => dirent.isDirectory() && dirent.name !== "default")

tests/e2e/fonts_spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const helpers = require("./helpers/global-setup");
33
describe("All font files from roboto.css should be downloadable", () => {
44
const fontFiles = [];
55
// Statements below filters out all 'url' lines in the CSS file
6-
const fileContent = require("node:fs").readFileSync(`${__dirname}/../../css/roboto.css`, "utf8");
6+
const fileContent = require("node:fs").readFileSync(`${global.root_path}/css/roboto.css`, "utf8");
77
const regex = /\burl\(['"]([^'"]+)['"]\)/g;
88
let match = regex.exec(fileContent);
99
while (match !== null) {

tests/e2e/helpers/basic-auth.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ app.use(basicAuth);
1313

1414
// Set available directories
1515
const directories = ["/tests/configs", "/tests/mocks"];
16-
const rootPath = path.resolve(`${__dirname}/../../../`);
1716

1817
for (let directory of directories) {
19-
app.use(directory, express.static(path.resolve(rootPath + directory)));
18+
app.use(directory, express.static(path.resolve(`${global.root_path}/${directory}`)));
2019
}
2120

2221
let server;

0 commit comments

Comments
 (0)