@rsdoctor/utils 1.1.10 → 1.2.0-beta.1

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 (151) hide show
  1. package/dist/cjs/build/envinfo.js +107 -95
  2. package/dist/cjs/build/file/cache.js +65 -56
  3. package/dist/cjs/build/file/index.js +78 -41
  4. package/dist/cjs/build/file/sharding.js +90 -78
  5. package/dist/cjs/build/index.js +49 -47
  6. package/dist/cjs/build/json.js +91 -98
  7. package/dist/cjs/build/process.js +47 -42
  8. package/dist/cjs/build/server.js +110 -87
  9. package/dist/cjs/common/alerts.js +46 -44
  10. package/dist/cjs/common/algorithm.js +63 -54
  11. package/dist/cjs/common/bundle.js +52 -46
  12. package/dist/cjs/common/crypto.js +47 -46
  13. package/dist/cjs/common/data/index.js +381 -455
  14. package/dist/cjs/common/file.js +44 -0
  15. package/dist/cjs/common/global-config.js +72 -64
  16. package/dist/cjs/common/graph/assets.js +274 -308
  17. package/dist/cjs/common/graph/chunk.js +66 -63
  18. package/dist/cjs/common/graph/dependency.js +42 -32
  19. package/dist/cjs/common/graph/entrypoints.js +33 -25
  20. package/dist/cjs/common/graph/index.js +93 -27
  21. package/dist/cjs/common/graph/modules.js +113 -98
  22. package/dist/cjs/common/index.js +101 -83
  23. package/dist/cjs/common/loader.js +277 -273
  24. package/dist/cjs/common/lodash.js +73 -62
  25. package/dist/cjs/common/manifest.js +57 -59
  26. package/dist/cjs/common/package.js +79 -80
  27. package/dist/cjs/common/plugin.js +78 -73
  28. package/dist/cjs/common/resolver.js +79 -69
  29. package/dist/cjs/common/rspack.js +43 -34
  30. package/dist/cjs/common/summary.js +39 -31
  31. package/dist/cjs/common/time.js +73 -78
  32. package/dist/cjs/common/url.js +44 -36
  33. package/dist/cjs/error/error.js +183 -220
  34. package/dist/cjs/error/index.js +70 -28
  35. package/dist/cjs/error/transform.js +150 -143
  36. package/dist/cjs/error/utils.js +54 -58
  37. package/dist/cjs/index.js +37 -38
  38. package/dist/cjs/logger.js +99 -73
  39. package/dist/cjs/rule-utils/document/document.js +83 -82
  40. package/dist/cjs/rule-utils/document/index.js +75 -23
  41. package/dist/cjs/rule-utils/document/server.js +42 -35
  42. package/dist/cjs/rule-utils/document/types.js +17 -15
  43. package/dist/cjs/rule-utils/index.js +66 -21
  44. package/dist/cjs/rule-utils/parser/asserts.js +129 -147
  45. package/dist/cjs/rule-utils/parser/index.js +84 -25
  46. package/dist/cjs/rule-utils/parser/parser.js +50 -85
  47. package/dist/cjs/rule-utils/parser/types.js +38 -30
  48. package/dist/cjs/rule-utils/parser/utils.js +141 -168
  49. package/dist/esm/build/envinfo.mjs +57 -0
  50. package/dist/esm/build/file/cache.mjs +23 -0
  51. package/dist/esm/build/file/index.mjs +4 -0
  52. package/dist/esm/build/file/sharding.mjs +50 -0
  53. package/dist/esm/build/index.mjs +6 -0
  54. package/dist/esm/build/json.mjs +66 -0
  55. package/dist/esm/build/process.mjs +17 -0
  56. package/dist/esm/build/server.mjs +96 -0
  57. package/dist/esm/common/alerts.mjs +17 -0
  58. package/dist/esm/common/algorithm.mjs +32 -0
  59. package/dist/esm/common/bundle.mjs +22 -0
  60. package/dist/esm/common/crypto.mjs +17 -0
  61. package/dist/esm/common/data/index.mjs +354 -0
  62. package/dist/esm/common/file.mjs +7 -0
  63. package/dist/esm/common/global-config.mjs +32 -0
  64. package/dist/esm/common/graph/assets.mjs +238 -0
  65. package/dist/esm/common/graph/chunk.mjs +32 -0
  66. package/dist/esm/common/graph/dependency.mjs +10 -0
  67. package/dist/esm/common/graph/entrypoints.mjs +4 -0
  68. package/dist/esm/common/graph/index.mjs +5 -0
  69. package/dist/esm/common/graph/modules.mjs +78 -0
  70. package/dist/esm/common/index.mjs +19 -0
  71. package/dist/esm/common/loader.mjs +247 -0
  72. package/dist/esm/common/lodash.mjs +32 -0
  73. package/dist/esm/common/manifest.mjs +30 -0
  74. package/dist/esm/common/package.mjs +56 -0
  75. package/dist/esm/common/plugin.mjs +48 -0
  76. package/dist/esm/common/resolver.mjs +46 -0
  77. package/dist/esm/common/rspack.mjs +9 -0
  78. package/dist/esm/common/summary.mjs +8 -0
  79. package/dist/esm/common/time.mjs +43 -0
  80. package/dist/esm/common/url.mjs +14 -0
  81. package/dist/esm/error/error.mjs +154 -0
  82. package/dist/esm/error/index.mjs +3 -0
  83. package/dist/esm/error/transform.mjs +138 -0
  84. package/dist/esm/error/utils.mjs +22 -0
  85. package/dist/esm/index.mjs +3 -0
  86. package/dist/esm/logger.mjs +50 -0
  87. package/dist/esm/rule-utils/document/document.mjs +58 -0
  88. package/dist/esm/rule-utils/document/index.mjs +3 -0
  89. package/dist/esm/rule-utils/document/server.mjs +12 -0
  90. package/dist/esm/rule-utils/index.mjs +2 -0
  91. package/dist/esm/rule-utils/parser/asserts.mjs +104 -0
  92. package/dist/esm/rule-utils/parser/index.mjs +4 -0
  93. package/dist/esm/rule-utils/parser/parser.mjs +23 -0
  94. package/dist/esm/rule-utils/parser/types.mjs +7 -0
  95. package/dist/esm/rule-utils/parser/utils.mjs +109 -0
  96. package/dist/type/common/file.d.ts +3 -0
  97. package/dist/type/common/file.d.ts.map +1 -0
  98. package/dist/type/common/graph/modules.d.ts +1 -1
  99. package/dist/type/common/graph/modules.d.ts.map +1 -1
  100. package/dist/type/common/index.d.ts +1 -0
  101. package/dist/type/common/index.d.ts.map +1 -1
  102. package/dist/type/logger.d.ts +3 -1
  103. package/dist/type/logger.d.ts.map +1 -1
  104. package/package.json +13 -12
  105. package/dist/esm/build/envinfo.js +0 -75
  106. package/dist/esm/build/file/cache.js +0 -30
  107. package/dist/esm/build/file/index.js +0 -7
  108. package/dist/esm/build/file/sharding.js +0 -50
  109. package/dist/esm/build/index.js +0 -12
  110. package/dist/esm/build/json.js +0 -85
  111. package/dist/esm/build/process.js +0 -24
  112. package/dist/esm/build/server.js +0 -96
  113. package/dist/esm/common/alerts.js +0 -25
  114. package/dist/esm/common/algorithm.js +0 -39
  115. package/dist/esm/common/bundle.js +0 -30
  116. package/dist/esm/common/crypto.js +0 -28
  117. package/dist/esm/common/data/index.js +0 -428
  118. package/dist/esm/common/global-config.js +0 -38
  119. package/dist/esm/common/graph/assets.js +0 -310
  120. package/dist/esm/common/graph/chunk.js +0 -49
  121. package/dist/esm/common/graph/dependency.js +0 -14
  122. package/dist/esm/common/graph/entrypoints.js +0 -6
  123. package/dist/esm/common/graph/index.js +0 -5
  124. package/dist/esm/common/graph/modules.js +0 -90
  125. package/dist/esm/common/index.js +0 -36
  126. package/dist/esm/common/loader.js +0 -279
  127. package/dist/esm/common/lodash.js +0 -49
  128. package/dist/esm/common/manifest.js +0 -46
  129. package/dist/esm/common/package.js +0 -71
  130. package/dist/esm/common/plugin.js +0 -59
  131. package/dist/esm/common/resolver.js +0 -54
  132. package/dist/esm/common/rspack.js +0 -12
  133. package/dist/esm/common/summary.js +0 -10
  134. package/dist/esm/common/time.js +0 -64
  135. package/dist/esm/common/url.js +0 -20
  136. package/dist/esm/error/error.js +0 -202
  137. package/dist/esm/error/index.js +0 -5
  138. package/dist/esm/error/transform.js +0 -141
  139. package/dist/esm/error/utils.js +0 -40
  140. package/dist/esm/index.js +0 -6
  141. package/dist/esm/logger.js +0 -44
  142. package/dist/esm/rule-utils/document/document.js +0 -67
  143. package/dist/esm/rule-utils/document/index.js +0 -3
  144. package/dist/esm/rule-utils/document/server.js +0 -17
  145. package/dist/esm/rule-utils/index.js +0 -2
  146. package/dist/esm/rule-utils/parser/asserts.js +0 -132
  147. package/dist/esm/rule-utils/parser/index.js +0 -4
  148. package/dist/esm/rule-utils/parser/parser.js +0 -58
  149. package/dist/esm/rule-utils/parser/types.js +0 -9
  150. package/dist/esm/rule-utils/parser/utils.js +0 -164
  151. /package/dist/esm/rule-utils/document/{types.js → types.mjs} +0 -0
