@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.js CHANGED
@@ -2561,21 +2561,40 @@ var MetadataPlugin = class {
2561
2561
  totalItems: totalLoaded,
2562
2562
  registeredTypes: sortedTypes.length
2563
2563
  });
2564
+ let driverBridged = false;
2564
2565
  try {
2565
- const services = ctx.getServices();
2566
- for (const [serviceName, service] of services) {
2567
- if (serviceName.startsWith("driver.") && service) {
2568
- ctx.logger.info("[MetadataPlugin] Bridging driver to MetadataManager for database-backed persistence", {
2569
- driverService: serviceName
2566
+ const ql = ctx.getService("objectql");
2567
+ if (ql) {
2568
+ const tableName = this.manager["config"]?.tableName ?? "sys_metadata";
2569
+ const driver = ql.getDriverForObject?.(tableName);
2570
+ if (driver) {
2571
+ ctx.logger.info("[MetadataPlugin] Bridging driver to MetadataManager via ObjectQL routing", {
2572
+ tableName,
2573
+ driver: driver.name
2570
2574
  });
2571
- this.manager.setDatabaseDriver(service);
2572
- break;
2575
+ this.manager.setDatabaseDriver(driver);
2576
+ driverBridged = true;
2577
+ } else {
2578
+ ctx.logger.debug("[MetadataPlugin] ObjectQL could not resolve driver for metadata table", { tableName });
2573
2579
  }
2574
2580
  }
2575
- } catch (e) {
2576
- ctx.logger.debug("[MetadataPlugin] No driver service found \u2014 database metadata persistence not available", {
2577
- error: e.message
2578
- });
2581
+ } catch {
2582
+ }
2583
+ if (!driverBridged) {
2584
+ try {
2585
+ const services = ctx.getServices();
2586
+ for (const [serviceName, service] of services) {
2587
+ if (serviceName.startsWith("driver.") && service) {
2588
+ ctx.logger.info("[MetadataPlugin] Bridging driver to MetadataManager (fallback: first driver)", {
2589
+ driverService: serviceName
2590
+ });
2591
+ this.manager.setDatabaseDriver(service);
2592
+ break;
2593
+ }
2594
+ }
2595
+ } catch (e) {
2596
+ ctx.logger.debug("[MetadataPlugin] No driver service found", { error: e.message });
2597
+ }
2579
2598
  }
2580
2599
  try {
2581
2600
  const realtimeService = ctx.getService("realtime");