@rsdoctor/components 0.3.11 → 0.4.0

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 (37) hide show
  1. package/dist/components/Alert/package-relation.d.ts +2 -2
  2. package/dist/components/Alert/package-relation.js +52 -56
  3. package/dist/components/Alerts/overlay.d.ts +1 -1
  4. package/dist/components/BundleDiff/DiffContainer/packages.d.ts +2 -2
  5. package/dist/components/BundleDiff/DiffContainer/row.d.ts +2 -2
  6. package/dist/components/BundleDiff/DiffContainer/types.d.ts +0 -1
  7. package/dist/components/BundleDiff/DiffServerAPIProvider/index.d.ts +0 -1
  8. package/dist/components/Charts/TimelineCharts/index.js +16 -2
  9. package/dist/components/CodeViewer/hightlight.js +24 -8
  10. package/dist/components/CodeViewer/viewer.d.ts +1 -0
  11. package/dist/components/CodeViewer/viewer.js +11 -3
  12. package/dist/components/Layout/menus.d.ts +1 -1
  13. package/dist/components/Loader/Analysis/files.js +76 -19
  14. package/dist/components/Loader/Analysis/index.js +16 -2
  15. package/dist/components/Loader/executions.d.ts +1 -1
  16. package/dist/components/Loader/executions.js +261 -116
  17. package/dist/components/Manifest/api.js +25 -11
  18. package/dist/config.d.ts +0 -1
  19. package/dist/pages/BundleSize/components/asset.js +11 -3
  20. package/dist/pages/BundleSize/components/index.js +2 -1
  21. package/dist/pages/BundleSize/config.d.ts +0 -1
  22. package/dist/pages/TreeShaking/editor.js +8 -5
  23. package/dist/pages/TreeShaking/index.js +1 -0
  24. package/dist/pages/TreeShaking/range.d.ts +282 -0
  25. package/dist/pages/TreeShaking/range.js +542 -0
  26. package/dist/pages/TreeShaking/utils.d.ts +1 -1
  27. package/dist/pages/TreeShaking/utils.js +1 -1
  28. package/dist/pages/WebpackLoaders/Analysis/index.js +1 -1
  29. package/dist/utils/data/brief.d.ts +11 -0
  30. package/dist/utils/data/brief.js +42 -0
  31. package/dist/utils/data/index.js +11 -0
  32. package/dist/utils/file.d.ts +0 -1
  33. package/dist/utils/hooks.d.ts +0 -1
  34. package/dist/utils/manifest.d.ts +2 -5
  35. package/dist/utils/monaco.js +6 -1
  36. package/dist/utils/request.d.ts +6 -6
  37. package/package.json +5 -5