@@ -1,428 +0,0 @@
1
- import { Rule, SDK, Constants } from "@rsdoctor/types";
2
- import * as Loader from "../loader";
3
- import * as Resolver from "../resolver";
4
- import * as Plugin from "../plugin";
5
- import * as Graph from "../graph";
6
- import * as Alerts from "../alerts";
7
- import { relative } from "path";
8
- class APIDataLoader {
9
- constructor(loader) {
10
- this.loader = loader;
11
- this.loadAPI = this.loadAPI.bind(this);
12
- }
13
- log(...args) {
14
- console.log(`[${this.constructor.name}]`, ...args);
15
- }
16
- loadAPI(...args) {
17
- const [api, body] = args;
18
- switch (api) {
19
- case SDK.ServerAPI.API.LoadDataByKey:
20
- return this.loader.loadData(
21
- body.key
22
- );
23
- case SDK.ServerAPI.API.GetProjectInfo:
24
- return Promise.all([
25
- this.loader.loadData("root"),
26
- this.loader.loadData("pid"),
27
- this.loader.loadData("hash"),
28
- this.loader.loadData("summary"),
29
- this.loader.loadData("configs"),
30
- this.loader.loadData("envinfo"),
31
- this.loader.loadData("errors")
32
- ]).then(
33
- ([root, pid, hash, summary, configs, envinfo, errors]) => ({ root, pid, hash, summary, configs, envinfo, errors })
34
- );
35
- case SDK.ServerAPI.API.GetClientRoutes:
36
- if (typeof window !== "undefined" && window?.[Constants.WINDOW_RSDOCTOR_TAG]) {
37
- return window[Constants.WINDOW_RSDOCTOR_TAG].enableRoutes;
38
- }
39
- return this.loader.loadManifest().then((res) => {
40
- const { enableRoutes = [] } = res.client || {};
41
- return enableRoutes;
42
- });
43
- case SDK.ServerAPI.API.GetLoaderNames:
44
- return this.loader.loadData("loader").then((res) => {
45
- return Loader.getLoaderNames(res || []);
46
- });
47
- case SDK.ServerAPI.API.GetLayers:
48
- return this.loader.loadData("moduleGraph").then((res) => {
49
- const { layers } = res || {};
50
- return layers;
51
- });
52
- case SDK.ServerAPI.API.GetLoaderChartData:
53
- return this.loader.loadData("loader").then((res) => {
54
- return Loader.getLoaderChartData(res || []);
55
- });
56
- case SDK.ServerAPI.API.GetLoaderFileTree:
57
- return this.loader.loadData("loader").then((res) => {
58
- return Loader.getLoaderFileTree(res || []);
59
- });
60
- case SDK.ServerAPI.API.GetLoaderFileDetails:
61
- return this.loader.loadData("loader").then((res) => {
62
- return Loader.getLoaderFileDetails(
63
- body.path,
64
- res || []
65
- );
66
- });
67
- case SDK.ServerAPI.API.GetLoaderFolderStatistics:
68
- return this.loader.loadData("loader").then((res) => {
69
- return Loader.getLoaderFolderStatistics(
70
- body.folder,
71
- res || []
72
- );
73
- });
74
- case SDK.ServerAPI.API.GetLoaderFileFirstInput:
75
- return this.loader.loadData("loader").then((res) => {
76
- return Loader.getLoaderFileFirstInput(
77
- body.file,
78
- res || []
79
- );
80
- });
81
- case SDK.ServerAPI.API.GetLoaderFileInputAndOutput:
82
- return this.loader.loadData("loader").then((res) => {
83
- return Loader.getLoaderFileFirstInput(
84
- body.file,
85
- res || []
86
- );
87
- });
88
- case SDK.ServerAPI.API.GetResolverFileTree:
89
- return this.loader.loadData("resolver").then((res) => {
90
- return Resolver.getResolverFileTree(res || []);
91
- });
92
- case SDK.ServerAPI.API.GetResolverFileDetails:
93
- return Promise.all([
94
- this.loader.loadData("resolver"),
95
- this.loader.loadData("moduleGraph.modules"),
96
- this.loader.loadData("moduleCodeMap")
97
- ]).then((res) => {
98
- const resolverData = res[0];
99
- const modules = res[1];
100
- const moduleCodeMap = res[2];
101
- return Resolver.getResolverFileDetails(
102
- body.filepath,
103
- resolverData || [],
104
- modules || [],
105
- moduleCodeMap || {}
106
- );
107
- });
108
- case SDK.ServerAPI.API.GetPluginSummary:
109
- return this.loader.loadData("plugin").then((res) => {
110
- return Plugin.getPluginSummary(res || {});
111
- });
112
- case SDK.ServerAPI.API.GetPluginData:
113
- return this.loader.loadData("plugin").then((res) => {
114
- const { hooks, tapNames } = body;
115
- return Plugin.getPluginData(res || {}, hooks, tapNames);
116
- });
117
- case SDK.ServerAPI.API.GetAssetsSummary:
118
- return this.loader.loadData("chunkGraph").then((res) => {
119
- const { withFileContent = true } = body;
120
- const { assets = [], chunks = [] } = res || {};
121
- return Graph.getAssetsSummary(assets, chunks, {
122
- withFileContent
123
- });
124
- });
125
- case SDK.ServerAPI.API.GetAssetDetails:
126
- return Promise.all([
127
- this.loader.loadData("chunkGraph"),
128
- this.loader.loadData("moduleGraph")
129
- ]).then((res) => {
130
- const { assetPath } = body;
131
- const { assets = [], chunks = [] } = res[0] || {};
132
- const { modules = [] } = res[1] || {};
133
- return Graph.getAssetDetails(assetPath, assets, chunks, modules);
134
- });
135
- case SDK.ServerAPI.API.GetSummaryBundles:
136
- return Promise.all([
137
- this.loader.loadData("chunkGraph"),
138
- this.loader.loadData("moduleGraph")
139
- ]).then((res) => {
140
- const { assets = [], chunks = [] } = res[0] || {};
141
- const { modules = [] } = res[1] || {};
142
- return Graph.getAllBundleData(assets, chunks, modules, [
143
- "id",
144
- "path",
145
- "size",
146
- "kind"
147
- ]);
148
- });
149
- case SDK.ServerAPI.API.GetChunksByModuleId:
150
- return Promise.all([
151
- this.loader.loadData("chunkGraph"),
152
- this.loader.loadData("moduleGraph")
153
- ]).then((res) => {
154
- const { moduleId } = body;
155
- const { chunks = [] } = res[0] || {};
156
- const { modules = [] } = res[1] || {};
157
- return Graph.getChunksByModuleId(moduleId, modules, chunks);
158
- });
159
- case SDK.ServerAPI.API.GetModuleDetails:
160
- return Promise.all([
161
- this.loader.loadData("chunkGraph"),
162
- this.loader.loadData("moduleGraph")
163
- ]).then((res) => {
164
- const { moduleId } = body;
165
- const { modules = [], dependencies = [] } = res[1] || {};
166
- return Graph.getModuleDetails(moduleId, modules, dependencies);
167
- });
168
- case SDK.ServerAPI.API.GetModulesByModuleIds:
169
- return this.loader.loadData("moduleGraph").then((res) => {
170
- const { moduleIds } = body;
171
- const { modules = [] } = res || {};
172
- return Graph.getModuleIdsByModulesIds(moduleIds, modules);
173
- });
174
- case SDK.ServerAPI.API.GetEntryPoints:
175
- return Promise.all([this.loader.loadData("chunkGraph")]).then((res) => {
176
- const [chunkGraph] = res;
177
- const { entrypoints = [] } = chunkGraph || {};
178
- return Graph.getEntryPoints(entrypoints);
179
- });
180
- case SDK.ServerAPI.API.GetModuleCodeByModuleId:
181
- return this.loader.loadData("moduleCodeMap").then((moduleCodeMap) => {
182
- const { moduleId } = body;
183
- if (moduleCodeMap) {
184
- return moduleCodeMap[moduleId];
185
- }
186
- return { source: "", transformed: "", parsedSource: "" };
187
- });
188
- case SDK.ServerAPI.API.GetModuleCodeByModuleIds:
189
- return this.loader.loadData("moduleCodeMap").then((moduleCodeMap) => {
190
- const { moduleIds } = body;
191
- const _moduleCodeData = {};
192
- if (moduleCodeMap) {
193
- moduleIds.forEach((id) => {
194
- _moduleCodeData[id] = moduleCodeMap[id];
195
- });
196
- return _moduleCodeData;
197
- }
198
- return [];
199
- });
200
- case SDK.ServerAPI.API.GetAllModuleGraph:
201
- return this.loader.loadData("moduleGraph").then((moduleGraph) => {
202
- return moduleGraph?.modules;
203
- });
204
- case SDK.ServerAPI.API.GetSearchModules:
205
- return Promise.all([
206
- this.loader.loadData("moduleGraph"),
207
- this.loader.loadData("chunkGraph")
208
- ]).then((res) => {
209
- const [moduleGraph, chunkGraph] = res;
210
- const { moduleName } = body;
211
- if (!moduleName)
212
- return [];
213
- const assetMap = chunkGraph.chunks.reduce(
214
- (acc, chunk) => {
215
- chunk.assets.forEach((asset) => {
216
- if (!acc[chunk.id]) {
217
- acc[chunk.id] = [];
218
- }
219
- acc[chunk.id].push(asset);
220
- });
221
- return acc;
222
- },
223
- {}
224
- );
225
- const searchedChunksMap = /* @__PURE__ */ new Map();
226
- moduleGraph?.modules.filter((module) => {
227
- if (module.webpackId.includes(moduleName)) {
228
- module.chunks.forEach((chunk) => {
229
- if (searchedChunksMap.has(chunk)) {
230
- return;
231
- }
232
- const assets = assetMap[chunk] || [];
233
- assets.forEach((asset) => {
234
- if (asset.endsWith(".js")) {
235
- searchedChunksMap.set(chunk, asset);
236
- }
237
- });
238
- });
239
- }
240
- });
241
- return Object.fromEntries(searchedChunksMap);
242
- });
243
- case SDK.ServerAPI.API.GetSearchModuleInChunk:
244
- return Promise.all([
245
- this.loader.loadData("moduleGraph"),
246
- this.loader.loadData("root")
247
- ]).then((res) => {
248
- const [moduleGraph, root] = res;
249
- const { moduleName, chunk } = body;
250
- if (!moduleName)
251
- return [];
252
- const filteredModules = moduleGraph?.modules.filter(
253
- (module) => module.webpackId.includes(moduleName) && module.chunks.includes(chunk)
254
- ).map((filteredModule) => ({
255
- id: filteredModule.id,
256
- path: filteredModule.path,
257
- relativePath: relative(root, filteredModule.path)
258
- }));
259
- return filteredModules;
260
- });
261
- case SDK.ServerAPI.API.GetAllChunkGraph:
262
- return this.loader.loadData("chunkGraph").then((chunkGraph) => {
263
- return chunkGraph?.chunks;
264
- });
265
- case SDK.ServerAPI.API.GetPackageRelationAlertDetails:
266
- return Promise.all([
267
- this.loader.loadData("moduleGraph"),
268
- this.loader.loadData("errors"),
269
- this.loader.loadData("root"),
270
- this.loader.loadData("moduleCodeMap")
271
- ]).then((res) => {
272
- const { id, target } = body;
273
- const [moduleGraph, errors = [], root = "", moduleCodeMap] = res;
274
- const { modules = [], dependencies = [] } = moduleGraph || {};
275
- const { packages = [] } = errors.find((e) => e.id === id) || {};
276
- const { dependencies: pkgDependencies = [] } = packages.find(
277
- (e) => e.target.name === target.name && e.target.root === target.root && e.target.version === target.version
278
- ) || {};
279
- return Alerts.getPackageRelationAlertDetails(
280
- modules,
281
- dependencies,
282
- root,
283
- pkgDependencies,
284
- moduleCodeMap || {}
285
- );
286
- });
287
- case SDK.ServerAPI.API.GetOverlayAlerts:
288
- return this.loader.loadData("errors").then((res) => {
289
- return (res || []).filter(
290
- (e) => e.code === Rule.RuleMessageCodeEnumerated.Overlay
291
- );
292
- });
293
- case SDK.ServerAPI.API.BundleDiffManifest:
294
- return this.loader.loadManifest();
295
- case SDK.ServerAPI.API.GetBundleDiffSummary:
296
- return Promise.all([
297
- this.loader.loadManifest(),
298
- this.loader.loadData("root"),
299
- this.loader.loadData("hash"),
300
- this.loader.loadData("errors"),
301
- this.loader.loadData("chunkGraph"),
302
- this.loader.loadData("moduleGraph"),
303
- this.loader.loadData("moduleCodeMap"),
304
- this.loader.loadData("packageGraph"),
305
- this.loader.loadData("configs")
306
- ]).then(
307
- ([
308
- _manifest,
309
- root = "",
310
- hash = "",
311
- errors = {},
312
- chunkGraph = {},
313
- moduleGraph = {},
314
- moduleCodeMap = {},
315
- packageGraph = {},
316
- configs = []
317
- ]) => {
318
- let outputFilename = "";
319
- if (typeof configs[0]?.config?.output?.chunkFilename === "string") {
320
- outputFilename = configs[0]?.config.output.chunkFilename;
321
- }
322
- return {
323
- root,
324
- hash,
325
- errors,
326
- chunkGraph,
327
- moduleGraph,
328
- packageGraph,
329
- outputFilename,
330
- moduleCodeMap
331
- };
332
- }
333
- );
334
- case SDK.ServerAPI.API.GetTileReportHtml:
335
- return this.loader.loadData("otherReports").then((otherReports) => {
336
- return otherReports?.tileReportHtml;
337
- });
338
- case SDK.ServerAPI.API.GetChunkGraph:
339
- return this.loader.loadData("chunkGraph").then((res) => {
340
- const { chunks = [] } = res || {};
341
- return chunks;
342
- });
343
- case SDK.ServerAPI.API.GetAllModuleGraphFilter:
344
- return this.loader.loadData("moduleGraph").then((moduleGraph) => {
345
- return moduleGraph?.modules.map((m) => ({
346
- id: m.id,
347
- webpackId: m.webpackId,
348
- path: m.path,
349
- size: m.size,
350
- chunks: m.chunks,
351
- kind: m.kind
352
- }));
353
- });
354
- case SDK.ServerAPI.API.GetModuleByName:
355
- return this.loader.loadData("moduleGraph").then((moduleGraph) => {
356
- const { moduleName } = body;
357
- const { modules = [] } = moduleGraph || {};
358
- return modules.filter((m) => m.path.includes(moduleName)).map((m) => ({
359
- id: m.id,
360
- path: m.path
361
- })) || [];
362
- });
363
- case SDK.ServerAPI.API.GetModuleIssuerPath:
364
- return this.loader.loadData("moduleGraph").then((moduleGraph) => {
365
- const { moduleId } = body;
366
- const modules = moduleGraph?.modules || [];
367
- const issuerPath = modules.find((m) => String(m.id) === moduleId)?.issuerPath || [];
368
- if (Array.isArray(issuerPath) && issuerPath.length > 0 && typeof issuerPath[0] === "number") {
369
- return issuerPath.map((id) => modules.find((m) => m.id === id)?.path).filter(Boolean);
370
- }
371
- return issuerPath;
372
- });
373
- case SDK.ServerAPI.API.GetPackageInfo:
374
- return this.loader.loadData("packageGraph").then((packageGraph) => {
375
- return packageGraph?.packages;
376
- });
377
- case SDK.ServerAPI.API.GetPackageDependency:
378
- return this.loader.loadData("packageGraph").then((packageGraph) => {
379
- return packageGraph?.dependencies || [];
380
- });
381
- case SDK.ServerAPI.API.GetChunkGraphAI:
382
- return this.loader.loadData("chunkGraph").then((res) => {
383
- const { chunks = [] } = res || {};
384
- const filteredChunks = chunks.map(({ modules, ...rest }) => rest);
385
- return filteredChunks;
386
- });
387
- case SDK.ServerAPI.API.GetChunkByIdAI:
388
- return Promise.all([
389
- this.loader.loadData("chunkGraph"),
390
- this.loader.loadData("moduleGraph")
391
- ]).then(([chunkGraph, moduleGraph]) => {
392
- const { chunks = [] } = chunkGraph || {};
393
- const { modules = [] } = moduleGraph || {};
394
- const { chunkId } = body;
395
- const chunkInfo = chunks.find(
396
- (c) => c.id === chunkId
397
- );
398
- if (!chunkInfo) {
399
- return null;
400
- }
401
- const chunkModules = modules.filter((m) => chunkInfo.modules.includes(m.id)).map((module) => {
402
- return {
403
- id: module.id,
404
- path: module.path,
405
- size: module.size,
406
- chunks: module.chunks,
407
- kind: module.kind,
408
- issuerPath: module.issuerPath
409
- };
410
- });
411
- chunkInfo.modulesInfo = chunkModules;
412
- return chunkInfo;
413
- });
414
- case SDK.ServerAPI.API.GetDirectoriesLoaders:
415
- return Promise.all([
416
- this.loader.loadData("root"),
417
- this.loader.loadData("loader")
418
- ]).then(([root, loaders]) => {
419
- return Loader.getDirectoriesLoaders(loaders || [], root || "");
420
- });
421
- default:
422
- throw new Error(`API not implement: "${api}"`);
423
- }
424
- }
425
- }
426
- export {
427
- APIDataLoader
428
- };
@@ -1,38 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import os from "os";
4
- import { logger } from "../logger";
5
- function writeMcpPort(port, builderName) {
6
- const homeDir = os.homedir();
7
- const rsdoctorDir = path.join(homeDir, ".cache/rsdoctor");
8
- const mcpPortFilePath = path.join(rsdoctorDir, "mcp.json");
9
- if (!fs.existsSync(rsdoctorDir)) {
10
- fs.mkdirSync(rsdoctorDir, { recursive: true });
11
- }
12
- let mcpJson = {
13
- portList: {},
14
- port: 0
15
- };
16
- if (fs.existsSync(mcpPortFilePath)) {
17
- try {
18
- mcpJson = JSON.parse(fs.readFileSync(mcpPortFilePath, "utf8"));
19
- } catch (error) {
20
- logger.debug("Failed to parse mcp.json", error);
21
- }
22
- }
23
- if (!mcpJson.portList)
24
- mcpJson.portList = {};
25
- mcpJson.portList[builderName || "builder"] = port;
26
- mcpJson.port = port;
27
- fs.writeFileSync(mcpPortFilePath, JSON.stringify(mcpJson, null, 2), "utf8");
28
- }
29
- function getMcpConfigPath() {
30
- const homeDir = os.homedir();
31
- const rsdoctorDir = path.join(homeDir, ".cache/rsdoctor");
32
- const mcpPortFilePath = path.join(rsdoctorDir, "mcp.json");
33
- return mcpPortFilePath;
34
- }
35
- export {
36
- getMcpConfigPath,
37
- writeMcpPort
38
- };