@@ -276,7 +276,7 @@ function node_loader_trampoline_discover_function(func) {
276276			if  ( node_loader_trampoline_is_valid_symbol ( node ) )  { 
277277				const  args  =  node_loader_trampoline_discover_arguments ( node ) ; 
278278				const  discover  =  { 
279- 					ptr :  func , 
279+ 					func, 
280280					signature : args , 
281281					async : node . async , 
282282				} ; 
@@ -293,6 +293,41 @@ function node_loader_trampoline_discover_function(func) {
293293	} 
294294} 
295295
296+ function  node_loader_trampoline_discover_klass ( klass )  { 
297+ 		try  { 
298+ 		if  ( node_loader_trampoline_is_callable ( klass ) )  { 
299+ 			const  str  =  klass . toString ( ) ; 
300+ 			const  ast  =  espree . parse ( `(${ str }  )` ,  { 
301+ 				ecmaVersion : 14 
302+ 			} ) ; 
303+ 
304+ 			const  node  =  ( ast . body [ 0 ] . type  ===  'ExpressionStatement' )  &&  ast . body [ 0 ] . expression ; 
305+ 
306+ 			if  ( node . type  ===  'ClassExpression' )  { 
307+ 				const  discover  =  { 
308+ 					klass
309+ 				} ; 
310+ 
311+ 				if  ( node . id  &&  node . id . name )  { 
312+ 					discover [ 'name' ]  =  node . id . name ; 
313+ 				} 
314+ 
315+ 				return  discover ; 
316+ 			} 
317+ 		} 
318+ 	}  catch  ( ex )  { 
319+ 		console . log ( `Exception while parsing '${ klass }  ' in node_loader_trampoline_discover_klass` ,  ex ) ; 
320+ 	} 
321+ } 
322+ 
323+ function  node_loader_trampoline_discover_object ( obj )  { 
324+ 	if  ( typeof  obj  ===  'object' )  { 
325+ 		return  { 
326+ 			obj
327+ 		} ; 
328+ 	} 
329+ } 
330+ 
296331function  node_loader_trampoline_discover ( handle )  { 
297332	const  discover  =  { } ; 
298333
@@ -305,8 +340,9 @@ function node_loader_trampoline_discover(handle) {
305340
306341			for  ( let  j  =  0 ;  j  <  keys . length ;  ++ j )  { 
307342				const  key  =  keys [ j ] ; 
308- 				const  func  =  exports [ key ] ; 
309- 				const  descriptor  =  node_loader_trampoline_discover_function ( func ) ; 
343+ 				const  value  =  exports [ key ] ; 
344+ 				const  descriptor  =  node_loader_trampoline_discover_function ( value ) 
345+ 					||  node_loader_trampoline_discover_klass ( value )  ||  node_loader_trampoline_discover_object ( value ) ; 
310346
311347				if  ( descriptor  !==  undefined )  { 
312348					discover [ key ]  =  descriptor ; 
0 commit comments