Skip to content

Commit 5fe13ab

Browse files
committed
Refactor object loading to support packages
Moved object definitions from 'objects' to 'packages/project-management' directory and updated configuration to use a 'packages' array. Modified ObjectQL initialization to load objects from specified package directories, improving modularity and organization.
1 parent 757118f commit 5fe13ab

8 files changed

Lines changed: 13 additions & 6 deletions

File tree

examples/basic-usage/src/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ import * as path from 'path';
66
import config from './objectql.config';
77

88
const app = new ObjectQL({
9-
datasources: config.datasources
9+
datasources: config.datasources,
10+
packages: config.packages
1011
});
1112

12-
// Load objects from directory (includes .object.yml and .hook.js)
13-
console.log(`Loading objects from ${config.objectsDir}...`);
14-
app.loadFromDirectory(config.objectsDir);
13+
console.log(`ObjectQL Server started with ${config.packages.length} packages.`);
1514

1615
const projectObj = app.getObject('projects');
1716
if (!projectObj) {

examples/basic-usage/src/objectql.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@ export default {
88
dbName: 'objectql_example'
99
})
1010
},
11-
objectsDir: path.join(__dirname, 'objects')
11+
packages: [
12+
path.join(__dirname, 'packages/project-management')
13+
]
1214
};

examples/basic-usage/src/objects/projects.action.ts renamed to examples/basic-usage/src/packages/project-management/projects.action.ts

File renamed without changes.

examples/basic-usage/src/objects/projects.hook.ts renamed to examples/basic-usage/src/packages/project-management/projects.hook.ts

File renamed without changes.

examples/basic-usage/src/objects/projects.object.yml renamed to examples/basic-usage/src/packages/project-management/projects.object.yml

File renamed without changes.

examples/basic-usage/src/objects/tasks.object.yml renamed to examples/basic-usage/src/packages/project-management/tasks.object.yml

File renamed without changes.

packages/core/src/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,15 @@ export class ObjectQL implements IObjectQL {
1717
constructor(config: ObjectQLConfig) {
1818
this.datasources = config.datasources;
1919
if (config.objects) {
20-
for (const obj of Object.values(config.objects)) {
20+
for (const [key, obj] of Object.entries(config.objects)) {
2121
this.registerObject(obj);
2222
}
2323
}
24+
if (config.packages) {
25+
for (const dir of config.packages) {
26+
this.loadFromDirectory(dir);
27+
}
28+
}
2429
}
2530

2631
loadFromDirectory(dir: string) {

packages/core/src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export { ObjectConfig } from "./metadata";
88
export interface ObjectQLConfig {
99
datasources: Record<string, Driver>;
1010
objects?: Record<string, ObjectConfig>;
11+
packages?: string[];
1112
}
1213

1314
export interface IObjectQL {

0 commit comments

Comments
 (0)