@@ -0,0 +1,542 @@
1
+ class Range {
2
+ constructor(startLineNumber, startColumn, endLineNumber, endColumn) {
3
+ if (startLineNumber > endLineNumber || startLineNumber === endLineNumber && startColumn > endColumn) {
4
+ this.startLineNumber = endLineNumber;
5
+ this.startColumn = endColumn;
6
+ this.endLineNumber = startLineNumber;
7
+ this.endColumn = startColumn;
8
+ } else {
9
+ this.startLineNumber = startLineNumber;
10
+ this.startColumn = startColumn;
11
+ this.endLineNumber = endLineNumber;
12
+ this.endColumn = endColumn;
13
+ }
14
+ }
15
+ /**
16
+ * Test if this range is empty.
17
+ */
18
+ isEmpty() {
19
+ return Range.isEmpty(this);
20
+ }
21
+ /**
22
+ * Test if `range` is empty.
23
+ */
24
+ static isEmpty(range) {
25
+ return range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn;
26
+ }
27
+ /**
28
+ * Test if position is in this range. If the position is at the edges, will return true.
29
+ */
30
+ containsPosition(position) {
31
+ return Range.containsPosition(this, position);
32
+ }
33
+ /**
34
+ * Test if `position` is in `range`. If the position is at the edges, will return true.
35
+ */
36
+ static containsPosition(range, position) {
37
+ if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {
38
+ return false;
39
+ }
40
+ if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) {
41
+ return false;
42
+ }
43
+ if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) {
44
+ return false;
45
+ }
46
+ return true;
47
+ }
48
+ /**
49
+ * Test if `position` is in `range`. If the position is at the edges, will return false.
50
+ * @internal
51
+ */
52
+ static strictContainsPosition(range, position) {
53
+ if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {
54
+ return false;
55
+ }
56
+ if (position.lineNumber === range.startLineNumber && position.column <= range.startColumn) {
57
+ return false;
58
+ }
59
+ if (position.lineNumber === range.endLineNumber && position.column >= range.endColumn) {
60
+ return false;
61
+ }
62
+ return true;
63
+ }
64
+ /**
65
+ * Test if range is in this range. If the range is equal to this range, will return true.
66
+ */
67
+ containsRange(range) {
68
+ return Range.containsRange(this, range);
69
+ }
70
+ /**
71
+ * Test if `otherRange` is in `range`. If the ranges are equal, will return true.
72
+ */
73
+ static containsRange(range, otherRange) {
74
+ if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {
75
+ return false;
76
+ }
77
+ if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {
78
+ return false;
79
+ }
80
+ if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) {
81
+ return false;
82
+ }
83
+ if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) {
84
+ return false;
85
+ }
86
+ return true;
87
+ }
88
+ /**
89
+ * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.
90
+ */
91
+ strictContainsRange(range) {
92
+ return Range.strictContainsRange(this, range);
93
+ }
94
+ /**
95
+ * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.
96
+ */
97
+ static strictContainsRange(range, otherRange) {
98
+ if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {
99
+ return false;
100
+ }
101
+ if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {
102
+ return false;
103
+ }
104
+ if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn <= range.startColumn) {
105
+ return false;
106
+ }
107
+ if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn >= range.endColumn) {
108
+ return false;
109
+ }
110
+ return true;
111
+ }
112
+ /**
113
+ * A reunion of the two ranges.
114
+ * The smallest position will be used as the start point, and the largest one as the end point.
115
+ */
116
+ plusRange(range) {
117
+ return Range.plusRange(this, range);
118
+ }
119
+ /**
120
+ * A reunion of the two ranges.
121
+ * The smallest position will be used as the start point, and the largest one as the end point.
122
+ */
123
+ static plusRange(a, b) {
124
+ let startLineNumber;
125
+ let startColumn;
126
+ let endLineNumber;
127
+ let endColumn;
128
+ if (b.startLineNumber < a.startLineNumber) {
129
+ startLineNumber = b.startLineNumber;
130
+ startColumn = b.startColumn;
131
+ } else if (b.startLineNumber === a.startLineNumber) {
132
+ startLineNumber = b.startLineNumber;
133
+ startColumn = Math.min(b.startColumn, a.startColumn);
134
+ } else {
135
+ startLineNumber = a.startLineNumber;
136
+ startColumn = a.startColumn;
137
+ }
138
+ if (b.endLineNumber > a.endLineNumber) {
139
+ endLineNumber = b.endLineNumber;
140
+ endColumn = b.endColumn;
141
+ } else if (b.endLineNumber === a.endLineNumber) {
142
+ endLineNumber = b.endLineNumber;
143
+ endColumn = Math.max(b.endColumn, a.endColumn);
144
+ } else {
145
+ endLineNumber = a.endLineNumber;
146
+ endColumn = a.endColumn;
147
+ }
148
+ return new Range(startLineNumber, startColumn, endLineNumber, endColumn);
149
+ }
150
+ /**
151
+ * A intersection of the two ranges.
152
+ */
153
+ intersectRanges(range) {
154
+ return Range.intersectRanges(this, range);
155
+ }
156
+ /**
157
+ * A intersection of the two ranges.
158
+ */
159
+ static intersectRanges(a, b) {
160
+ let resultStartLineNumber = a.startLineNumber;
161
+ let resultStartColumn = a.startColumn;
162
+ let resultEndLineNumber = a.endLineNumber;
163
+ let resultEndColumn = a.endColumn;
164
+ const otherStartLineNumber = b.startLineNumber;
165
+ const otherStartColumn = b.startColumn;
166
+ const otherEndLineNumber = b.endLineNumber;
167
+ const otherEndColumn = b.endColumn;
168
+ if (resultStartLineNumber < otherStartLineNumber) {
169
+ resultStartLineNumber = otherStartLineNumber;
170
+ resultStartColumn = otherStartColumn;
171
+ } else if (resultStartLineNumber === otherStartLineNumber) {
172
+ resultStartColumn = Math.max(resultStartColumn, otherStartColumn);
173
+ }
174
+ if (resultEndLineNumber > otherEndLineNumber) {
175
+ resultEndLineNumber = otherEndLineNumber;
176
+ resultEndColumn = otherEndColumn;
177
+ } else if (resultEndLineNumber === otherEndLineNumber) {
178
+ resultEndColumn = Math.min(resultEndColumn, otherEndColumn);
179
+ }
180
+ if (resultStartLineNumber > resultEndLineNumber) {
181
+ return null;
182
+ }
183
+ if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) {
184
+ return null;
185
+ }
186
+ return new Range(
187
+ resultStartLineNumber,
188
+ resultStartColumn,
189
+ resultEndLineNumber,
190
+ resultEndColumn
191
+ );
192
+ }
193
+ /**
194
+ * Test if this range equals other.
195
+ */
196
+ equalsRange(other) {
197
+ return Range.equalsRange(this, other);
198
+ }
199
+ /**
200
+ * Test if range `a` equals `b`.
201
+ */
202
+ static equalsRange(a, b) {
203
+ if (!a && !b) {
204
+ return true;
205
+ }
206
+ return !!a && !!b && a.startLineNumber === b.startLineNumber && a.startColumn === b.startColumn && a.endLineNumber === b.endLineNumber && a.endColumn === b.endColumn;
207
+ }
208
+ /**
209
+ * Return the end position (which will be after or equal to the start position)
210
+ */
211
+ getEndPosition() {
212
+ return Range.getEndPosition(this);
213
+ }
214
+ /**
215
+ * Return the end position (which will be after or equal to the start position)
216
+ */
217
+ static getEndPosition(range) {
218
+ return new Position(range.endLineNumber, range.endColumn);
219
+ }
220
+ /**
221
+ * Return the start position (which will be before or equal to the end position)
222
+ */
223
+ getStartPosition() {
224
+ return Range.getStartPosition(this);
225
+ }
226
+ /**
227
+ * Return the start position (which will be before or equal to the end position)
228
+ */
229
+ static getStartPosition(range) {
230
+ return new Position(range.startLineNumber, range.startColumn);
231
+ }
232
+ /**
233
+ * Transform to a user presentable string representation.
234
+ */
235
+ toString() {
236
+ return `[${this.startLineNumber},${this.startColumn} -> ${this.endLineNumber},${this.endColumn}]`;
237
+ }
238
+ /**
239
+ * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.
240
+ */
241
+ setEndPosition(endLineNumber, endColumn) {
242
+ return new Range(
243
+ this.startLineNumber,
244
+ this.startColumn,
245
+ endLineNumber,
246
+ endColumn
247
+ );
248
+ }
249
+ /**
250
+ * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.
251
+ */
252
+ setStartPosition(startLineNumber, startColumn) {
253
+ return new Range(
254
+ startLineNumber,
255
+ startColumn,
256
+ this.endLineNumber,
257
+ this.endColumn
258
+ );
259
+ }
260
+ /**
261
+ * Create a new empty range using this range's start position.
262
+ */
263
+ collapseToStart() {
264
+ return Range.collapseToStart(this);
265
+ }
266
+ /**
267
+ * Create a new empty range using this range's start position.
268
+ */
269
+ static collapseToStart(range) {
270
+ return new Range(
271
+ range.startLineNumber,
272
+ range.startColumn,
273
+ range.startLineNumber,
274
+ range.startColumn
275
+ );
276
+ }
277
+ /**
278
+ * Create a new empty range using this range's end position.
279
+ */
280
+ collapseToEnd() {
281
+ return Range.collapseToEnd(this);
282
+ }
283
+ /**
284
+ * Create a new empty range using this range's end position.
285
+ */
286
+ static collapseToEnd(range) {
287
+ return new Range(
288
+ range.endLineNumber,
289
+ range.endColumn,
290
+ range.endLineNumber,
291
+ range.endColumn
292
+ );
293
+ }
294
+ /**
295
+ * Moves the range by the given amount of lines.
296
+ */
297
+ delta(lineCount) {
298
+ return new Range(
299
+ this.startLineNumber + lineCount,
300
+ this.startColumn,
301
+ this.endLineNumber + lineCount,
302
+ this.endColumn
303
+ );
304
+ }
305
+ // ---
306
+ static fromPositions(start, end = start) {
307
+ return new Range(
308
+ start.lineNumber,
309
+ start.column,
310
+ end.lineNumber,
311
+ end.column
312
+ );
313
+ }
314
+ static lift(range) {
315
+ if (!range) {
316
+ return null;
317
+ }
318
+ return new Range(
319
+ range.startLineNumber,
320
+ range.startColumn,
321
+ range.endLineNumber,
322
+ range.endColumn
323
+ );
324
+ }
325
+ /**
326
+ * Test if `obj` is an `IRange`.
327
+ */
328
+ static isIRange(obj) {
329
+ return obj && typeof obj.startLineNumber === "number" && typeof obj.startColumn === "number" && typeof obj.endLineNumber === "number" && typeof obj.endColumn === "number";
330
+ }
331
+ /**
332
+ * Test if the two ranges are touching in any way.
333
+ */
334
+ static areIntersectingOrTouching(a, b) {
335
+ if (a.endLineNumber < b.startLineNumber || a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn) {
336
+ return false;
337
+ }
338
+ if (b.endLineNumber < a.startLineNumber || b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn) {
339
+ return false;
340
+ }
341
+ return true;
342
+ }
343
+ /**
344
+ * Test if the two ranges are intersecting. If the ranges are touching it returns true.
345
+ */
346
+ static areIntersecting(a, b) {
347
+ if (a.endLineNumber < b.startLineNumber || a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn) {
348
+ return false;
349
+ }
350
+ if (b.endLineNumber < a.startLineNumber || b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn) {
351
+ return false;
352
+ }
353
+ return true;
354
+ }
355
+ /**
356
+ * A function that compares ranges, useful for sorting ranges
357
+ * It will first compare ranges on the startPosition and then on the endPosition
358
+ */
359
+ static compareRangesUsingStarts(a, b) {
360
+ if (a && b) {
361
+ const aStartLineNumber = a.startLineNumber | 0;
362
+ const bStartLineNumber = b.startLineNumber | 0;
363
+ if (aStartLineNumber === bStartLineNumber) {
364
+ const aStartColumn = a.startColumn | 0;
365
+ const bStartColumn = b.startColumn | 0;
366
+ if (aStartColumn === bStartColumn) {
367
+ const aEndLineNumber = a.endLineNumber | 0;
368
+ const bEndLineNumber = b.endLineNumber | 0;
369
+ if (aEndLineNumber === bEndLineNumber) {
370
+ const aEndColumn = a.endColumn | 0;
371
+ const bEndColumn = b.endColumn | 0;
372
+ return aEndColumn - bEndColumn;
373
+ }
374
+ return aEndLineNumber - bEndLineNumber;
375
+ }
376
+ return aStartColumn - bStartColumn;
377
+ }
378
+ return aStartLineNumber - bStartLineNumber;
379
+ }
380
+ const aExists = a ? 1 : 0;
381
+ const bExists = b ? 1 : 0;
382
+ return aExists - bExists;
383
+ }
384
+ /**
385
+ * A function that compares ranges, useful for sorting ranges
386
+ * It will first compare ranges on the endPosition and then on the startPosition
387
+ */
388
+ static compareRangesUsingEnds(a, b) {
389
+ if (a.endLineNumber === b.endLineNumber) {
390
+ if (a.endColumn === b.endColumn) {
391
+ if (a.startLineNumber === b.startLineNumber) {
392
+ return a.startColumn - b.startColumn;
393
+ }
394
+ return a.startLineNumber - b.startLineNumber;
395
+ }
396
+ return a.endColumn - b.endColumn;
397
+ }
398
+ return a.endLineNumber - b.endLineNumber;
399
+ }
400
+ /**
401
+ * Test if the range spans multiple lines.
402
+ */
403
+ static spansMultipleLines(range) {
404
+ return range.endLineNumber > range.startLineNumber;
405
+ }
406
+ toJSON() {
407
+ return this;
408
+ }
409
+ }
410
+ class Position {
411
+ constructor(lineNumber, column) {
412
+ this.lineNumber = lineNumber;
413
+ this.column = column;
414
+ }
415
+ /**
416
+ * Create a new position from this position.
417
+ *
418
+ * @param newLineNumber new line number
419
+ * @param newColumn new column
420
+ */
421
+ with(newLineNumber = this.lineNumber, newColumn = this.column) {
422
+ if (newLineNumber === this.lineNumber && newColumn === this.column) {
423
+ return this;
424
+ }
425
+ return new Position(newLineNumber, newColumn);
426
+ }
427
+ /**
428
+ * Derive a new position from this position.
429
+ *
430
+ * @param deltaLineNumber line number delta
431
+ * @param deltaColumn column delta
432
+ */
433
+ delta(deltaLineNumber = 0, deltaColumn = 0) {
434
+ return this.with(
435
+ this.lineNumber + deltaLineNumber,
436
+ this.column + deltaColumn
437
+ );
438
+ }
439
+ /**
440
+ * Test if this position equals other position
441
+ */
442
+ equals(other) {
443
+ return Position.equals(this, other);
444
+ }
445
+ /**
446
+ * Test if position `a` equals position `b`
447
+ */
448
+ static equals(a, b) {
449
+ if (!a && !b) {
450
+ return true;
451
+ }
452
+ return !!a && !!b && a.lineNumber === b.lineNumber && a.column === b.column;
453
+ }
454
+ /**
455
+ * Test if this position is before other position.
456
+ * If the two positions are equal, the result will be false.
457
+ */
458
+ isBefore(other) {
459
+ return Position.isBefore(this, other);
460
+ }
461
+ /**
462
+ * Test if position `a` is before position `b`.
463
+ * If the two positions are equal, the result will be false.
464
+ */
465
+ static isBefore(a, b) {
466
+ if (a.lineNumber < b.lineNumber) {
467
+ return true;
468
+ }
469
+ if (b.lineNumber < a.lineNumber) {
470
+ return false;
471
+ }
472
+ return a.column < b.column;
473
+ }
474
+ /**
475
+ * Test if this position is before other position.
476
+ * If the two positions are equal, the result will be true.
477
+ */
478
+ isBeforeOrEqual(other) {
479
+ return Position.isBeforeOrEqual(this, other);
480
+ }
481
+ /**
482
+ * Test if position `a` is before position `b`.
483
+ * If the two positions are equal, the result will be true.
484
+ */
485
+ static isBeforeOrEqual(a, b) {
486
+ if (a.lineNumber < b.lineNumber) {
487
+ return true;
488
+ }
489
+ if (b.lineNumber < a.lineNumber) {
490
+ return false;
491
+ }
492
+ return a.column <= b.column;
493
+ }
494
+ /**
495
+ * A function that compares positions, useful for sorting
496
+ */
497
+ static compare(a, b) {
498
+ const aLineNumber = a.lineNumber | 0;
499
+ const bLineNumber = b.lineNumber | 0;
500
+ if (aLineNumber === bLineNumber) {
501
+ const aColumn = a.column | 0;
502
+ const bColumn = b.column | 0;
503
+ return aColumn - bColumn;
504
+ }
505
+ return aLineNumber - bLineNumber;
506
+ }
507
+ /**
508
+ * Clone this position.
509
+ */
510
+ clone() {
511
+ return new Position(this.lineNumber, this.column);
512
+ }
513
+ /**
514
+ * Convert to a human-readable representation.
515
+ */
516
+ toString() {
517
+ return `(${this.lineNumber},${this.column})`;
518
+ }
519
+ // ---
520
+ /**
521
+ * Create a `Position` from an `IPosition`.
522
+ */
523
+ static lift(pos) {
524
+ return new Position(pos.lineNumber, pos.column);
525
+ }
526
+ /**
527
+ * Test if `obj` is an `IPosition`.
528
+ */
529
+ static isIPosition(obj) {
530
+ return obj && typeof obj.lineNumber === "number" && typeof obj.column === "number";
531
+ }
532
+ toJSON() {
533
+ return {
534
+ lineNumber: this.lineNumber,
535
+ column: this.column
536
+ };
537
+ }
538
+ }
539
+ export {
540
+ Position,
541
+ Range
542
+ };
@@ -1,5 +1,5 @@
1
1
  import { Module, ModuleGraph, Statement } from '@rsdoctor/graph';
