@warlock.js/core 4.0.1 → 4.0.2

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.
Files changed (143) hide show
  1. package/cjs/dev2-server/config-loader.d.ts.map +1 -1
  2. package/cjs/dev2-server/config-loader.js +9 -4
  3. package/cjs/dev2-server/config-loader.js.map +1 -1
  4. package/cjs/dev2-server/connectors/base-connector.d.ts.map +1 -1
  5. package/cjs/dev2-server/connectors/base-connector.js +2 -2
  6. package/cjs/dev2-server/connectors/base-connector.js.map +1 -1
  7. package/cjs/dev2-server/connectors/database-connector.d.ts.map +1 -1
  8. package/cjs/dev2-server/connectors/database-connector.js +5 -1
  9. package/cjs/dev2-server/connectors/database-connector.js.map +1 -1
  10. package/cjs/dev2-server/dependency-graph.d.ts +9 -2
  11. package/cjs/dev2-server/dependency-graph.d.ts.map +1 -1
  12. package/cjs/dev2-server/dependency-graph.js +47 -6
  13. package/cjs/dev2-server/dependency-graph.js.map +1 -1
  14. package/cjs/dev2-server/dev-logger.js +1 -13
  15. package/cjs/dev2-server/dev-logger.js.map +1 -1
  16. package/cjs/dev2-server/development-server.d.ts.map +1 -1
  17. package/cjs/dev2-server/development-server.js +25 -13
  18. package/cjs/dev2-server/development-server.js.map +1 -1
  19. package/cjs/dev2-server/file-manager.d.ts +6 -1
  20. package/cjs/dev2-server/file-manager.d.ts.map +1 -1
  21. package/cjs/dev2-server/file-manager.js +6 -1
  22. package/cjs/dev2-server/file-manager.js.map +1 -1
  23. package/cjs/dev2-server/file-operations.js +4 -4
  24. package/cjs/dev2-server/file-operations.js.map +1 -1
  25. package/cjs/dev2-server/files-orchestrator.d.ts.map +1 -1
  26. package/cjs/dev2-server/files-orchestrator.js +10 -8
  27. package/cjs/dev2-server/files-orchestrator.js.map +1 -1
  28. package/cjs/dev2-server/import-transformer.d.ts.map +1 -1
  29. package/cjs/dev2-server/import-transformer.js +37 -8
  30. package/cjs/dev2-server/import-transformer.js.map +1 -1
  31. package/cjs/dev2-server/layer-executor.d.ts.map +1 -1
  32. package/cjs/dev2-server/layer-executor.js +67 -62
  33. package/cjs/dev2-server/layer-executor.js.map +1 -1
  34. package/cjs/dev2-server/module-loader.d.ts.map +1 -1
  35. package/cjs/dev2-server/module-loader.js +14 -15
  36. package/cjs/dev2-server/module-loader.js.map +1 -1
  37. package/cjs/dev2-server/parse-imports.d.ts.map +1 -1
  38. package/cjs/dev2-server/parse-imports.js +97 -43
  39. package/cjs/dev2-server/parse-imports.js.map +1 -1
  40. package/cjs/dev2-server/runtime-import-helper.d.ts.map +1 -1
  41. package/cjs/dev2-server/runtime-import-helper.js +86 -8
  42. package/cjs/dev2-server/runtime-import-helper.js.map +1 -1
  43. package/cjs/dev2-server/special-files-collector.d.ts +4 -4
  44. package/cjs/dev2-server/special-files-collector.js +9 -9
  45. package/cjs/dev2-server/special-files-collector.js.map +1 -1
  46. package/cjs/dev2-server/transpile-file.d.ts +4 -0
  47. package/cjs/dev2-server/transpile-file.d.ts.map +1 -1
  48. package/cjs/dev2-server/transpile-file.js +20 -3
  49. package/cjs/dev2-server/transpile-file.js.map +1 -1
  50. package/cjs/dev2-server/tsconfig-manager.d.ts +2 -2
  51. package/cjs/dev2-server/tsconfig-manager.d.ts.map +1 -1
  52. package/cjs/dev2-server/tsconfig-manager.js +8 -7
  53. package/cjs/dev2-server/tsconfig-manager.js.map +1 -1
  54. package/cjs/router/route-registry.d.ts +4 -0
  55. package/cjs/router/route-registry.d.ts.map +1 -1
  56. package/cjs/router/route-registry.js +26 -7
  57. package/cjs/router/route-registry.js.map +1 -1
  58. package/cjs/router/router.d.ts +0 -1
  59. package/cjs/router/router.d.ts.map +1 -1
  60. package/cjs/router/router.js +0 -4
  61. package/cjs/router/router.js.map +1 -1
  62. package/cjs/router/types.d.ts +2 -2
  63. package/cjs/router/types.d.ts.map +1 -1
  64. package/esm/dev2-server/config-loader.d.ts.map +1 -1
  65. package/esm/dev2-server/config-loader.js +9 -4
  66. package/esm/dev2-server/config-loader.js.map +1 -1
  67. package/esm/dev2-server/connectors/base-connector.d.ts.map +1 -1
  68. package/esm/dev2-server/connectors/base-connector.js +2 -2
  69. package/esm/dev2-server/connectors/base-connector.js.map +1 -1
  70. package/esm/dev2-server/connectors/database-connector.d.ts.map +1 -1
  71. package/esm/dev2-server/connectors/database-connector.js +5 -1
  72. package/esm/dev2-server/connectors/database-connector.js.map +1 -1
  73. package/esm/dev2-server/dependency-graph.d.ts +9 -2
  74. package/esm/dev2-server/dependency-graph.d.ts.map +1 -1
  75. package/esm/dev2-server/dependency-graph.js +47 -6
  76. package/esm/dev2-server/dependency-graph.js.map +1 -1
  77. package/esm/dev2-server/dev-logger.js +1 -13
  78. package/esm/dev2-server/dev-logger.js.map +1 -1
  79. package/esm/dev2-server/development-server.d.ts.map +1 -1
  80. package/esm/dev2-server/development-server.js +25 -13
  81. package/esm/dev2-server/development-server.js.map +1 -1
  82. package/esm/dev2-server/file-manager.d.ts +6 -1
  83. package/esm/dev2-server/file-manager.d.ts.map +1 -1
  84. package/esm/dev2-server/file-manager.js +6 -1
  85. package/esm/dev2-server/file-manager.js.map +1 -1
  86. package/esm/dev2-server/file-operations.js +4 -4
  87. package/esm/dev2-server/file-operations.js.map +1 -1
  88. package/esm/dev2-server/files-orchestrator.d.ts.map +1 -1
  89. package/esm/dev2-server/files-orchestrator.js +10 -8
  90. package/esm/dev2-server/files-orchestrator.js.map +1 -1
  91. package/esm/dev2-server/import-transformer.d.ts.map +1 -1
  92. package/esm/dev2-server/import-transformer.js +37 -8
  93. package/esm/dev2-server/import-transformer.js.map +1 -1
  94. package/esm/dev2-server/layer-executor.d.ts.map +1 -1
  95. package/esm/dev2-server/layer-executor.js +68 -63
  96. package/esm/dev2-server/layer-executor.js.map +1 -1
  97. package/esm/dev2-server/module-loader.d.ts.map +1 -1
  98. package/esm/dev2-server/module-loader.js +15 -16
  99. package/esm/dev2-server/module-loader.js.map +1 -1
  100. package/esm/dev2-server/parse-imports.d.ts.map +1 -1
  101. package/esm/dev2-server/parse-imports.js +98 -44
  102. package/esm/dev2-server/parse-imports.js.map +1 -1
  103. package/esm/dev2-server/runtime-import-helper.d.ts.map +1 -1
  104. package/esm/dev2-server/runtime-import-helper.js +86 -8
  105. package/esm/dev2-server/runtime-import-helper.js.map +1 -1
  106. package/esm/dev2-server/special-files-collector.d.ts +4 -4
  107. package/esm/dev2-server/special-files-collector.js +9 -9
  108. package/esm/dev2-server/special-files-collector.js.map +1 -1
  109. package/esm/dev2-server/transpile-file.d.ts +4 -0
  110. package/esm/dev2-server/transpile-file.d.ts.map +1 -1
  111. package/esm/dev2-server/transpile-file.js +20 -3
  112. package/esm/dev2-server/transpile-file.js.map +1 -1
  113. package/esm/dev2-server/tsconfig-manager.d.ts +2 -2
  114. package/esm/dev2-server/tsconfig-manager.d.ts.map +1 -1
  115. package/esm/dev2-server/tsconfig-manager.js +8 -7
  116. package/esm/dev2-server/tsconfig-manager.js.map +1 -1
  117. package/esm/router/route-registry.d.ts +4 -0
  118. package/esm/router/route-registry.d.ts.map +1 -1
  119. package/esm/router/route-registry.js +26 -7
  120. package/esm/router/route-registry.js.map +1 -1
  121. package/esm/router/router.d.ts +0 -1
  122. package/esm/router/router.d.ts.map +1 -1
  123. package/esm/router/router.js +1 -5
  124. package/esm/router/router.js.map +1 -1
  125. package/esm/router/types.d.ts +2 -2
  126. package/esm/router/types.d.ts.map +1 -1
  127. package/package.json +3 -3
  128. package/cjs/dev-server/file-health.d.ts +0 -9
  129. package/cjs/dev-server/file-health.d.ts.map +0 -1
  130. package/cjs/dev-server/file-manager.d.ts +0 -39
  131. package/cjs/dev-server/file-manager.d.ts.map +0 -1
  132. package/cjs/dev-server/files-orchestrator.d.ts +0 -1
  133. package/cjs/dev-server/files-orchestrator.d.ts.map +0 -1
  134. package/cjs/dev-server/types.d.ts +0 -2
  135. package/cjs/dev-server/types.d.ts.map +0 -1
  136. package/esm/dev-server/file-health.d.ts +0 -9
  137. package/esm/dev-server/file-health.d.ts.map +0 -1
  138. package/esm/dev-server/file-manager.d.ts +0 -39
  139. package/esm/dev-server/file-manager.d.ts.map +0 -1
  140. package/esm/dev-server/files-orchestrator.d.ts +0 -1
  141. package/esm/dev-server/files-orchestrator.d.ts.map +0 -1
  142. package/esm/dev-server/types.d.ts +0 -2
  143. package/esm/dev-server/types.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import {devLogConfig,devLogFSR,devLogHMR}from'./dev-logger.js';/**
1
+ import {devLogHMR}from'./dev-logger.js';/**
2
2
  * LayerExecutor handles the execution of file reloads based on their layer type
3
3
  *
4
4
  * Strategy:
@@ -39,7 +39,7 @@ class LayerExecutor {
39
39
  // Get invalidation chain for this file
40
40
  const invalidationChain = this.dependencyGraph.getInvalidationChain(relativePath);
41
41
  // Add to combined set
42
- invalidationChain.forEach((file) => allInvalidatedFiles.add(file));
42
+ invalidationChain.forEach(file => allInvalidatedFiles.add(file));
43
43
  // Determine strategy for this file
44
44
  const strategy = this.determineReloadStrategy(invalidationChain, filesMap);
45
45
  if (strategy === "FSR") {
@@ -49,58 +49,39 @@ class LayerExecutor {
49
49
  hmrFiles.push(relativePath);
50
50
  }
51
51
  }
52
- // Separate config files from other FSR files
53
- const configFiles = fsrFiles.filter((path) => {
54
- const file = filesMap.get(path);
55
- return file?.type === "config";
56
- });
57
- const nonConfigFsrFiles = fsrFiles.filter((path) => {
58
- const file = filesMap.get(path);
59
- return file?.type !== "config";
60
- });
61
- // Log once for the entire batch
62
- if (configFiles.length > 0) {
63
- // Get affected connectors
64
- const affectedConnectors = this.connectors.filter((connector) => connector.shouldRestart(configFiles));
65
- if (configFiles.length === 1) {
66
- devLogConfig(configFiles[0], affectedConnectors.map((connector) => connector.name));
67
- }
68
- else {
69
- devLogConfig(`${configFiles.length} files`, affectedConnectors.map((connector) => connector.name));
52
+ try {
53
+ if (hmrFiles.length > 0 && fsrFiles.length === 0) {
54
+ if (hmrFiles.length === 1) {
55
+ const dependentCount = this.dependencyGraph.getInvalidationChain(hmrFiles[0]).length - 1;
56
+ devLogHMR(hmrFiles[0], dependentCount > 0 ? dependentCount : undefined);
57
+ }
58
+ else {
59
+ hmrFiles.forEach(file => {
60
+ const dependentCount = this.dependencyGraph.getInvalidationChain(file).length - 1;
61
+ devLogHMR(file, dependentCount > 0 ? dependentCount : undefined);
62
+ });
63
+ }
70
64
  }
71
- // await Promise.all(affectedConnectors.map((connector) => connector.restart()));
72
65
  }
73
- if (nonConfigFsrFiles.length > 0) {
74
- if (nonConfigFsrFiles.length === 1) {
75
- devLogFSR(nonConfigFsrFiles[0]);
76
- }
77
- else {
78
- devLogFSR(`${nonConfigFsrFiles.length} files`);
79
- }
66
+ catch (error) {
67
+ console.log("ERRor in devLogHMR: ", error);
80
68
  }
81
- if (hmrFiles.length > 0 && fsrFiles.length === 0) {
82
- if (hmrFiles.length === 1) {
83
- const dependentCount = this.dependencyGraph.getInvalidationChain(hmrFiles[0]).length - 1;
84
- devLogHMR(hmrFiles[0], dependentCount > 0 ? dependentCount : undefined);
69
+ try {
70
+ // Execute reload once for all files
71
+ const invalidationChain = Array.from(allInvalidatedFiles);
72
+ if (fsrFiles.length > 0) {
73
+ // If any file requires FSR, do FSR for all
74
+ const firstFsrFile = filesMap.get(fsrFiles[0]);
75
+ await this.executeFullServerRestart(firstFsrFile, invalidationChain, filesMap);
85
76
  }
86
77
  else {
87
- hmrFiles.forEach(file => {
88
- const dependentCount = this.dependencyGraph.getInvalidationChain(file).length - 1;
89
- devLogHMR(file, dependentCount > 0 ? dependentCount : undefined);
90
- });
78
+ // All files are HMR
79
+ const firstHmrFile = filesMap.get(hmrFiles[0]);
80
+ await this.executeHotModuleReplacement(firstHmrFile, invalidationChain, filesMap, hmrFiles);
91
81
  }
92
82
  }
93
- // Execute reload once for all files
94
- const invalidationChain = Array.from(allInvalidatedFiles);
95
- if (fsrFiles.length > 0) {
96
- // If any file requires FSR, do FSR for all
97
- const firstFsrFile = filesMap.get(fsrFiles[0]);
98
- await this.executeFullServerRestart(firstFsrFile, invalidationChain, filesMap);
99
- }
100
- else {
101
- // All files are HMR
102
- const firstHmrFile = filesMap.get(hmrFiles[0]);
103
- await this.executeHotModuleReplacement(firstHmrFile, invalidationChain, filesMap);
83
+ catch (error) {
84
+ console.log("ERRor in executeFullServerRestart: ", error);
104
85
  }
105
86
  }
106
87
  /**
@@ -123,7 +104,7 @@ class LayerExecutor {
123
104
  async executeFullServerRestart(changedFile, invalidationChain, filesMap) {
124
105
  // Step 1: Handle config files specially
125
106
  const configFiles = invalidationChain
126
- .map((path) => filesMap.get(path))
107
+ .map(path => filesMap.get(path))
127
108
  .filter((file) => file !== undefined && file.type === "config");
128
109
  if (configFiles.length > 0) {
129
110
  // Reload config files first
@@ -149,23 +130,24 @@ class LayerExecutor {
149
130
  * Execute Hot Module Replacement
150
131
  * This happens when only HMR layer files (controllers, services, etc.) change
151
132
  */
