File tree Expand file tree Collapse file tree 3 files changed +25
-23
lines changed
Expand file tree Collapse file tree 3 files changed +25
-23
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @stackflow/react " : patch
3+ ---
4+
5+ Attach state tracking instruments to original promise when creating SyncInspectablePromises with Promises
Original file line number Diff line number Diff line change @@ -49,10 +49,17 @@ export function inspect<T>(
4949}
5050
5151function makeSyncInspectable < T > (
52- thenable : PromiseLike < T > ,
52+ promise : Promise < T > ,
5353) : SyncInspectablePromise < T > {
54+ if (
55+ "status" in promise &&
56+ Object . values ( PromiseStatus ) . some ( ( status ) => status === promise . status )
57+ ) {
58+ return promise as SyncInspectablePromise < T > ;
59+ }
60+
5461 const syncInspectablePromise : SyncInspectablePromise < T > = Object . assign (
55- new Promise < T > ( ( resolve ) => resolve ( thenable ) ) ,
62+ promise ,
5663 { status : PromiseStatus . PENDING } ,
5764 ) ;
5865
@@ -72,15 +79,9 @@ function makeSyncInspectable<T>(
7279
7380export function resolve < T > ( value : T ) : SyncInspectablePromise < Awaited < T > > {
7481 if ( isPromiseLike ( value ) ) {
75- if (
76- value instanceof Promise &&
77- "status" in value &&
78- Object . values ( PromiseStatus ) . some ( ( status ) => status === value . status )
79- ) {
80- return value as SyncInspectablePromise < Awaited < T > > ;
81- }
82-
83- return makeSyncInspectable ( value ) as SyncInspectablePromise < Awaited < T > > ;
82+ return makeSyncInspectable (
83+ value instanceof Promise ? value : Promise . resolve ( value ) ,
84+ ) ;
8485 }
8586
8687 return Object . assign ( Promise . resolve ( value ) , {
Original file line number Diff line number Diff line change @@ -57,18 +57,14 @@ export function loaderPlugin<
5757 return event ;
5858 }
5959
60- const loaderData = loadData ( activityName , activityParams ) ;
61-
62- if ( isPromiseLike ( loaderData ) ) {
63- Promise . allSettled ( [ loaderData ] ) . then (
64- ( [ loaderDataPromiseResult ] ) => {
65- printLoaderDataPromiseError ( {
66- promiseResult : loaderDataPromiseResult ,
67- activityName : matchActivity . name ,
68- } ) ;
69- } ,
70- ) ;
71- }
60+ const loaderData = resolve ( loadData ( activityName , activityParams ) ) ;
61+
62+ Promise . allSettled ( [ loaderData ] ) . then ( ( [ loaderDataPromiseResult ] ) => {
63+ printLoaderDataPromiseError ( {
64+ promiseResult : loaderDataPromiseResult ,
65+ activityName : matchActivity . name ,
66+ } ) ;
67+ } ) ;
7268
7369 return {
7470 ...event ,
You can’t perform that action at this time.
0 commit comments