@adventurelabs/scout-core 1.0.60 → 1.0.61

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.
@@ -52,18 +52,44 @@ export function useScoutRefresh(options = {}) {
52
52
  try {
53
53
  dispatch(setStatus(EnumScoutStateStatus.LOADING));
54
54
  dispatch(setHerdModulesLoadingState(EnumHerdModulesLoadingState.LOADING));
55
- // Measure herd modules API call duration
56
- const herdModulesStartTime = Date.now();
57
- const compatible_new_herd_modules = await server_load_herd_modules();
58
- const herdModulesDuration = Date.now() - herdModulesStartTime;
55
+ // Run API requests in parallel for better performance
56
+ console.log("[useScoutRefresh] Starting parallel API requests...");
57
+ const parallelStartTime = Date.now();
58
+ const [herdModulesResult, userResult] = await Promise.all([
59
+ (async () => {
60
+ const start = Date.now();
61
+ const result = await server_load_herd_modules();
62
+ const duration = Date.now() - start;
63
+ return { result, duration, start };
64
+ })(),
65
+ (async () => {
66
+ const start = Date.now();
67
+ const result = await server_get_user();
68
+ const duration = Date.now() - start;
69
+ return { result, duration, start };
70
+ })(),
71
+ ]);
72
+ const parallelDuration = Date.now() - parallelStartTime;
73
+ console.log(`[useScoutRefresh] Parallel API requests completed in ${parallelDuration}ms`);
74
+ // Extract results and timing
75
+ const compatible_new_herd_modules = herdModulesResult.result;
76
+ const res_new_user = userResult.result;
77
+ const herdModulesDuration = herdModulesResult.duration;
78
+ const userApiDuration = userResult.duration;
79
+ // Store timing values
59
80
  timingRefs.current.herdModulesDuration = herdModulesDuration;
60
- dispatch(setHerdModulesApiDuration(herdModulesDuration));
61
- // Measure user API call duration
62
- const userApiStartTime = Date.now();
63
- const res_new_user = await server_get_user();
64
- const userApiDuration = Date.now() - userApiStartTime;
65
81
  timingRefs.current.userApiDuration = userApiDuration;
82
+ // Dispatch timing actions
83
+ dispatch(setHerdModulesApiDuration(herdModulesDuration));
66
84
  dispatch(setUserApiDuration(userApiDuration));
85
+ // Calculate network overhead
86
+ const totalApiTime = herdModulesDuration + userApiDuration;
87
+ const networkOverhead = parallelDuration - Math.max(herdModulesDuration, userApiDuration);
88
+ console.log(`[useScoutRefresh] API timing breakdown:`);
89
+ console.log(` - Herd modules: ${herdModulesDuration}ms (server processing + network)`);
90
+ console.log(` - User API: ${userApiDuration}ms (server processing + network)`);
91
+ console.log(` - Parallel execution: ${parallelDuration}ms`);
92
+ console.log(` - Network overhead: ${networkOverhead}ms`);
67
93
  // Validate API responses
68
94
  if (!compatible_new_herd_modules ||
69
95
  !Array.isArray(compatible_new_herd_modules)) {
@@ -113,13 +139,16 @@ export function useScoutRefresh(options = {}) {
113
139
  const loadingDuration = Date.now() - startTime;
114
140
  dispatch(setHerdModulesLoadedInMs(loadingDuration));
115
141
  dispatch(setStatus(EnumScoutStateStatus.DONE_LOADING));
116
- // Log timing statistics
117
- console.log("[useScoutRefresh] Refresh completed successfully. Timing breakdown:");
142
+ // Log comprehensive timing statistics
143
+ console.log("[useScoutRefresh] Refresh completed successfully. Full timing breakdown:");
118
144
  console.log(` - Herd modules API: ${herdModulesDuration}ms`);
119
145
  console.log(` - User API: ${userApiDuration}ms`);
146
+ console.log(` - Parallel execution: ${parallelDuration}ms`);
147
+ console.log(` - Network overhead: ${networkOverhead}ms`);
120
148
  console.log(` - Data processing: ${dataProcessingDuration}ms`);
121
149
  console.log(` - LocalStorage operations: ${localStorageDuration}ms`);
122
150
  console.log(` - Total duration: ${loadingDuration}ms`);
151
+ console.log(` - Time saved with parallel execution: ${totalApiTime - parallelDuration}ms`);
123
152
  onRefreshComplete?.();
124
153
  }
125
154
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adventurelabs/scout-core",
3
- "version": "1.0.60",
3
+ "version": "1.0.61",
4
4
  "description": "Core utilities and helpers for Adventure Labs Scout applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",