@@ -2,8 +2,7 @@ import { ObjectKernel, DriverPlugin, AppPlugin } from '@objectstack/runtime';
22import { ObjectQLPlugin } from '@objectstack/objectql' ;
33import { InMemoryDriver } from '@objectstack/driver-memory' ;
44import { MSWPlugin } from '@objectstack/plugin-msw' ;
5- import appConfig from '../objectstack.config' ;
6- import { mockData } from '../data' ;
5+ import { config as crmConfig } from '@object-ui/example-crm' ;
76import { http , HttpResponse } from 'msw' ;
87
98let kernel : ObjectKernel | null = null ;
@@ -24,7 +23,7 @@ export async function startMockServer() {
2423 // Register the driver
2524 . use ( new DriverPlugin ( driver , 'memory' ) )
2625 // Load app config as a plugin
27- . use ( new AppPlugin ( appConfig ) )
26+ . use ( new AppPlugin ( crmConfig ) )
2827 // MSW Plugin (intercepts network requests)
2928 . use ( new MSWPlugin ( {
3029 enableBrowser : true ,
@@ -36,13 +35,13 @@ export async function startMockServer() {
3635 // We use closure 'driver' variable to bypass objectql service issues
3736 try {
3837 // Use IDataEngine interface directly via driver
39- const user = ( await driver . findOne ( 'user' , 'current' ) ) || { } ;
40- const contacts = await driver . find ( 'contact' , { } ) ;
41- const opportunities = await driver . find ( 'opportunity' , { } ) ;
38+ // const user = (await driver.findOne('user', 'current')) || {};
39+ const contacts = await driver . find ( 'contact' , { object : 'contact' } ) ;
40+ const opportunities = await driver . find ( 'opportunity' , { object : 'opportunity' } ) ;
4241 const stats = { revenue : 125000 , leads : 45 , deals : 12 } ;
4342
4443 return HttpResponse . json ( {
45- user,
44+ user : { name : "Demo User" , role : "admin" } , // simple mock
4645 stats,
4746 contacts,
4847 opportunities
@@ -58,48 +57,26 @@ export async function startMockServer() {
5857 await kernel . bootstrap ( ) ;
5958
6059 // Seed Data
61- await initializeMockData ( kernel , driver ) ;
60+ await initializeMockData ( driver ) ;
6261
6362 return kernel ;
6463}
6564
6665// Helper to seed data into the in-memory driver
67- async function initializeMockData ( kernel : ObjectKernel , driver : InMemoryDriver ) {
68- console . log ( '[MockServer] Initializing mock data (fresh) ...' ) ;
66+ async function initializeMockData ( driver : InMemoryDriver ) {
67+ console . log ( '[MockServer] Initializing mock data from manifest ...' ) ;
6968
70- try {
71- // Seed User
72- if ( mockData . user ) {
73- await driver . create ( 'user' , { ...mockData . user , id : 'current' , _id : 'current' } ) ;
74- }
75-
76- // Seed Contacts
77- if ( mockData . contacts ) {
78- for ( const contact of mockData . contacts ) {
79- await driver . create ( 'contact' , { ...contact , _id : contact . id } ) ;
80- }
81- }
82-
83- // Seed Opportunities
84- if ( mockData . opportunities ) {
85- for ( const opp of mockData . opportunities ) {
86- await driver . create ( 'opportunity' , { ...opp , _id : opp . id } ) ;
69+ // @ts -ignore
70+ const manifest = crmConfig . manifest ;
71+ if ( manifest && manifest . data ) {
72+ for ( const dataSet of manifest . data ) {
73+ console . log ( `[MockServer] Seeding ${ dataSet . object } ...` ) ;
74+ if ( dataSet . records ) {
75+ for ( const record of dataSet . records ) {
76+ await driver . create ( dataSet . object , record ) ;
77+ }
8778 }
8879 }
89-
90- // Seed Accounts
91- const accounts = [
92- { id : '1' , name : 'Acme Corp' , industry : 'Technology' } ,
93- { id : '2' , name : 'TechStart Inc' , industry : 'Startup' } ,
94- { id : '3' , name : 'Global Solutions' , industry : 'Consulting' }
95- ] ;
96-
97- for ( const acc of accounts ) {
98- await driver . create ( 'account' , { ...acc , _id : acc . id } ) ;
99- }
100-
101- console . log ( '[MockServer] Data seeded successfully' ) ;
102- } catch ( err ) {
103- console . error ( '[MockServer] Seeding failed:' , err ) ;
10480 }
10581}
82+
0 commit comments