hypha-rpc 0.20.29 → 0.20.30

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.
@@ -787,21 +787,34 @@ class RPC extends _utils__WEBPACK_IMPORTED_MODULE_0__.MessageEmitter {
787
787
  }
788
788
 
789
789
  async unregister_service(service, notify) {
790
- if (service instanceof Object) {
791
- service = service.id;
790
+ notify = notify === undefined ? true : notify;
791
+ let service_id;
792
+ if (typeof service === "string") {
793
+ service_id = service;
794
+ } else {
795
+ service_id = service.id;
796
+ }
797
+ (0,_utils__WEBPACK_IMPORTED_MODULE_0__.assert)(
798
+ service_id && typeof service_id === "string",
799
+ `Invalid service id: ${service_id}`,
800
+ );
801
+ if (service_id.includes(":")) {
802
+ service_id = service_id.split(":")[1];
803
+ }
804
+ if (service_id.includes("@")) {
805
+ service_id = service_id.split("@")[0];
792
806
  }
793
- if (!this._services[service]) {
794
- throw new Error(`Service not found: ${service}`);
807
+ if (!this._services[service_id]) {
808
+ throw new Error(`Service not found: ${service_id}`);
795
809
  }
796
- const api = this._services[service];
797
- delete this._services[service];
798
810
  if (notify) {
799
811
  const manager = await this.get_manager_service({
800
812
  timeout: 10,
801
813
  case_conversion: "camel",
802
814
  });
803
- await manager.registerService(api.id);
815
+ await manager.unregisterService(service_id);
804
816
  }
817
+ delete this._services[service_id];
805
818
  }
806
819
 
807
820
  _ndarray(typedArray, shape, dtype) {