@objectstack/metadata 4.0.3 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -2606,21 +2606,40 @@ var MetadataPlugin = class {
2606
2606
  totalItems: totalLoaded,
2607
2607
  registeredTypes: sortedTypes.length
2608
2608
  });
2609
+ let driverBridged = false;
2609
2610
  try {
2610
- const services = ctx.getServices();
2611
- for (const [serviceName, service] of services) {
2612
- if (serviceName.startsWith("driver.") && service) {
2613
- ctx.logger.info("[MetadataPlugin] Bridging driver to MetadataManager for database-backed persistence", {
2614
- driverService: serviceName
2611
+ const ql = ctx.getService("objectql");
2612
+ if (ql) {
2613
+ const tableName = this.manager["config"]?.tableName ?? "sys_metadata";
2614
+ const driver = ql.getDriverForObject?.(tableName);
2615
+ if (driver) {
2616
+ ctx.logger.info("[MetadataPlugin] Bridging driver to MetadataManager via ObjectQL routing", {
2617
+ tableName,
2618
+ driver: driver.name
2615
2619
  });
2616
- this.manager.setDatabaseDriver(service);
2617
- break;
2620
+ this.manager.setDatabaseDriver(driver);
2621
+ driverBridged = true;
2622
+ } else {
2623
+ ctx.logger.debug("[MetadataPlugin] ObjectQL could not resolve driver for metadata table", { tableName });
2618
2624
  }
2619
2625
  }
2620
- } catch (e) {
2621
- ctx.logger.debug("[MetadataPlugin] No driver service found \u2014 database metadata persistence not available", {
2622
- error: e.message
2623
- });
2626
+ } catch {
2627
+ }
2628
+ if (!driverBridged) {
2629
+ try {
2630
+ const services = ctx.getServices();
2631
+ for (const [serviceName, service] of services) {
2632
+ if (serviceName.startsWith("driver.") && service) {
2633
+ ctx.logger.info("[MetadataPlugin] Bridging driver to MetadataManager (fallback: first driver)", {
2634
+ driverService: serviceName
2635
+ });
2636
+ this.manager.setDatabaseDriver(service);
2637
+ break;
2638
+ }
2639
+ }
2640
+ } catch (e) {
2641
+ ctx.logger.debug("[MetadataPlugin] No driver service found", { error: e.message });
2642
+ }
2624
2643
  }
2625
2644
  try {
2626
2645
  const realtimeService = ctx.getService("realtime");