@medusajs/medusa 2.12.2-preview-20251203150144 → 2.12.2-snapshot-20251203150309
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/develop.d.ts.map +1 -1
- package/dist/commands/develop.js +82 -20
- package/dist/commands/develop.js.map +1 -1
- package/dist/commands/start.d.ts +5 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +34 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/utils/dev-server/errors.d.ts +5 -0
- package/dist/commands/utils/dev-server/errors.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/errors.js +14 -0
- package/dist/commands/utils/dev-server/errors.js.map +1 -0
- package/dist/commands/utils/dev-server/index.d.ts +7 -0
- package/dist/commands/utils/dev-server/index.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/index.js +66 -0
- package/dist/commands/utils/dev-server/index.js.map +1 -0
- package/dist/commands/utils/dev-server/module-cache-manager.d.ts +50 -0
- package/dist/commands/utils/dev-server/module-cache-manager.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/module-cache-manager.js +135 -0
- package/dist/commands/utils/dev-server/module-cache-manager.js.map +1 -0
- package/dist/commands/utils/dev-server/recovery-service.d.ts +27 -0
- package/dist/commands/utils/dev-server/recovery-service.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/recovery-service.js +73 -0
- package/dist/commands/utils/dev-server/recovery-service.js.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/base.d.ts +20 -0
- package/dist/commands/utils/dev-server/reloaders/base.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/base.js +33 -0
- package/dist/commands/utils/dev-server/reloaders/base.js.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/jobs.d.ts +29 -0
- package/dist/commands/utils/dev-server/reloaders/jobs.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/jobs.js +77 -0
- package/dist/commands/utils/dev-server/reloaders/jobs.js.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/modules.d.ts +41 -0
- package/dist/commands/utils/dev-server/reloaders/modules.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/modules.js +190 -0
- package/dist/commands/utils/dev-server/reloaders/modules.js.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/routes.d.ts +23 -0
- package/dist/commands/utils/dev-server/reloaders/routes.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/routes.js +60 -0
- package/dist/commands/utils/dev-server/reloaders/routes.js.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/subscribers.d.ts +31 -0
- package/dist/commands/utils/dev-server/reloaders/subscribers.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/subscribers.js +111 -0
- package/dist/commands/utils/dev-server/reloaders/subscribers.js.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/workflows.d.ts +40 -0
- package/dist/commands/utils/dev-server/reloaders/workflows.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/reloaders/workflows.js +129 -0
- package/dist/commands/utils/dev-server/reloaders/workflows.js.map +1 -0
- package/dist/commands/utils/dev-server/resource-registry.d.ts +12 -0
- package/dist/commands/utils/dev-server/resource-registry.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/resource-registry.js +20 -0
- package/dist/commands/utils/dev-server/resource-registry.js.map +1 -0
- package/dist/commands/utils/dev-server/types.d.ts +52 -0
- package/dist/commands/utils/dev-server/types.d.ts.map +1 -0
- package/dist/commands/utils/dev-server/types.js +17 -0
- package/dist/commands/utils/dev-server/types.js.map +1 -0
- package/dist/feature-flags/backend-hmr.d.ts +4 -0
- package/dist/feature-flags/backend-hmr.d.ts.map +1 -0
- package/dist/feature-flags/backend-hmr.js +12 -0
- package/dist/feature-flags/backend-hmr.js.map +1 -0
- package/dist/loaders/api.d.ts.map +1 -1
- package/dist/loaders/api.js +6 -0
- package/dist/loaders/api.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +54 -54
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"develop.d.ts","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"AAoBA,yBAA+B,EAAE,KAAK,EAAE,SAAS,EAAE;;;CAAA,iBA0OlD"}
|
package/dist/commands/develop.js
CHANGED
|
@@ -12,6 +12,7 @@ const child_process_1 = require("child_process");
|
|
|
12
12
|
const chokidar_1 = __importDefault(require("chokidar"));
|
|
13
13
|
const os_1 = require("os");
|
|
14
14
|
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const backend_hmr_1 = __importDefault(require("../feature-flags/backend-hmr"));
|
|
15
16
|
const loaders_1 = require("../loaders");
|
|
16
17
|
const defaultConfig = {
|
|
17
18
|
padding: 5,
|
|
@@ -21,6 +22,15 @@ const defaultConfig = {
|
|
|
21
22
|
async function default_1({ types, directory }) {
|
|
22
23
|
const container = await (0, loaders_1.initializeContainer)(directory);
|
|
23
24
|
const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
25
|
+
const isBackendHmrEnabled = utils_1.FeatureFlag.isFeatureEnabled(backend_hmr_1.default.key);
|
|
26
|
+
const reloadActionVerb = isBackendHmrEnabled ? "reloading" : "restarting";
|
|
27
|
+
const logSource = isBackendHmrEnabled ? "[HMR]" : "[Watcher]";
|
|
28
|
+
if (isBackendHmrEnabled) {
|
|
29
|
+
logger.info(`${logSource} Using backend HMR dev server (reload on file change)`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
logger.info(`${logSource} Using standard dev server (restart on file change)`);
|
|
33
|
+
}
|
|
24
34
|
const args = process.argv;
|
|
25
35
|
const argv = process.argv.indexOf("--") !== -1
|
|
26
36
|
? process.argv.slice(process.argv.indexOf("--") + 1)
|
|
@@ -48,26 +58,69 @@ async function default_1({ types, directory }) {
|
|
|
48
58
|
* restart the dev server instead of asking the user to re-run
|
|
49
59
|
* the command.
|
|
50
60
|
*/
|
|
51
|
-
start() {
|
|
52
|
-
|
|
61
|
+
async start() {
|
|
62
|
+
const forkOptions = {
|
|
53
63
|
cwd: directory,
|
|
54
64
|
env: {
|
|
55
65
|
...process.env,
|
|
56
66
|
NODE_ENV: "development",
|
|
67
|
+
...(isBackendHmrEnabled && { MEDUSA_HMR_ENABLED: "true" }),
|
|
57
68
|
},
|
|
58
69
|
execArgv: argv,
|
|
59
|
-
}
|
|
70
|
+
};
|
|
71
|
+
// Enable IPC for HMR mode to communicate reload requests
|
|
72
|
+
if (isBackendHmrEnabled) {
|
|
73
|
+
forkOptions.stdio = ["inherit", "inherit", "inherit", "ipc"];
|
|
74
|
+
}
|
|
75
|
+
this.childProcess = (0, child_process_1.fork)(cliPath, ["start", ...args], forkOptions);
|
|
60
76
|
this.childProcess.on("error", (error) => {
|
|
61
77
|
// @ts-ignore
|
|
62
|
-
logger.error(
|
|
63
|
-
logger.info(
|
|
78
|
+
logger.error(`${logSource} Dev server failed to start`, error);
|
|
79
|
+
logger.info(`${logSource} The server will restart automatically after your changes`);
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
/**
|
|
83
|
+
* Sends an HMR reload request to the child process and waits for result.
|
|
84
|
+
* Returns true if reload succeeded, false if it failed.
|
|
85
|
+
*/
|
|
86
|
+
async sendHmrReload(action, file) {
|
|
87
|
+
return new Promise((resolve) => {
|
|
88
|
+
if (!this.childProcess) {
|
|
89
|
+
resolve(false);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const timeout = setTimeout(() => {
|
|
93
|
+
resolve(false);
|
|
94
|
+
}, 30000); // 30s timeout
|
|
95
|
+
const messageHandler = (msg) => {
|
|
96
|
+
if (msg?.type === "hmr-result") {
|
|
97
|
+
clearTimeout(timeout);
|
|
98
|
+
this.childProcess?.off("message", messageHandler);
|
|
99
|
+
resolve(msg.success === true);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
this.childProcess.on("message", messageHandler);
|
|
103
|
+
this.childProcess.send({
|
|
104
|
+
type: "hmr-reload",
|
|
105
|
+
action,
|
|
106
|
+
file: path_1.default.resolve(directory, file),
|
|
107
|
+
rootDirectory: directory,
|
|
108
|
+
});
|
|
64
109
|
});
|
|
65
110
|
},
|
|
66
111
|
/**
|
|
67
112
|
* Restarts the development server by cleaning up the existing
|
|
68
113
|
* child process and forking a new one
|
|
69
114
|
*/
|
|
70
|
-
restart() {
|
|
115
|
+
async restart(action, file) {
|
|
116
|
+
if (isBackendHmrEnabled && this.childProcess) {
|
|
117
|
+
const success = await this.sendHmrReload(action, file);
|
|
118
|
+
if (success) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
// HMR reload failed, kill the process and restart
|
|
122
|
+
logger.info(`${logSource} HMR reload failed, restarting server...`);
|
|
123
|
+
}
|
|
71
124
|
if (this.childProcess) {
|
|
72
125
|
this.childProcess.removeAllListeners();
|
|
73
126
|
if (process.platform === "win32") {
|
|
@@ -77,7 +130,7 @@ async function default_1({ types, directory }) {
|
|
|
77
130
|
this.childProcess.kill("SIGINT");
|
|
78
131
|
}
|
|
79
132
|
}
|
|
80
|
-
this.start();
|
|
133
|
+
await this.start();
|
|
81
134
|
},
|
|
82
135
|
/**
|
|
83
136
|
* Watches the entire file system and ignores the following files
|
|
@@ -88,9 +141,9 @@ async function default_1({ types, directory }) {
|
|
|
88
141
|
* - src/admin/**
|
|
89
142
|
*/
|
|
90
143
|
watch() {
|
|
91
|
-
this.watcher = chokidar_1.default.watch(
|
|
144
|
+
this.watcher = chokidar_1.default.watch(".", {
|
|
92
145
|
ignoreInitial: true,
|
|
93
|
-
cwd:
|
|
146
|
+
cwd: directory,
|
|
94
147
|
ignored: [
|
|
95
148
|
/(^|[\\/\\])\../,
|
|
96
149
|
"node_modules",
|
|
@@ -101,20 +154,29 @@ async function default_1({ types, directory }) {
|
|
|
101
154
|
".medusa/**/*",
|
|
102
155
|
],
|
|
103
156
|
});
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
157
|
+
async function handleFileChange(action, file) {
|
|
158
|
+
const actionVerb = action === "add"
|
|
159
|
+
? "created"
|
|
160
|
+
: action === "change"
|
|
161
|
+
? "modified"
|
|
162
|
+
: "removed";
|
|
163
|
+
const now = performance.now();
|
|
164
|
+
logger.info(`${logSource} ${actionVerb} ${path_1.default.relative(directory, file)} ${actionVerb}: ${reloadActionVerb} dev server`);
|
|
165
|
+
await this.restart(action, file);
|
|
166
|
+
const duration = performance.now() - now;
|
|
167
|
+
logger.info(`${logSource} Reloaded in ${duration.toFixed(2)}ms`);
|
|
168
|
+
}
|
|
169
|
+
this.watcher.on("add", async (file) => {
|
|
170
|
+
handleFileChange.call(this, "add", file);
|
|
107
171
|
});
|
|
108
|
-
this.watcher.on("change", (file) => {
|
|
109
|
-
|
|
110
|
-
this.restart();
|
|
172
|
+
this.watcher.on("change", async (file) => {
|
|
173
|
+
handleFileChange.call(this, "change", file);
|
|
111
174
|
});
|
|
112
|
-
this.watcher.on("unlink", (file) => {
|
|
113
|
-
|
|
114
|
-
this.restart();
|
|
175
|
+
this.watcher.on("unlink", async (file) => {
|
|
176
|
+
handleFileChange.call(this, "unlink", file);
|
|
115
177
|
});
|
|
116
178
|
this.watcher.on("ready", function () {
|
|
117
|
-
logger.info(
|
|
179
|
+
logger.info(`${logSource} Watching filesystem to reload dev server on file change`);
|
|
118
180
|
});
|
|
119
181
|
},
|
|
120
182
|
};
|
|
@@ -133,7 +195,7 @@ async function default_1({ types, directory }) {
|
|
|
133
195
|
}
|
|
134
196
|
process.exit(0);
|
|
135
197
|
});
|
|
136
|
-
devServer.start();
|
|
198
|
+
await devServer.start();
|
|
137
199
|
devServer.watch();
|
|
138
200
|
}
|
|
139
201
|
//# sourceMappingURL=develop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop.js","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"develop.js","sourceRoot":"","sources":["../../src/commands/develop.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/start.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GracefulShutdownServer } from "@medusajs/framework/utils";
|
|
1
2
|
/**
|
|
2
3
|
* Imports the "instrumentation.js" file from the root of the
|
|
3
4
|
* directory and invokes the register function. The existence
|
|
@@ -18,6 +19,9 @@ declare function start(args: {
|
|
|
18
19
|
cluster?: string;
|
|
19
20
|
workers?: string;
|
|
20
21
|
servers?: string;
|
|
21
|
-
}): Promise<
|
|
22
|
+
}): Promise<{
|
|
23
|
+
server: GracefulShutdownServer;
|
|
24
|
+
gracefulShutDown: () => void;
|
|
25
|
+
} | void>;
|
|
22
26
|
export default start;
|
|
23
27
|
//# sourceMappingURL=start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAQA,OAAO,EAML,sBAAsB,EAGvB,MAAM,2BAA2B,CAAA;AAuClC;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,iBA6B9D;AAED;;;GAGG;AAEH,eAAO,IAAI,mBAAmB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAiB,CAAA;AAoGhF,iBAAe,KAAK,CAAC,IAAI,EAAE;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,sBAAsB,CAAA;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,IAAI,CAAC,CAqMR;AAED,eAAe,KAAK,CAAA"}
|
package/dist/commands/start.js
CHANGED
|
@@ -49,6 +49,8 @@ const utils_1 = require("@medusajs/framework/utils");
|
|
|
49
49
|
const modules_sdk_1 = require("@medusajs/framework/modules-sdk");
|
|
50
50
|
const url_1 = require("url");
|
|
51
51
|
const loaders_1 = __importStar(require("../loaders"));
|
|
52
|
+
const dev_server_1 = require("./utils/dev-server");
|
|
53
|
+
const errors_1 = require("./utils/dev-server/errors");
|
|
52
54
|
const EVERY_SIXTH_HOUR = "0 */6 * * *";
|
|
53
55
|
const CRON_SCHEDULE = EVERY_SIXTH_HOUR;
|
|
54
56
|
const INSTRUMENTATION_FILE = "instrumentation";
|
|
@@ -140,6 +142,34 @@ function findExpressRoutePath({ stack, url, }) {
|
|
|
140
142
|
}
|
|
141
143
|
return undefined;
|
|
142
144
|
}
|
|
145
|
+
function handleHMRReload(logger) {
|
|
146
|
+
// Set up HMR reload handler if running in HMR mode
|
|
147
|
+
if (process.env.MEDUSA_HMR_ENABLED === "true" && process.send) {
|
|
148
|
+
;
|
|
149
|
+
global.__MEDUSA_HMR_ROUTE_REGISTRY__ = true;
|
|
150
|
+
process.on("message", async (msg) => {
|
|
151
|
+
if (msg?.type === "hmr-reload") {
|
|
152
|
+
const { action, file, rootDirectory } = msg;
|
|
153
|
+
const success = await (0, dev_server_1.reloadResources)({
|
|
154
|
+
logSource: "[HMR]",
|
|
155
|
+
action,
|
|
156
|
+
absoluteFilePath: file,
|
|
157
|
+
logger,
|
|
158
|
+
rootDirectory,
|
|
159
|
+
})
|
|
160
|
+
.then(() => true)
|
|
161
|
+
.catch((error) => {
|
|
162
|
+
if (errors_1.HMRReloadError.isHMRReloadError(error)) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
logger.error("[HMR] Reload failed with unexpected error", error);
|
|
166
|
+
return false;
|
|
167
|
+
});
|
|
168
|
+
process.send({ type: "hmr-result", success });
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
143
173
|
async function start(args) {
|
|
144
174
|
const { port = 9000, host, directory, types, cluster: clusterSize, workers, servers, } = args;
|
|
145
175
|
const maxCpus = os_1.default.cpus().length;
|
|
@@ -234,7 +264,8 @@ async function start(args) {
|
|
|
234
264
|
(0, node_schedule_1.scheduleJob)(CRON_SCHEDULE, () => {
|
|
235
265
|
(0, telemetry_1.track)("PING");
|
|
236
266
|
});
|
|
237
|
-
|
|
267
|
+
handleHMRReload(logger);
|
|
268
|
+
return { server, gracefulShutDown };
|
|
238
269
|
}
|
|
239
270
|
catch (err) {
|
|
240
271
|
logger.error("Error starting server", err);
|
|
@@ -289,7 +320,7 @@ async function start(args) {
|
|
|
289
320
|
if (msg.index > 0) {
|
|
290
321
|
process.env.PLUGIN_ADMIN_UI_SKIP_CACHE = "true";
|
|
291
322
|
}
|
|
292
|
-
await internalStart(!!types && msg.index === 0);
|
|
323
|
+
return await internalStart(!!types && msg.index === 0);
|
|
293
324
|
});
|
|
294
325
|
}
|
|
295
326
|
}
|
|
@@ -297,7 +328,7 @@ async function start(args) {
|
|
|
297
328
|
/**
|
|
298
329
|
* Not in cluster mode
|
|
299
330
|
*/
|
|
300
|
-
await internalStart(!!types);
|
|
331
|
+
return await internalStart(!!types);
|
|
301
332
|
}
|
|
302
333
|
}
|
|
303
334
|
exports.default = start;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,cAAc;gBAIlD,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HMRReloadError = void 0;
|
|
4
|
+
class HMRReloadError extends Error {
|
|
5
|
+
static isHMRReloadError(error) {
|
|
6
|
+
return error instanceof HMRReloadError || error.name === "HMRReloadError";
|
|
7
|
+
}
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "HMRReloadError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.HMRReloadError = HMRReloadError;
|
|
14
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAC,gBAAgB,CAAC,KAAY;QAClC,OAAO,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAA;IAC3E,CAAC;IAED,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AATD,wCASC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReloadParams } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Main entry point for reloading resources (routes, subscribers, workflows, and modules)
|
|
4
|
+
* Orchestrates the reload process and handles recovery of broken modules
|
|
5
|
+
*/
|
|
6
|
+
export declare function reloadResources({ logSource, action, absoluteFilePath, keepCache, logger, skipRecovery, rootDirectory, }: ReloadParams): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,YAAY,EAAE,MAAM,SAAS,CAAA;AAgFxD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,YAAoB,EACpB,aAAa,GACd,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC9B"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reloadResources = reloadResources;
|
|
4
|
+
const framework_1 = require("@medusajs/framework");
|
|
5
|
+
const logger_1 = require("@medusajs/framework/logger");
|
|
6
|
+
const module_cache_manager_1 = require("./module-cache-manager");
|
|
7
|
+
const recovery_service_1 = require("./recovery-service");
|
|
8
|
+
const routes_1 = require("./reloaders/routes");
|
|
9
|
+
const subscribers_1 = require("./reloaders/subscribers");
|
|
10
|
+
const workflows_1 = require("./reloaders/workflows");
|
|
11
|
+
const resource_registry_1 = require("./resource-registry");
|
|
12
|
+
const jobs_1 = require("./reloaders/jobs");
|
|
13
|
+
const modules_1 = require("./reloaders/modules");
|
|
14
|
+
const errors_1 = require("./errors");
|
|
15
|
+
let sharedCacheManager;
|
|
16
|
+
const sharedRegistry = new resource_registry_1.ResourceRegistry();
|
|
17
|
+
const reloaders = {};
|
|
18
|
+
function initializeReloaders(logSource, rootDirectory) {
|
|
19
|
+
sharedCacheManager ??= new module_cache_manager_1.ModuleCacheManager(logSource);
|
|
20
|
+
const globals = global;
|
|
21
|
+
if (!reloaders.routesReloader) {
|
|
22
|
+
const routeReloader = new routes_1.RouteReloader(globals.__MEDUSA_HMR_API_LOADER__, sharedCacheManager, logSource, logger_1.logger);
|
|
23
|
+
reloaders.routesReloader = routeReloader;
|
|
24
|
+
}
|
|
25
|
+
if (!reloaders.subscribersReloader) {
|
|
26
|
+
const subscriberReloader = new subscribers_1.SubscriberReloader(framework_1.container, sharedCacheManager, sharedRegistry, logSource, logger_1.logger);
|
|
27
|
+
reloaders.subscribersReloader = subscriberReloader;
|
|
28
|
+
}
|
|
29
|
+
if (!reloaders.workflowsReloader) {
|
|
30
|
+
const workflowReloader = new workflows_1.WorkflowReloader(globals.WorkflowManager, sharedCacheManager, sharedRegistry, reloadResources, logSource, logger_1.logger, rootDirectory);
|
|
31
|
+
reloaders.workflowsReloader = workflowReloader;
|
|
32
|
+
}
|
|
33
|
+
if (!reloaders.jobsReloader) {
|
|
34
|
+
const jobReloader = new jobs_1.JobReloader(globals.WorkflowManager, sharedCacheManager, framework_1.container, sharedRegistry, logSource, logger_1.logger);
|
|
35
|
+
reloaders.jobsReloader = jobReloader;
|
|
36
|
+
}
|
|
37
|
+
if (!reloaders.modulesReloader) {
|
|
38
|
+
const moduleReloader = new modules_1.ModuleReloader(sharedCacheManager, rootDirectory, logSource, logger_1.logger);
|
|
39
|
+
reloaders.modulesReloader = moduleReloader;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const unmanagedFiles = ["medusa-config", ".env"];
|
|
43
|
+
/**
|
|
44
|
+
* Main entry point for reloading resources (routes, subscribers, workflows, and modules)
|
|
45
|
+
* Orchestrates the reload process and handles recovery of broken modules
|
|
46
|
+
*/
|
|
47
|
+
async function reloadResources({ logSource, action, absoluteFilePath, keepCache, logger, skipRecovery = false, rootDirectory, }) {
|
|
48
|
+
if (unmanagedFiles.some((file) => absoluteFilePath.includes(file))) {
|
|
49
|
+
throw new errors_1.HMRReloadError(`File ${absoluteFilePath} is not managed by the dev server HMR. Server restart may be required.`);
|
|
50
|
+
}
|
|
51
|
+
initializeReloaders(logSource, rootDirectory);
|
|
52
|
+
// Reload modules first as other resources might depend on them
|
|
53
|
+
await reloaders.modulesReloader?.reload?.(action, absoluteFilePath);
|
|
54
|
+
// Reload in dependency order: workflows → routes → subscribers → jobs
|
|
55
|
+
// Jobs depend on workflows, so workflows must be reloaded first
|
|
56
|
+
await reloaders.workflowsReloader.reload(action, absoluteFilePath, keepCache, skipRecovery);
|
|
57
|
+
await reloaders.routesReloader.reload(action, absoluteFilePath);
|
|
58
|
+
await reloaders.subscribersReloader?.reload?.(action, absoluteFilePath);
|
|
59
|
+
await reloaders.jobsReloader?.reload?.(action, absoluteFilePath);
|
|
60
|
+
// Attempt recovery of broken modules (unless we're already in recovery mode)
|
|
61
|
+
if (!skipRecovery) {
|
|
62
|
+
const recoveryService = new recovery_service_1.RecoveryService(sharedCacheManager, reloadResources, logSource, logger, rootDirectory);
|
|
63
|
+
await recoveryService.recoverBrokenModules();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/index.ts"],"names":[],"mappings":";;AA4FA,0CA4CC;AAxID,mDAA+C;AAC/C,uDAAmD;AACnD,iEAA2D;AAC3D,yDAAoD;AACpD,+CAAkD;AAClD,yDAA4D;AAC5D,qDAAwD;AACxD,2DAAsD;AAEtD,2CAA8C;AAC9C,iDAAoD;AACpD,qCAAyC;AAEzC,IAAI,kBAAuC,CAAA;AAC3C,MAAM,cAAc,GAAG,IAAI,oCAAgB,EAAE,CAAA;AAE7C,MAAM,SAAS,GAAG,EAMjB,CAAA;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,aAAqB;IACnE,kBAAkB,KAAK,IAAI,yCAAkB,CAAC,SAAS,CAAC,CAAA;IAExD,MAAM,OAAO,GAAG,MAAqC,CAAA;IAErD,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,IAAI,sBAAa,CACrC,OAAO,CAAC,yBAAyB,EACjC,kBAAkB,EAClB,SAAS,EACT,eAAM,CACP,CAAA;QACD,SAAS,CAAC,cAAc,GAAG,aAAa,CAAA;IAC1C,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;QACnC,MAAM,kBAAkB,GAAG,IAAI,gCAAkB,CAC/C,qBAAS,EACT,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,eAAM,CACP,CAAA;QACD,SAAS,CAAC,mBAAmB,GAAG,kBAAkB,CAAA;IACpD,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,IAAI,4BAAgB,CAC3C,OAAO,CAAC,eAAe,EACvB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,SAAS,EACT,eAAM,EACN,aAAa,CACd,CAAA;QACD,SAAS,CAAC,iBAAiB,GAAG,gBAAgB,CAAA;IAChD,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,kBAAW,CACjC,OAAO,CAAC,eAAe,EACvB,kBAAkB,EAClB,qBAAS,EACT,cAAc,EACd,SAAS,EACT,eAAM,CACP,CAAA;QACD,SAAS,CAAC,YAAY,GAAG,WAAW,CAAA;IACtC,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,wBAAc,CACvC,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,eAAM,CACP,CAAA;QACD,SAAS,CAAC,eAAe,GAAG,cAAc,CAAA;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;AAEhD;;;GAGG;AACI,KAAK,UAAU,eAAe,CAAC,EACpC,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,YAAY,GAAG,KAAK,EACpB,aAAa,GACA;IACb,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,uBAAc,CACtB,QAAQ,gBAAgB,wEAAwE,CACjG,CAAA;IACH,CAAC;IAED,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAE7C,+DAA+D;IAC/D,MAAM,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAEnE,sEAAsE;IACtE,gEAAgE;IAChE,MAAM,SAAS,CAAC,iBAAiB,CAAC,MAAM,CACtC,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,YAAY,CACb,CAAA;IACD,MAAM,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC/D,MAAM,SAAS,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACvE,MAAM,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAEhE,6EAA6E;IAC7E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,eAAe,GAAG,IAAI,kCAAe,CACzC,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,MAAM,EACN,aAAa,CACd,CAAA;QAED,MAAM,eAAe,CAAC,oBAAoB,EAAE,CAAA;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Logger } from "@medusajs/framework/types";
|
|
2
|
+
/**
|
|
3
|
+
* Manages Node.js require cache operations and tracks broken modules
|
|
4
|
+
*/
|
|
5
|
+
export declare class ModuleCacheManager {
|
|
6
|
+
private readonly logSource;
|
|
7
|
+
constructor(logSource: string);
|
|
8
|
+
private brokenModules;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a module path should be excluded from cache operations
|
|
11
|
+
*/
|
|
12
|
+
private shouldExcludePath;
|
|
13
|
+
/**
|
|
14
|
+
* Clear cache for descendant modules recursively
|
|
15
|
+
*/
|
|
16
|
+
private clearDescendantModules;
|
|
17
|
+
/**
|
|
18
|
+
* Clear cache for parent modules recursively
|
|
19
|
+
*/
|
|
20
|
+
private clearParentModules;
|
|
21
|
+
/**
|
|
22
|
+
* Find all parent modules that depend on the target path
|
|
23
|
+
*/
|
|
24
|
+
private findParentModules;
|
|
25
|
+
/**
|
|
26
|
+
* Log cache clearing operation
|
|
27
|
+
*/
|
|
28
|
+
private logCacheClear;
|
|
29
|
+
/**
|
|
30
|
+
* Clear require cache for a file and all its parent/descendant modules
|
|
31
|
+
*/
|
|
32
|
+
clear(filePath: string, logger?: Logger, onClear?: (modulePath: string) => Promise<void>, trackBroken?: boolean): Promise<number>;
|
|
33
|
+
/**
|
|
34
|
+
* Remove a module from the broken modules set
|
|
35
|
+
*/
|
|
36
|
+
removeBrokenModule(modulePath: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Get all broken module paths
|
|
39
|
+
*/
|
|
40
|
+
getBrokenModules(): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Get the count of broken modules
|
|
43
|
+
*/
|
|
44
|
+
getBrokenModuleCount(): number;
|
|
45
|
+
/**
|
|
46
|
+
* Clear a specific module from require cache
|
|
47
|
+
*/
|
|
48
|
+
clearSingleModule(modulePath: string): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=module-cache-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-cache-manager.d.ts","sourceRoot":"","sources":["../../../../src/commands/utils/dev-server/module-cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAE9C,OAAO,CAAC,aAAa,CAAyB;IAE9C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;YACW,sBAAsB;IAsCpC;;OAEG;YACW,kBAAkB;IAwChC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACG,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,WAAW,GAAE,OAAc,GAC1B,OAAO,CAAC,MAAM,CAAC;IA8BlB;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAG5C"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ModuleCacheManager = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
/**
|
|
10
|
+
* Manages Node.js require cache operations and tracks broken modules
|
|
11
|
+
*/
|
|
12
|
+
class ModuleCacheManager {
|
|
13
|
+
constructor(logSource) {
|
|
14
|
+
this.logSource = logSource;
|
|
15
|
+
this.brokenModules = new Set();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Check if a module path should be excluded from cache operations
|
|
19
|
+
*/
|
|
20
|
+
shouldExcludePath(modulePath) {
|
|
21
|
+
return types_1.CONFIG.EXCLUDED_PATH_PATTERNS.some((pattern) => modulePath.includes(pattern));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Clear cache for descendant modules recursively
|
|
25
|
+
*/
|
|
26
|
+
async clearDescendantModules(modulePath, visitedModules, logger, onClear) {
|
|
27
|
+
if (this.shouldExcludePath(modulePath) || visitedModules.has(modulePath)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
visitedModules.add(modulePath);
|
|
31
|
+
const moduleEntry = require.cache[modulePath];
|
|
32
|
+
if (!moduleEntry) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Recursively clear children first
|
|
36
|
+
if (moduleEntry.children) {
|
|
37
|
+
for (const child of moduleEntry.children) {
|
|
38
|
+
await this.clearDescendantModules(child.id, visitedModules, logger, onClear);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
delete require.cache[modulePath];
|
|
42
|
+
if (onClear) {
|
|
43
|
+
await onClear(modulePath);
|
|
44
|
+
}
|
|
45
|
+
this.logCacheClear(modulePath, logger, "Cleared cache");
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Clear cache for parent modules recursively
|
|
49
|
+
*/
|
|
50
|
+
async clearParentModules(targetPath, visitedModules, logger, onClear, trackBroken = true) {
|
|
51
|
+
const parentsToCheck = this.findParentModules(targetPath);
|
|
52
|
+
for (const modulePath of parentsToCheck) {
|
|
53
|
+
if (visitedModules.has(modulePath)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
visitedModules.add(modulePath);
|
|
57
|
+
// Recursively clear parents first
|
|
58
|
+
await this.clearParentModules(modulePath, visitedModules, logger, onClear, trackBroken);
|
|
59
|
+
// Track as potentially broken before deletion
|
|
60
|
+
if (trackBroken) {
|
|
61
|
+
this.brokenModules.add(modulePath);
|
|
62
|
+
}
|
|
63
|
+
delete require.cache[modulePath];
|
|
64
|
+
if (onClear) {
|
|
65
|
+
await onClear(modulePath);
|
|
66
|
+
}
|
|
67
|
+
this.logCacheClear(modulePath, logger, "Cleared parent cache");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Find all parent modules that depend on the target path
|
|
72
|
+
*/
|
|
73
|
+
findParentModules(targetPath) {
|
|
74
|
+
const parents = new Set();
|
|
75
|
+
for (const [modulePath, moduleEntry] of Object.entries(require.cache)) {
|
|
76
|
+
if (this.shouldExcludePath(modulePath)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (moduleEntry?.children?.some((child) => child.id === targetPath)) {
|
|
80
|
+
parents.add(modulePath);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return parents;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Log cache clearing operation
|
|
87
|
+
*/
|
|
88
|
+
logCacheClear(modulePath, logger, message) {
|
|
89
|
+
if (logger) {
|
|
90
|
+
const relativePath = path_1.default.relative(process.cwd(), modulePath);
|
|
91
|
+
logger.debug(`${this.logSource} ${message}: ${relativePath}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Clear require cache for a file and all its parent/descendant modules
|
|
96
|
+
*/
|
|
97
|
+
async clear(filePath, logger, onClear, trackBroken = true) {
|
|
98
|
+
const absolutePath = path_1.default.resolve(filePath);
|
|
99
|
+
const visitedModules = new Set();
|
|
100
|
+
// Clear parents first, then descendants
|
|
101
|
+
await this.clearParentModules(absolutePath, visitedModules, logger, onClear, trackBroken);
|
|
102
|
+
await this.clearDescendantModules(absolutePath, visitedModules, logger, onClear);
|
|
103
|
+
if (logger) {
|
|
104
|
+
const relativePath = path_1.default.relative(process.cwd(), filePath);
|
|
105
|
+
logger.info(`${this.logSource} Cleared ${visitedModules.size} module(s) from cache for ${relativePath}`);
|
|
106
|
+
}
|
|
107
|
+
return visitedModules.size;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Remove a module from the broken modules set
|
|
111
|
+
*/
|
|
112
|
+
removeBrokenModule(modulePath) {
|
|
113
|
+
this.brokenModules.delete(modulePath);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get all broken module paths
|
|
117
|
+
*/
|
|
118
|
+
getBrokenModules() {
|
|
119
|
+
return Array.from(this.brokenModules);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get the count of broken modules
|
|
123
|
+
*/
|
|
124
|
+
getBrokenModuleCount() {
|
|
125
|
+
return this.brokenModules.size;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Clear a specific module from require cache
|
|
129
|
+
*/
|
|
130
|
+
clearSingleModule(modulePath) {
|
|
131
|
+
delete require.cache[modulePath];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.ModuleCacheManager = ModuleCacheManager;
|
|
135
|
+
//# sourceMappingURL=module-cache-manager.js.map
|