152
- async executeHotModuleReplacement(changedFile, invalidationChain, filesMap) {
133
+ async executeHotModuleReplacement(changedFile, invalidationChain, filesMap, hmrFiles) {
153
134
  // Step 1: Clear module cache for invalidation chain
154
135
  this.clearModuleCacheForChain(invalidationChain, filesMap);
155
136
  // Step 2: Reload affected modules
156
137
  await this.reloadAffectedModules(invalidationChain, filesMap);
138
+ await this.restartAffectedConnectors(hmrFiles);
157
139
  }
158
140
  /**
159
141
  * Restart connectors that are affected by the changed files
160
142
  */
161
143
  async restartAffectedConnectors(affectedFiles) {
162
- const connectorsToRestart = this.connectors.filter((connector) => connector.shouldRestart(affectedFiles));
144
+ const connectorsToRestart = this.connectors.filter(connector => connector.shouldRestart(affectedFiles));
163
145
  if (connectorsToRestart.length === 0) {
164
146
  return;
165
147
  }
166
148
  // Restart in priority order
167
149
  for (const connector of connectorsToRestart) {
168
- await connector.restart();
150
+ connector.restart();
169
151
  }
170
152
  }
171
153
  /**
@@ -177,9 +159,7 @@ class LayerExecutor {
177
159
  if (file) {
178
160
  this.moduleLoader.clearModuleCache(file.absolutePath);
179
161
  // Update module version for HMR cache busting
180
- if (typeof global.__updateModuleVersion === "function") {
181
- global.__updateModuleVersion(`./${file.cachePath}`, Date.now());
182
- }
162
+ __updateModuleVersion(`./${file.cachePath}`, Date.now());
183
163
  }
184
164
  }
185
165
  }
@@ -204,10 +184,18 @@ class LayerExecutor {
204
184
  return false;
205
185
  };
206
186
  // Check which special files are affected
207
- const affectedMainFiles = this.specialFilesCollector.getMainFiles().filter(isAffected);
208
- const affectedRouteFiles = this.specialFilesCollector.getRouteFiles().filter(isAffected);
209
- const affectedEventFiles = this.specialFilesCollector.getEventFiles().filter(isAffected);
210
- const affectedLocaleFiles = this.specialFilesCollector.getLocaleFiles().filter(isAffected);
187
+ const affectedMainFiles = this.specialFilesCollector
188
+ .getMainFiles()
189
+ .filter(isAffected);
190
+ const affectedRouteFiles = this.specialFilesCollector
191
+ .getRouteFiles()
192
+ .filter(isAffected);
193
+ const affectedEventFiles = this.specialFilesCollector
194
+ .getEventFiles()
195
+ .filter(isAffected);
196
+ const affectedLocaleFiles = this.specialFilesCollector
197
+ .getLocaleFiles()
198
+ .filter(isAffected);
211
199
  // Reload affected special files
212
200
  if (affectedMainFiles.length > 0) {
213
201
  for (const file of affectedMainFiles) {
@@ -251,17 +239,34 @@ class LayerExecutor {
251
239
  return false;
252
240
  };
253
241
  // Check which special files are affected
254
- const affectedMainFiles = this.specialFilesCollector.getMainFiles().filter(isAffected);
255
- const affectedRouteFiles = this.specialFilesCollector.getRouteFiles().filter(isAffected);
256
- const affectedEventFiles = this.specialFilesCollector.getEventFiles().filter(isAffected);
257
- const affectedLocaleFiles = this.specialFilesCollector.getLocaleFiles().filter(isAffected);
242
+ const affectedMainFiles = this.specialFilesCollector
243
+ .getMainFiles()
244
+ .filter(isAffected);
245
+ const affectedConfigFiles = this.specialFilesCollector
246
+ .getConfigFiles()
247
+ .filter(isAffected);
248
+ const affectedRouteFiles = this.specialFilesCollector
249
+ .getRouteFiles()
250
+ .filter(isAffected);
251
+ const affectedEventFiles = this.specialFilesCollector
252
+ .getEventFiles()
253
+ .filter(isAffected);
254
+ const affectedLocaleFiles = this.specialFilesCollector
255
+ .getLocaleFiles()
256
+ .filter(isAffected);
258
257
  const hasSpecialFiles = affectedMainFiles.length > 0 ||
259
258
  affectedRouteFiles.length > 0 ||
260
259
  affectedEventFiles.length > 0 ||
261
- affectedLocaleFiles.length > 0;
260
+ affectedLocaleFiles.length > 0 ||
261
+ affectedConfigFiles.length > 0;
262
262
  if (!hasSpecialFiles) {
263
263
  return;
264
264
  }
265
+ if (affectedConfigFiles.length > 0) {
266
+ for (const file of affectedConfigFiles) {
267
+ await this.configLoader.reloadConfig(file);
268
+ }
269
+ }
265
270
  // Reload special files
266
271
  if (affectedMainFiles.length > 0) {
267
272
  for (const file of affectedMainFiles) {
@@ -1 +1 @@
1
- {"version":3,"file":"layer-executor.js","sources":["../../src/dev2-server/layer-executor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layer-executor.js","sources":["../../src/dev2-server/layer-executor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../../src/dev2-server/module-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE;;;;GAIG;AACH,qBAAa,YAAY;IAUX,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IATlD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IAExD;;OAEG;gBAC0B,qBAAqB,EAAE,qBAAqB;IAEzE;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3C;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5C;;;;;OAKG;YACW,UAAU;IA8CxB;;;OAGG;IACU,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3D;;;;OAIG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAKnD;;;OAGG;IACI,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IAM9D;;;OAGG;IACI,mBAAmB,IAAI,IAAI;IAOlC;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAI7D;;;OAGG;IACI,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACI,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;OAEG;IACI,QAAQ,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB;CASF"}
1
+ {"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../../src/dev2-server/module-loader.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE;;;;GAIG;AACH,qBAAa,YAAY;IAUX,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IATlD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IAExD;;OAEG;gBAC0B,qBAAqB,EAAE,qBAAqB;IAEzE;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3C;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5C;;;;;OAKG;YACW,UAAU;IAoDxB;;;OAGG;IACU,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3D;;;;OAIG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAKnD;;;OAGG;IACI,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IAM9D;;;OAGG;IACI,mBAAmB,IAAI,IAAI;IAOlC;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAI7D;;;OAGG;IACI,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACI,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;OAEG;IACI,QAAQ,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB;CASF"}
@@ -1,4 +1,4 @@
1
- import {pathToFileURL}from'node:url';import {router}from'../router/router.js';import {devLogError,formatModuleNotFoundError}from'./dev-logger.js';import {warlockCachePath}from'./utils.js';/**
1
+ import {pathToFileURL}from'node:url';import {router}from'../router/router.js';import {devLogInfo,devLogSuccess,devLogError,formatModuleNotFoundError}from'./dev-logger.js';import {warlockCachePath}from'./utils.js';/**
2
2
  * Module Loader
3
3
  * Dynamically loads and manages application modules (main, routes, events, locales)
4
4
  * Handles module cache invalidation for HMR
@@ -21,12 +21,10 @@ class ModuleLoader {
21
21
  */
22
22
  async loadAll() {
23
23
  // Load in specific order
24
- await Promise.all([
25
- this.loadLocaleFiles(),
26
- this.loadEventFiles(),
27
- this.loadMainFiles(),
28
- this.loadRouteFiles(),
29
- ]);
24
+ await this.loadLocaleFiles();
25
+ await this.loadEventFiles();
26
+ await this.loadMainFiles();
27
+ await this.loadRouteFiles();
30
28
  }
31
29
  /**
32
30
  * Load all main.ts files
@@ -39,9 +37,9 @@ class ModuleLoader {
39
37
  return;
40
38
  }
41
39
  // Load all main files in parallel
42
- await Promise.all(mainFiles.map(async (file) => {
40
+ for (const file of mainFiles) {
43
41
  await this.loadModule(file, "main");
44
- }));
42
+ }
45
43
  }
46
44
  /**
47
45
  * Load all locale files
@@ -54,9 +52,9 @@ class ModuleLoader {
54
52
  return;
55
53
  }
56
54
  // Load all locale files in parallel
57
- await Promise.all(localeFiles.map(async (file) => {
55
+ for (const file of localeFiles) {
58
56
  await this.loadModule(file, "locale");
59
- }));
57
+ }
60
58
  }
61
59
  /**
62
60
  * Load all event files
@@ -69,9 +67,9 @@ class ModuleLoader {
69
67
  return;
70
68
  }
71
69
  // Load all event files in parallel
72
- await Promise.all(eventFiles.map(async (file) => {
70
+ for (const file of eventFiles) {
73
71
  await this.loadModule(file, "event");
74
- }));
72
+ }
75
73
  }
76
74
  /**
77
75
  * Load all route files
@@ -80,11 +78,11 @@ class ModuleLoader {
80
78
  */
81
79
  async loadRouteFiles() {
82
80
  const routeFiles = this.specialFilesCollector.getRouteFiles();
83
- console.log("Loading route files", routeFiles.map(file => file.relativePath));
84
81
  if (routeFiles.length === 0) {
85
82
  return;
86
83
  }
87
84
  // Load route files sequentially
85
+ // because we are registering the source file, we must load routes sequentially
88
86
  for (const file of routeFiles) {
89
87
  await this.loadModule(file, "route");
90
88
  }
@@ -98,6 +96,8 @@ class ModuleLoader {
98
96
  async loadModule(file, type, bustCache = false) {
99
97
  // Get the cached transpiled file path
100
98
  const cachedFilePath = warlockCachePath(file.cachePath);
99
+ devLogInfo(`Loading module: ${file.relativePath} (${type})`);
100
+ let now = performance.now();
101
101
  // Convert to file:// URL for cross-platform compatibility
102
102
  let fileUrl = pathToFileURL(cachedFilePath).href;
103
103
  try {
@@ -109,12 +109,10 @@ class ModuleLoader {
109
109
  // For route files, wrap the import with source file tracking
110
110
  if (type === "route") {
111
111
  await router.withSourceFile(file.relativePath, async () => {
112
- console.log("Loading route file", file.relativePath);
113
112
  // Dynamic import the module (routes will be registered with sourceFile)
114
113
  const module = await import(fileUrl);
115
114
  // Store in cache (use source path as key for consistency)
116
115
  this.loadedModules.set(file.absolutePath, module);
117
- console.log("Loaded route file", file.relativePath);
118
116
  });
119
117
  }
120
118
  else {
@@ -123,6 +121,7 @@ class ModuleLoader {
123
121
  // Store in cache (use source path as key for consistency)
124
122
  this.loadedModules.set(file.absolutePath, module);
125
123
  }
124
+ devLogSuccess(`Module loaded: ${file.relativePath} (${type}) in ${performance.now() - now}ms`);
126
125
  }
127
126
  catch (error) {
128
127
  // Format error message (especially for MODULE_NOT_FOUND)
@@ -1 +1 @@
1
- {"version":3,"file":"module-loader.js","sources":["../../src/dev2-server/module-loader.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-loader.js","sources":["../../src/dev2-server/module-loader.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-imports.d.ts","sourceRoot":"","sources":["../../src/dev2-server/parse-imports.ts"],"names":[],"mappings":"AAgGA;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gCAqDlE"}
1
+ {"version":3,"file":"parse-imports.d.ts","sourceRoot":"","sources":["../../src/dev2-server/parse-imports.ts"],"names":[],"mappings":"AAoJA;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gCAqDlE"}
@@ -1,55 +1,90 @@
1
- import {fileExistsAsync,isDirectoryAsync,fileExists}from'@mongez/fs';import {parse}from'es-module-lexer';import path from'node:path';import {Path}from'./path.js';import {tsconfigManager}from'./tsconfig-manager.js';/**
1
+ import {isDirectoryAsync,fileExistsAsync}from'@mongez/fs';import {parse}from'es-module-lexer';import path from'node:path';import {Path}from'./path.js';import {tsconfigManager}from'./tsconfig-manager.js';/**
2
2
  * Extract import paths using regex (more reliable for TypeScript)
3
3
  * This is a fallback when es-module-lexer fails
4
4
  */
5
5
  function extractImportPathsWithRegex(source) {
6
6
  const imports = [];
7
7
  const seenPaths = new Set();
8
- // Skip type-only imports
9
- const skipTypeOnlyImports = (line) => {
8
+ /**
9
+ * Check if an import line is type-only
10
+ * Handles:
11
+ * - import type { Foo } from "module"
12
+ * - import type Foo from "module"
13
+ * - import type * as Foo from "module"
14
+ */
15
+ const isTypeOnlyImport = (line) => {
10
16
  const trimmed = line.trim();
11
17
  return (trimmed.startsWith("import type ") ||
12
- !!trimmed.match(/import\s+type\s+\{/));
18
+ !!trimmed.match(/^import\s+type\s+[\{\*]/));
13
19
  };
14
- // Pattern 1: Standard ES module imports - look for "from" followed by quoted string
15
- // Also handle side-effect imports: import "path"
16
- const lines = source.split("\n");
17
- for (let i = 0; i < lines.length; i++) {
18
- const line = lines[i];
20
+ /**
21
+ * Check if an import has any runtime (non-type) imports
22
+ * Handles mixed imports: import { type Foo, runtimeBar } from "module"
23
+ * Returns true if there are runtime imports (should be tracked)
24
+ */
25
+ const hasRuntimeImports = (line) => {
19
26
  const trimmed = line.trim();
27
+ // If it's a pure type-only import, no runtime imports
28
+ if (isTypeOnlyImport(trimmed)) {
29
+ return false;
30
+ }
31
+ // Extract the import specifiers part: import { ... } from "module"
32
+ const specifiersMatch = trimmed.match(/import\s+\{([^}]+)\}/);
33
+ if (!specifiersMatch) {
34
+ // Not a destructured import, or it's a default/namespace import
35
+ // These are runtime imports unless marked with "import type"
36
+ return true;
37
+ }
38
+ const specifiers = specifiersMatch[1];
39
+ // Split by comma and check each specifier
40
+ const items = specifiers.split(',').map(s => s.trim());
41
+ // Check if ALL items are type-only (prefixed with "type ")
42
+ const allTypeOnly = items.every(item => {
43
+ // Match: "type Foo" or "type Foo as Bar"
44
+ return /^type\s+\w+/.test(item);
45
+ });
46
+ // If all are type-only, this import has no runtime imports
47
+ // Otherwise, it has at least one runtime import
48
+ return !allTypeOnly;
49
+ };
50
+ // Pattern 1: Standard ES module imports (handles multiline)
51
+ // Matches: import { ... } from "path", import Foo from "path", import Foo, { ... } from "path"
52
+ const importRegex = /import\s+(?:type\s+)?(\{[\s\S]*?\}|\*\s+as\s+\w+|\w+(?:\s*,\s*\{[\s\S]*?\})?)\s+from\s+['"]([^'"]+)['"]/g;
53
+ let match;
54
+ while ((match = importRegex.exec(source)) !== null) {
55
+ const fullMatch = match[0];
56
+ match[1];
57
+ const importPath = match[2];
20
58
  // Skip type-only imports
21
- if (skipTypeOnlyImports(trimmed)) {
59
+ if (fullMatch.match(/^import\s+type\s+/)) {
22
60
  continue;
23
61
  }
24
- // Match: ... from "path" or ... from 'path'
25
- const fromMatch = trimmed.match(/\s+from\s+['"]([^'"]+)['"]/);
26
- if (fromMatch && trimmed.startsWith("import")) {
27
- const importPath = fromMatch[1];
28
- if (importPath && !seenPaths.has(importPath)) {
29
- seenPaths.add(importPath);
30
- imports.push({
31
- path: importPath,
32
- originalLine: line,
33
- });
34
- }
62
+ // Skip if it's a mixed import with only types
63
+ if (!hasRuntimeImports(fullMatch)) {
35
64
  continue;
36
65
  }
37
- // Match: import "path" (side-effect imports)
38
- const sideEffectMatch = trimmed.match(/^import\s+['"]([^'"]+)['"]/);
39
- if (sideEffectMatch) {
40
- const importPath = sideEffectMatch[1];
41
- if (importPath && !seenPaths.has(importPath)) {
42
- seenPaths.add(importPath);
43
- imports.push({
44
- path: importPath,
45
- originalLine: line,
46
- });
47
- }
66
+ if (importPath && !seenPaths.has(importPath)) {
67
+ seenPaths.add(importPath);
68
+ imports.push({
69
+ path: importPath,
70
+ originalLine: fullMatch,
71
+ });
72
+ }
73
+ }
74
+ // Pattern 1b: Side-effect imports - import "path"
75
+ const sideEffectRegex = /import\s+['"]([^'"]+)['"]/g;
76
+ while ((match = sideEffectRegex.exec(source)) !== null) {
77
+ const importPath = match[1];
78
+ if (importPath && !seenPaths.has(importPath)) {
79
+ seenPaths.add(importPath);
80
+ imports.push({
81
+ path: importPath,
82
+ originalLine: match[0],
83
+ });
48
84
  }
49
85
  }
50
86
  // Pattern 2: Dynamic imports - import("path")
51
87
  const dynamicImportPattern = /import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
52
- let match;
53
88
  while ((match = dynamicImportPattern.exec(source)) !== null) {
54
89
  const importPath = match[1];
55
90
  if (importPath && !seenPaths.has(importPath)) {
@@ -61,14 +96,20 @@ function extractImportPathsWithRegex(source) {
61
96
  }
62
97
  }
63
98
  // Pattern 3: Export from - export ... from "path"
99
+ // Skip export type statements (e.g., export type { Foo } from "module")
64
100
  const exportFromPattern = /export\s+(?:\{[^}]*\}|\*|\w+)\s+from\s+['"]([^'"]+)['"]/g;
65
101
  while ((match = exportFromPattern.exec(source)) !== null) {
102
+ const fullMatch = match[0];
103
+ // Skip type-only exports: export type ... from "module"
104
+ if (/^export\s+type\s+/.test(fullMatch)) {
105
+ continue;
106
+ }
66
107
  const importPath = match[1];
67
108
  if (importPath && !seenPaths.has(importPath)) {
68
109
  seenPaths.add(importPath);
69
110
  imports.push({
70
111
  path: importPath,
71
- originalLine: match[0],
112
+ originalLine: fullMatch,
72
113
  });
73
114
  }
74
115
  }
@@ -191,6 +232,16 @@ async function resolveRelativeImport(importPath, currentFilePath) {
191
232
  * @TODO: For better performance, we need to check the files in files orchestrator
192
233
  * instead of using the file system as we will be fetching all project files anyway.
193
234
  */
235
+ // Cache for file existence checks to avoid redundant filesystem calls
236
+ const fileExistsCache = new Map();
237
+ async function cachedFileExists(filePath) {
238
+ if (fileExistsCache.has(filePath)) {
239
+ return fileExistsCache.get(filePath);
240
+ }
241
+ const exists = await fileExistsAsync(filePath);
242
+ fileExistsCache.set(filePath, exists);
243
+ return exists;
244
+ }
194
245
  async function tryResolveWithExtensions(basePath) {
195
246
  // Normalize the base path first (handle Windows paths)
196
247
  const normalizedBase = Path.normalize(basePath);
@@ -200,25 +251,28 @@ async function tryResolveWithExtensions(basePath) {
200
251
  // If the path already has a VALID code file extension, check if it exists
201
252
  const ext = path.extname(normalizedBase);
202
253
  if (ext && validExtensions.has(ext)) {
203
- if (await fileExistsAsync(normalizedBase)) {
254
+ if (await cachedFileExists(normalizedBase)) {
204
255
  return normalizedBase;
205
256
  }
206
257
  // If explicit extension doesn't exist, return null
207
258
  return null;
208
259
  }
209
- // Try each extension (even if there's already a non-code extension like .service or .repository)
210
- for (const extension of extensions) {
211
- const pathWithExt = normalizedBase + extension;
212
- if (await fileExistsAsync(pathWithExt)) {
213
- return pathWithExt;
260
+ // Try all extensions in parallel for better performance
261
+ const pathsToCheck = extensions.map(extension => normalizedBase + extension);
262
+ const results = await Promise.all(pathsToCheck.map(async (p) => ({ path: p, exists: await cachedFileExists(p) })));
263
+ // Return the first one that exists (in order of preference)
264
+ for (const result of results) {
265
+ if (result.exists) {
266
+ return result.path;
214
267
  }
215
268
  }
216
269
  // Try index files in directory
217
270
  if (await isDirectoryAsync(normalizedBase)) {
218
- for (const extension of extensions) {
219
- const indexPath = Path.join(normalizedBase, `index${extension}`);
220
- if (await fileExists(indexPath)) {
221
- return indexPath;
271
+ const indexPaths = extensions.map(extension => Path.join(normalizedBase, `index${extension}`));
272
+ const indexResults = await Promise.all(indexPaths.map(async (p) => ({ path: p, exists: await cachedFileExists(p) })));
273
+ for (const result of indexResults) {
274
+ if (result.exists) {
275
+ return result.path;
222
276
  }
223
277
  }
224
278
  }