@xuda.io/runtime-bundle 1.0.1359 → 1.0.1360

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.
@@ -885,10 +885,15 @@ func.api.watch = function (path, cb, opt = {}) {
885
885
  _session.watchers = {};
886
886
  }
887
887
 
888
- _session.watchers[path] = cb;
888
+ _session.watchers[path] = { ...opt, handler: cb };
889
+
889
890
  if (opt.immediate) {
890
891
  const value = _.get(SESSION_OBJ[SESSION_ID].DS_GLB[0], path);
891
892
  cb({ path, newValue: value, oldValue: value, timestamp: Date.now(), opt });
893
+
894
+ if (opt.once) {
895
+ delete _session.watchers[path];
896
+ }
892
897
  }
893
898
  return 'ok';
894
899
  };
@@ -885,10 +885,15 @@ func.api.watch = function (path, cb, opt = {}) {
885
885
  _session.watchers = {};
886
886
  }
887
887
 
888
- _session.watchers[path] = cb;
888
+ _session.watchers[path] = { ...opt, handler: cb };
889
+
889
890
  if (opt.immediate) {
890
891
  const value = _.get(SESSION_OBJ[SESSION_ID].DS_GLB[0], path);
891
892
  cb({ path, newValue: value, oldValue: value, timestamp: Date.now(), opt });
893
+
894
+ if (opt.once) {
895
+ delete _session.watchers[path];
896
+ }
892
897
  }
893
898
  return 'ok';
894
899
  };