@fleetbase/ember-core 0.1.4 → 0.1.5

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.
@@ -140,6 +140,19 @@ export default class UniverseService extends Service.extend(Evented) {
140
140
  return this;
141
141
  }
142
142
 
143
+ /**
144
+ * Triggers an event on for a universe registry.
145
+ *
146
+ * @memberof UniverseService
147
+ * @method createRegistryEvent
148
+ * @param {string} registryName - The name of the registry to trigger the event on.
149
+ * @param {string} event - The name of the event to trigger.
150
+ * @param {...*} params - Additional parameters to pass to the event handler.
151
+ */
152
+ @action createRegistryEvent(registryName, event, ...params) {
153
+ this.trigger(`${registryName}.${event}`, ...params);
154
+ }
155
+
143
156
  /**
144
157
  * @action
145
158
  * Retrieves the entire registry with the given name.
@@ -638,15 +651,9 @@ export default class UniverseService extends Service.extend(Evented) {
638
651
  view,
639
652
  index,
640
653
  section,
654
+ onClick,
641
655
  };
642
656
 
643
- // send default params into onClick
644
- if (typeof onClick === 'function') {
645
- menuItem.onClick = () => {
646
- return onClick(menuItem);
647
- };
648
- }
649
-
650
657
  return menuItem;
651
658
  }
652
659
 
@@ -679,6 +686,55 @@ export default class UniverseService extends Service.extend(Evented) {
679
686
  }
680
687
  }
681
688
 
689
+ /**
690
+ * Manually registers a service in a specified engine.
691
+ *
692
+ * @method registerComponentInEngine
693
+ * @public
694
+ * @memberof UniverseService
695
+ * @param {String} engineName - The name of the engine where the component should be registered.
696
+ * @param {Object} serviceClass - The service class to register, which should have a 'name' property.
697
+ */
698
+ registerServiceInEngine(targetEngineName, serviceName, currentEngineInstance) {
699
+ // Get the target engine instance
700
+ const targetEngineInstance = this.getEngineInstance(targetEngineName);
701
+
702
+ // Validate inputs
703
+ if (targetEngineInstance && currentEngineInstance && typeof serviceName === 'string') {
704
+ // Lookup the service instance from the current engine
705
+ const sharedService = currentEngineInstance.lookup(`service:${serviceName}`);
706
+
707
+ if (sharedService) {
708
+ // Register the service in the target engine
709
+ targetEngineInstance.register(`service:${serviceName}`, sharedService, { instantiate: false });
710
+ }
711
+ }
712
+ }
713
+
714
+ /**
715
+ * Retrieves a service instance from a specified Ember engine.
716
+ *
717
+ * @param {string} engineName - The name of the engine from which to retrieve the service.
718
+ * @param {string} serviceName - The name of the service to retrieve.
719
+ * @returns {Object|null} The service instance if found, otherwise null.
720
+ *
721
+ * @example
722
+ * const userService = universe.getServiceFromEngine('user-engine', 'user');
723
+ * if (userService) {
724
+ * userService.doSomething();
725
+ * }
726
+ */
727
+ getServiceFromEngine(engineName, serviceName) {
728
+ const engineInstance = this.getEngineInstance(engineName);
729
+
730
+ if (engineInstance && typeof serviceName === 'string') {
731
+ const serviceInstance = engineInstance.lookup(`service:${serviceName}`);
732
+ return serviceInstance;
733
+ }
734
+
735
+ return null;
736
+ }
737
+
682
738
  /**
683
739
  * Load the specified engine. If it is not loaded yet, it will use assetLoader
684
740
  * to load it and then register it to the router.
@@ -90,7 +90,7 @@ export default function autoSerialize(model, except = []) {
90
90
  }
91
91
 
92
92
  if (kind === 'hasMany') {
93
- serialized[attr] = model[attr].toArray().map((instance) => serialize(instance));
93
+ serialized[attr] = [];
94
94
  } else {
95
95
  serialized[attr] = serialize(model[attr]);
96
96
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleetbase/ember-core",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Provides all the core services, decorators and utilities for building a Fleetbase extension for the Console.",
5
5
  "keywords": [
6
6
  "fleetbase-core",