signal.js 594 B

12345678910111213141516171819202122
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.signal = void 0;
  4. const system_1 = require("./system");
  5. const dep_1 = require("./dep");
  6. function signal(oldValue) {
  7. const dep = new dep_1.Dep();
  8. const fn = (() => {
  9. (0, system_1.track)(dep);
  10. return oldValue;
  11. });
  12. fn.markDirty = () => {
  13. (0, system_1.trigger)(dep, 3 /* DirtyLevels.Dirty */);
  14. };
  15. fn.set = (newValue) => {
  16. if (!Object.is(oldValue, oldValue = newValue)) {
  17. fn.markDirty();
  18. }
  19. };
  20. return fn;
  21. }
  22. exports.signal = signal;