Skip to content

Commit cd26fb9

Browse files
committed
重构企业结构示例的主入口,添加初始化 ObjectQL 的功能
1 parent 79805dc commit cd26fb9

1 file changed

Lines changed: 38 additions & 20 deletions

File tree

  • examples/scenarios/enterprise-structure/src
Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,38 @@
1-
export * from './extensions/user';
2-
export * from './core/objects/attachment';
3-
export * from './core/objects/organization';
4-
export * from './core/objects/user';
5-
export * from './modules/crm/objects/crm_account';
6-
export * from './modules/crm/objects/crm_contact';
7-
export * from './modules/crm/objects/crm_lead';
8-
export * from './modules/crm/objects/crm_opportunity';
9-
export * from './modules/finance/objects/finance_budget';
10-
export * from './modules/finance/objects/finance_expense';
11-
export * from './modules/finance/objects/finance_invoice';
12-
export * from './modules/finance/objects/finance_payment';
13-
export * from './modules/hr/objects/hr_department';
14-
export * from './modules/hr/objects/hr_employee';
15-
export * from './modules/hr/objects/hr_position';
16-
export * from './modules/hr/objects/hr_timesheet';
17-
export * from './modules/project/objects/project_milestone';
18-
export * from './modules/project/objects/project_project';
19-
export * from './modules/project/objects/project_task';
20-
export * from './modules/project/objects/project_timesheet_entry';
1+
/**
2+
* Enterprise Structure Example - Main Entry Point
3+
*
4+
* This demonstrates how to organize metadata for large-scale ObjectQL applications
5+
* using a modular, domain-driven structure.
6+
*/
7+
8+
import { ObjectQL } from '@objectql/core';
9+
import { KnexDriver } from '@objectql/driver-knex';
10+
import path from 'path';
11+
12+
/**
13+
* Initialize ObjectQL with enterprise structure
14+
*/
15+
export async function initializeApp() {
16+
const app = new ObjectQL({
17+
datasources: {
18+
default: new KnexDriver({
19+
client: 'sqlite3',
20+
connection: {
21+
filename: ':memory:'
22+
}
23+
})
24+
},
25+
// Load metadata from current directory
26+
source: __dirname
27+
});
28+
29+
await app.init();
30+
return app;
31+
}
32+
33+
if (require.main === module) {
34+
initializeApp().then(async (app) => {
35+
console.log('Enterprise structure example started!');
36+
console.log('Loaded objects:', Object.keys(app.getConfigs()).length);
37+
}).catch(console.error);
38+
}

0 commit comments

Comments
 (0)