@@ -42,14 +42,68 @@ export async function startMockServer() {
4242 await kernel . use ( new AppPlugin ( appConfig ) ) ;
4343
4444 // MSW Plugin handles worker setup automatically with enableBrowser: true
45- await kernel . use ( new MSWPlugin ( {
45+ const mswPlugin = new MSWPlugin ( {
4646 enableBrowser : true ,
4747 baseUrl : '/api/v1' ,
4848 logRequests : true
49- } ) ) ;
49+ } ) ;
50+ await kernel . use ( mswPlugin ) ;
5051
5152 await kernel . bootstrap ( ) ;
5253
54+ // Broker shim: routes HttpDispatcher action calls to kernel services.
55+ // Required because no current plugin initializes kernel.broker.
56+ const ql = kernel . getService < any > ( 'objectql' ) ;
57+ const protocol = kernel . getService < any > ( 'protocol' ) ;
58+ ( kernel as any ) . broker = {
59+ call : async ( action : string , params : any ) => {
60+ const [ service , method ] = action . split ( '.' ) ;
61+
62+ if ( service === 'data' ) {
63+ if ( method === 'query' || method === 'find' ) {
64+ const filter = params . filters ?. filters ?? params . filters ?? params . filter ;
65+ const data = await ql . find ( params . object , {
66+ filter,
67+ top : params . filters ?. top ?? params . top ,
68+ skip : params . filters ?. skip ?? params . skip ,
69+ sort : params . filters ?. sort ?? params . sort ,
70+ } ) ;
71+ return { data, count : data . length } ;
72+ }
73+ if ( method === 'get' ) {
74+ return ql . findOne ( params . object , { filter : { id : params . id } } ) ;
75+ }
76+ if ( method === 'create' ) {
77+ const res = await ql . insert ( params . object , params . data ) ;
78+ return { ...params . data , ...res } ;
79+ }
80+ if ( method === 'update' ) {
81+ return ql . update ( params . object , params . data , { filter : { id : params . id } } ) ;
82+ }
83+ if ( method === 'delete' ) {
84+ return ql . delete ( params . object , { filter : { id : params . id } } ) ;
85+ }
86+ }
87+
88+ if ( service === 'metadata' ) {
89+ if ( method === 'getObject' ) return protocol . getMetaItem ( 'object' , params . objectName ) ;
90+ if ( method === 'objects' ) return protocol . getMetaItems ( 'object' ) ;
91+ if ( method === 'types' ) return { types : [ 'object' , 'app' ] } ;
92+ }
93+
94+ if ( service === 'ui' ) {
95+ if ( method === 'getView' ) return protocol . getUiView ( params . object , params . type ) ;
96+ }
97+
98+ if ( service === 'auth' ) {
99+ return { token : 'mock-token' , user : { name : 'Admin' } } ;
100+ }
101+
102+ if ( import . meta. env . DEV ) console . warn ( `[Broker] Unhandled: ${ action } ` , params ) ;
103+ return null ;
104+ }
105+ } ;
106+
53107 if ( import . meta. env . DEV ) console . log ( '[MSW] ObjectStack Runtime ready' ) ;
54108 return kernel ;
55109}
0 commit comments