2
- import { editor } from 'monaco-editor';
2
+ import type { editor } from 'monaco-editor';
3
3
  export declare function useFileStructures(modules: Module[], moduleGraph: ModuleGraph, searchInput: string, selectedModule: Module, onItemClick: (file: string) => void, cwd: string): import("../../utils").DataNode[];
4
4
  export declare function getTreeFilesDefaultExpandedKeys(files: any[]): (string | number)[];
5
5
  export declare function ellipsisPath(full: string): string;
@@ -4,7 +4,7 @@ import path from "path-browserify";
4
4
  import { escape, get } from "lodash-es";
5
5
  import { Module } from "@rsdoctor/graph";
6
6
  import { Tag, Space } from "antd";
7
- import { Range } from "monaco-editor";
7
+ import { Range } from "./range";
8
8
  import { getOpenTagText } from "./open-tag";
9
9
  import {
10
10
  createFileStructures,
@@ -8,7 +8,7 @@ const Page = () => {
8
8
  {
9
9
  title: "Webpack Loader Analysis",
10
10
  extra: /* @__PURE__ */ jsx(WebpackConfigurationViewer, { defaultKeys: ["module", "resolve"] }),
11
- bodyStyle: { paddingTop: 0 },
11
+ bodyStyle: { paddingTop: 0, height: 800 },
12
12
  children: /* @__PURE__ */ jsx(LoaderAnalysis, {})
13
13
  }
14
14
  );
@@ -0,0 +1,11 @@
1
+ import { Manifest, SDK } from '@rsdoctor/types';
2
+ import { BaseDataLoader } from './base';
3
+ export declare class BriefDataLoader extends BaseDataLoader {
4
+ isLocal(): boolean;
5
+ loadData<T extends Manifest.RsdoctorManifestMappingKeys>(key: T): Promise<Manifest.InferManifestDataValue<T>>;
6
+ getData(scope: keyof Manifest.RsdoctorManifestData): any;
7
+ loadAPI<T extends SDK.ServerAPI.API, B extends SDK.ServerAPI.InferRequestBodyType<T> = SDK.ServerAPI.InferRequestBodyType<T>, R extends SDK.ServerAPI.InferResponseType<T> = SDK.ServerAPI.InferResponseType<T>>(...args: B extends void ? [api: T] : [api: T, body: B]): Promise<R>;
8
+ dispose(): void;
9
+ onDataUpdate(): void;
10
+ removeOnDataUpdate(): void;
11
+ }
@@ -0,0 +1,42 @@
1
+ import { Algorithm } from "@rsdoctor/utils/common";
2
+ import { BaseDataLoader } from "./base";
3
+ import { Constants } from "@rsdoctor/types";
4
+ class BriefDataLoader extends BaseDataLoader {
5
+ isLocal() {
6
+ return false;
7
+ }
8
+ async loadData(key) {
9
+ console.log(`[loadData]-[key]: ${key}`);
10
+ const [scope] = this.getKeys(key);
11
+ console.log(`[loadData]-[scope]: ${scope}`);
12
+ const data = this.getData(scope);
13
+ console.log(`[loadData]-[data]: ${data}`);
14
+ if (!data)
15
+ return;
16
+ let res = data;
17
+ if (!this.shardingDataMap.has(scope)) {
18
+ const scopeData = typeof res === "object" ? res : JSON.parse(Algorithm.decompressText(res));
19
+ console.log(`[loadData]-[scopeData]: ${scopeData}`);
20
+ this.shardingDataMap.set(scope, scopeData);
21
+ }
22
+ res = await this.shardingDataMap.get(scope);
23
+ return res;
24
+ }
25
+ getData(scope) {
26
+ console.log(`[getData]-[scope]: ${scope}`);
27
+ return window[Constants.WINDOW_RSDOCTOR_TAG][scope];
28
+ }
29
+ async loadAPI(...args) {
30
+ return this.loader.loadAPI(...args);
31
+ }
32
+ dispose() {
33
+ super.dispose();
34
+ }
35
+ onDataUpdate() {
36
+ }
37
+ removeOnDataUpdate() {
38
+ }
39
+ }
40
+ export {
41
+ BriefDataLoader
42
+ };
@@ -1,19 +1,23 @@
1
+ import { Constants } from "@rsdoctor/types";
1
2
  import { useEffect, useState } from "react";
2
3
  import { LocalServerDataLoader } from "./local";
3
4
  import { RemoteDataLoader } from "./remote";
4
5
  import { getAPILoaderModeFromStorage } from "../storage";
5
6
  import { APILoaderMode4Dev } from "../../constants";
7
+ import { BriefDataLoader } from "./brief";
6
8
  const loaderTask = /* @__PURE__ */ new WeakMap();
7
9
  async function createDataLoader(manifest) {
8
10
  try {
9
11
  if (process.env.NODE_ENV === "development") {
10
12
  const mode = getAPILoaderModeFromStorage();
13
+ console.log(`[development]-${mode}`);
11
14
  if (mode === APILoaderMode4Dev.Local)
12
15
  return new LocalServerDataLoader(manifest);
13
16
  if (mode === APILoaderMode4Dev.Remote)
14
17
  return new RemoteDataLoader(manifest);
15
18
  }
16
19
  if (manifest.__LOCAL__SERVER__) {
20
+ console.log(`[LocalServerDataLoader]`);
17
21
  return new LocalServerDataLoader(manifest);
18
22
  }
19
23
  } catch (error) {
@@ -23,6 +27,13 @@ async function createDataLoader(manifest) {
23
27
  }
24
28
  function useDataLoader(manifest) {
25
29
  const [loader, setLoader] = useState(void 0);
30
+ useEffect(() => {
31
+ if (window[Constants.WINDOW_RSDOCTOR_TAG]) {
32
+ console.log("[brief mode]");
33
+ const loader2 = new BriefDataLoader({ data: [] });
34
+ setLoader(loader2);
35
+ }
36
+ }, []);
26
37
  useEffect(() => {
27
38
  if (!manifest)
28
39
  return;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Common } from '@rsdoctor/types';
3
2
  import { UploadFile } from 'antd';
4
3
  import { FieldDataNode } from 'rc-tree';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Manifest, Rule, SDK } from '@rsdoctor/types';
3
2
  import { useTranslation } from 'react-i18next';
4
3
  import './i18n';
@@ -5,7 +5,7 @@ export declare function useManifestJson(): Manifest.RsdoctorManifest;
5
5
  export declare function useLocale(): import("../constants").Language;
6
6
  export declare function useTheme(): {
7
7
  theme: Theme;
8
- setTheme: (theme: Theme) => void;
8
+ setTheme: (theme: import("../config").Config["theme"]) => void;
9
9
  isDark: boolean;
10
10
  isLight: boolean;
11
11
  };
@@ -14,10 +14,7 @@ export declare function useViewMode(): {
14
14
  bundleAlerts: ViewMode;
15
15
  compileAlerts: ViewMode;
16
16
  };
17
- setViewMode: (mode: Partial<{
18
- bundleAlerts: ViewMode;
19
- compileAlerts: ViewMode;
20
- }>, saveStorage?: boolean | undefined) => void;
17
+ setViewMode: (mode: Partial<import("../config").Config["viewMode"]>, saveStorage?: boolean) => void;
21
18
  setCompileAlertsViewMode(mode: ViewMode): void;
22
19
  setBundleAlertsViewMode(mode: ViewMode): void;
23
20
  isCompileList: boolean;