Skip to content

Commit 0bd1829

Browse files
committed
Merge branch 'main' into copilot/evaluate-metadata-loading-package
2 parents a333105 + acf8bcc commit 0bd1829

10 files changed

Lines changed: 4842 additions & 130 deletions

File tree

examples/msw-react-crud/src/components/TaskForm.tsx

Lines changed: 241 additions & 123 deletions
Large diffs are not rendered by default.

packages/objectql/src/engine.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,20 @@ export class ObjectQL implements IDataEngine {
123123

124124
// Register objects
125125
if (manifest.objects) {
126-
this.logger.debug('Registering objects from manifest', { id, objectCount: Object.keys(manifest.objects).length });
127-
for (const [name, objDef] of Object.entries(manifest.objects)) {
128-
// Ensure name in definition matches key
129-
(objDef as any).name = name;
130-
SchemaRegistry.registerObject(objDef as any);
131-
this.logger.debug('Registered Object', { object: name, from: id });
126+
if (Array.isArray(manifest.objects)) {
127+
this.logger.debug('Registering objects from manifest (Array)', { id, objectCount: manifest.objects.length });
128+
for (const objDef of manifest.objects) {
129+
SchemaRegistry.registerObject(objDef);
130+
this.logger.debug('Registered Object', { object: objDef.name, from: id });
131+
}
132+
} else {
133+
this.logger.debug('Registering objects from manifest (Map)', { id, objectCount: Object.keys(manifest.objects).length });
134+
for (const [name, objDef] of Object.entries(manifest.objects)) {
135+
// Ensure name in definition matches key
136+
(objDef as any).name = name;
137+
SchemaRegistry.registerObject(objDef as any);
138+
this.logger.debug('Registered Object', { object: name, from: id });
139+
}
132140
}
133141
}
134142

packages/runtime/src/app-plugin.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,14 @@ export class AppPlugin implements Plugin {
3838
// Register the app manifest as a service
3939
// ObjectQLPlugin will discover this and call ql.registerApp()
4040
const serviceName = `app.${appId}`;
41-
ctx.registerService(serviceName, this.bundle.manifest || this.bundle);
41+
42+
// Merge manifest with the bundle to ensure objects/apps are accessible at root
43+
// This supports both Legacy Manifests and new Stack Definitions
44+
const servicePayload = this.bundle.manifest
45+
? { ...this.bundle.manifest, ...this.bundle }
46+
: this.bundle;
47+
48+
ctx.registerService(serviceName, servicePayload);
4249
}
4350

4451
async start(ctx: PluginContext) {

0 commit comments

Comments
 (0)