synstate 6.2.1 → 7.0.0

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.
Files changed (102) hide show
  1. package/README.md +1 -1
  2. package/dist/core/class/child-observable-class.d.mts +16 -2
  3. package/dist/core/class/child-observable-class.d.mts.map +1 -1
  4. package/dist/core/class/child-observable-class.mjs +37 -4
  5. package/dist/core/class/child-observable-class.mjs.map +1 -1
  6. package/dist/core/class/create-child-observable.d.mts +1 -1
  7. package/dist/core/class/create-child-observable.d.mts.map +1 -1
  8. package/dist/core/class/create-child-observable.mjs +6 -8
  9. package/dist/core/class/create-child-observable.mjs.map +1 -1
  10. package/dist/core/class/create-root-observable.d.mts +1 -1
  11. package/dist/core/class/create-root-observable.d.mts.map +1 -1
  12. package/dist/core/class/create-root-observable.mjs +1 -5
  13. package/dist/core/class/create-root-observable.mjs.map +1 -1
  14. package/dist/core/class/propagation-state.mjs +1 -1
  15. package/dist/core/class/propagation-state.mjs.map +1 -1
  16. package/dist/core/combine/derive.d.mts.map +1 -1
  17. package/dist/core/combine/derive.mjs +2 -1
  18. package/dist/core/combine/derive.mjs.map +1 -1
  19. package/dist/core/combine/zip.d.mts.map +1 -1
  20. package/dist/core/combine/zip.mjs +5 -2
  21. package/dist/core/combine/zip.mjs.map +1 -1
  22. package/dist/core/create/counter.mjs +2 -2
  23. package/dist/core/create/counter.mjs.map +1 -1
  24. package/dist/core/create/from-abortable-promise.d.mts.map +1 -1
  25. package/dist/core/create/from-abortable-promise.mjs +10 -3
  26. package/dist/core/create/from-abortable-promise.mjs.map +1 -1
  27. package/dist/core/create/from-promise.d.mts.map +1 -1
  28. package/dist/core/create/from-promise.mjs +10 -3
  29. package/dist/core/create/from-promise.mjs.map +1 -1
  30. package/dist/core/create/source.d.mts.map +1 -1
  31. package/dist/core/create/source.mjs +2 -1
  32. package/dist/core/create/source.mjs.map +1 -1
  33. package/dist/core/operators/filter.d.mts +1 -1
  34. package/dist/core/operators/filter.d.mts.map +1 -1
  35. package/dist/core/operators/filter.mjs +2 -3
  36. package/dist/core/operators/filter.mjs.map +1 -1
  37. package/dist/core/operators/merge-map.d.mts +6 -2
  38. package/dist/core/operators/merge-map.d.mts.map +1 -1
  39. package/dist/core/operators/merge-map.mjs +47 -16
  40. package/dist/core/operators/merge-map.mjs.map +1 -1
  41. package/dist/core/operators/skip-while.d.mts +1 -1
  42. package/dist/core/operators/skip-while.d.mts.map +1 -1
  43. package/dist/core/operators/skip-while.mjs +9 -6
  44. package/dist/core/operators/skip-while.mjs.map +1 -1
  45. package/dist/core/operators/switch-map.d.mts +4 -0
  46. package/dist/core/operators/switch-map.d.mts.map +1 -1
  47. package/dist/core/operators/switch-map.mjs +16 -6
  48. package/dist/core/operators/switch-map.mjs.map +1 -1
  49. package/dist/core/operators/take-while.d.mts +2 -2
  50. package/dist/core/operators/take-while.d.mts.map +1 -1
  51. package/dist/core/operators/take-while.mjs +10 -8
  52. package/dist/core/operators/take-while.mjs.map +1 -1
  53. package/dist/core/operators/throttle.mjs +3 -2
  54. package/dist/core/operators/throttle.mjs.map +1 -1
  55. package/dist/core/operators/with-buffered-from.d.mts.map +1 -1
  56. package/dist/core/operators/with-buffered-from.mjs +13 -3
  57. package/dist/core/operators/with-buffered-from.mjs.map +1 -1
  58. package/dist/core/predefined/operators/attach-index.d.mts +1 -1
  59. package/dist/core/predefined/operators/attach-index.d.mts.map +1 -1
  60. package/dist/core/predefined/operators/attach-index.mjs +2 -3
  61. package/dist/core/predefined/operators/attach-index.mjs.map +1 -1
  62. package/dist/core/predefined/operators/skip.d.mts.map +1 -1
  63. package/dist/core/predefined/operators/skip.mjs +2 -2
  64. package/dist/core/predefined/operators/skip.mjs.map +1 -1
  65. package/dist/core/utils/index.d.mts +1 -0
  66. package/dist/core/utils/index.d.mts.map +1 -1
  67. package/dist/core/utils/index.mjs +1 -0
  68. package/dist/core/utils/index.mjs.map +1 -1
  69. package/dist/core/utils/rethrow-out-of-promise.d.mts +10 -0
  70. package/dist/core/utils/rethrow-out-of-promise.d.mts.map +1 -0
  71. package/dist/core/utils/rethrow-out-of-promise.mjs +17 -0
  72. package/dist/core/utils/rethrow-out-of-promise.mjs.map +1 -0
  73. package/package.json +12 -11
  74. package/src/core/class/child-observable-class.mts +45 -3
  75. package/src/core/class/create-child-observable.mts +8 -5
  76. package/src/core/class/create-root-observable.mts +2 -1
  77. package/src/core/class/propagation-state.mts +1 -1
  78. package/src/core/class/write-during-propagation.test.mts +75 -4
  79. package/src/core/combine/derive.mts +2 -1
  80. package/src/core/combine/zip.mts +5 -2
  81. package/src/core/create/counter.mts +2 -2
  82. package/src/core/create/from-abortable-promise.mts +33 -23
  83. package/src/core/create/from-promise.mts +28 -18
  84. package/src/core/create/from-promise.test.mts +97 -0
  85. package/src/core/create/source.mts +2 -1
  86. package/src/core/operators/filter.mts +2 -3
  87. package/src/core/operators/flat-map-initial-value.test.mts +269 -0
  88. package/src/core/operators/flat-map-sync-inner.test.mts +4 -2
  89. package/src/core/operators/inner-ownership.test.mts +145 -2
  90. package/src/core/operators/merge-map.mts +56 -26
  91. package/src/core/operators/skip-while.mts +12 -8
  92. package/src/core/operators/skip-while.test.mts +59 -0
  93. package/src/core/operators/switch-map.mts +21 -10
  94. package/src/core/operators/take-while.mts +15 -17
  95. package/src/core/operators/take-while.test.mts +51 -0
  96. package/src/core/operators/throttle.mts +4 -3
  97. package/src/core/operators/with-buffered-from.mts +16 -3
  98. package/src/core/operators/with-buffered-from.test.mts +27 -0
  99. package/src/core/predefined/operators/attach-index.mts +2 -3
  100. package/src/core/predefined/operators/skip.mts +2 -2
  101. package/src/core/utils/index.mts +1 -0
  102. package/src/core/utils/rethrow-out-of-promise.mts +16 -0
@@ -1 +1 @@
1
- {"version":3,"file":"filter.mjs","sourceRoot":"","sources":["../../../src/core/operators/filter.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.mjs","sourceRoot":"","sources":["../../../src/core/operators/filter.mts"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@ import type { DropInitialValueOperator, Observable } from '../types/index.mjs';
3
3
  * Projects each source value to an observable and merges all inner observables.
4
4
  * Unlike `switchMap`, does not cancel previous inner observables.
5
5
  *
6
+ * A value the source already holds when `mergeMap` is created is projected at
7
+ * once, as with `switchMap`. A completed source is not projected.
8
+ *
6
9
  * Each projection runs in a scope of its own (see `createScope`): what it
7
- * creates is disposed when `mergeMap` completes. An observable it only returns
8
- * — one created outside the projection and shared with others — is unsubscribed
10
+ * creates is disposed when the observable it returned completes, or when
11
+ * `mergeMap` completes, whichever comes first. An observable it only returns —
12
+ * one created outside the projection and shared with others — is unsubscribed
9
13
  * and left running.
10
14
  *
11
15
  * @template A - The type of values from the source
@@ -1 +1 @@
1
- {"version":3,"file":"merge-map.d.mts","sourceRoot":"","sources":["../../../src/core/operators/merge-map.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,wBAAwB,EAExB,UAAU,EAIX,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,eAAO,MAAM,QAAQ,GAClB,CAAC,EAAE,CAAC,mBACc,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAC1C,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAEgC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,OAAO,iBAAW,CAAC"}
1
+ {"version":3,"file":"merge-map.d.mts","sourceRoot":"","sources":["../../../src/core/operators/merge-map.mts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,wBAAwB,EAExB,UAAU,EAIX,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,eAAO,MAAM,QAAQ,GAClB,CAAC,EAAE,CAAC,mBACc,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAC1C,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAEgC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,OAAO,iBAAW,CAAC"}
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- import { Arr, Optional } from 'ts-data-forge';
8
+ import { Optional } from 'ts-data-forge';
9
9
  import { AsyncChildObservableClass } from '../class/index.mjs';
10
10
  import { createScope, getCurrentScope } from '../scope/index.mjs';
11
11
 
@@ -100,6 +100,10 @@ import { createScope, getCurrentScope } from '../scope/index.mjs';
100
100
 
101
101
 
102
102
 
103
+
104
+
105
+
106
+
103
107
 
104
108
 
105
109
 
@@ -115,8 +119,12 @@ class MergeMapObservableClass extends AsyncChildObservableClass {
115
119
  #mapToObservable;
116
120
 
117
121
  #ownerScope;
118
- #mut_innerScopes;
119
- #mut_subscriptions;
122
+
123
+
124
+
125
+
126
+
127
+ #mut_liveInners;
120
128
  constructor(parentObservable, mapToObservable) {
121
129
  super({
122
130
  parents: [parentObservable],
@@ -124,9 +132,39 @@ class MergeMapObservableClass extends AsyncChildObservableClass {
124
132
  });
125
133
  this.#mapToObservable = mapToObservable;
126
134
  this.#ownerScope = getCurrentScope();
127
- this.#mut_innerScopes = [];
128
- this.#mut_subscriptions = [];
129
- this.attach();
135
+ this.#mut_liveInners = new Map();
136
+ this.attachProjectingHeldValue(parentObservable, (value, updateToken) => {
137
+ this.#project(value, updateToken);
138
+ });
139
+ }
140
+
141
+
142
+
143
+
144
+ #releaseInner(innerScope) {
145
+ this.#mut_liveInners.get(innerScope)?.unsubscribe();
146
+ this.#mut_liveInners.delete(innerScope);
147
+ innerScope.dispose();
148
+ }
149
+
150
+ #project(value, updateToken) {
151
+ const innerScope = createScope(this.#ownerScope);
152
+
153
+
154
+
155
+ this.#mut_liveInners.set(innerScope, undefined);
156
+ const observable = innerScope.run(() => this.#mapToObservable(value));
157
+ const subscription = this.subscribeInner(observable, updateToken, () => {
158
+ this.#releaseInner(innerScope);
159
+ });
160
+ if (this.#mut_liveInners.has(innerScope)) {
161
+ this.#mut_liveInners.set(innerScope, subscription);
162
+ }
163
+ else {
164
+
165
+
166
+ subscription.unsubscribe();
167
+ }
130
168
  }
131
169
  tryUpdate(updateToken) {
132
170
  const par = this.parents[0];
@@ -134,19 +172,12 @@ class MergeMapObservableClass extends AsyncChildObservableClass {
134
172
  if (par.updateToken !== updateToken || Optional.isNone(sn)) {
135
173
  return;
136
174
  }
137
- const innerScope = createScope(this.#ownerScope);
138
- this.#mut_innerScopes = Arr.toPushed(this.#mut_innerScopes, innerScope);
139
- const observable = innerScope.run(() => this.#mapToObservable(sn.value));
140
- const subscription = this.subscribeInner(observable, updateToken);
141
- this.#mut_subscriptions = Arr.toPushed(this.#mut_subscriptions, subscription);
175
+ this.#project(sn.value, updateToken);
142
176
  }
143
177
 
144
178
  teardown() {
145
- for (const s of this.#mut_subscriptions) {
146
- s.unsubscribe();
147
- }
148
- for (const scope of this.#mut_innerScopes) {
149
- scope.dispose();
179
+ for (const innerScope of this.#mut_liveInners.keys()) {
180
+ this.#releaseInner(innerScope);
150
181
  }
151
182
  }
152
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"merge-map.mjs","sourceRoot":"","sources":["../../../src/core/operators/merge-map.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,MAAM,CAAC,MAAM,QAAQ,GACnB,CACE,eAA2C,EACX,EAAE,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC,MAAM,uBACJ,SAAQ,yBAA0C;IAGzC,gBAAgB,CAA6B;IAEtD,sCAAsC;IAC7B,WAAW,CAAoB;IAExC,gBAAgB,CAAmB;IACnC,kBAAkB,CAA0B;IAE5C,YACE,gBAA+B,EAC/B,eAA2C;QAE3C,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,QAAQ,CAAC,IAAI;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;QAErC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAElE,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,QAAQ,CACpC,IAAI,CAAC,kBAAkB,EACvB,YAAY,CACb,CAAC;IACJ,CAAC;IAED,yEAAyE;IACtD,QAAQ;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1C,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"merge-map.mjs","sourceRoot":"","sources":["../../../src/core/operators/merge-map.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,MAAM,CAAC,MAAM,QAAQ,GACnB,CACE,eAA2C,EACX,EAAE,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC,MAAM,uBACJ,SAAQ,yBAA0C;IAGzC,gBAAgB,CAA6B;IAEtD,sCAAsC;IAC7B,WAAW,CAAoB;IAExC;;;;OAIG;IACM,eAAe,CAA8C;IAEtE,YACE,gBAA+B,EAC/B,eAA2C;QAE3C,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,QAAQ,CAAC,IAAI;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAC;QAElE,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,UAAiB;QAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;QAEpD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAExC,UAAU,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,4DAA4D;IAC5D,QAAQ,CAAC,KAAQ,EAAE,WAAwB;QACzC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,4EAA4E;QAC5E,2EAA2E;QAC3E,uBAAuB;QACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;YACrE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,kCAAkC;YAClC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,yEAAyE;IACtD,QAAQ;QACzB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { SafeUint } from 'ts-data-forge';
1
+ import { type SafeUint } from 'ts-data-forge';
2
2
  import type { DropInitialValueOperator } from '../types/index.mjs';
3
3
  /**
4
4
  * Skips values from the source observable while the predicate returns true.
@@ -1 +1 @@
1
- {"version":3,"file":"skip-while.d.mts","sourceRoot":"","sources":["../../../src/core/operators/skip-while.mts"],"names":[],"mappings":"AAOA,OAAO,EAAY,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAErE,OAAO,KAAK,EACV,wBAAwB,EAIzB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,aACW,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,OAAO,KACrD,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAE2B,CAAC"}
1
+ {"version":3,"file":"skip-while.d.mts","sourceRoot":"","sources":["../../../src/core/operators/skip-while.mts"],"names":[],"mappings":"AAOA,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,KAAK,EACV,wBAAwB,EAIzB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,aACW,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,OAAO,KACrD,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAE2B,CAAC"}
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- import { Optional, SafeUint, asSafeUint, pipe } from 'ts-data-forge';
8
+ import { Optional, asSafeUint, pipe } from 'ts-data-forge';
9
9
  import { SyncChildObservableClass } from '../class/index.mjs';
10
10
 
11
11
 
@@ -72,12 +72,15 @@ class SkipWhileObservableClass extends SyncChildObservableClass {
72
72
  #mut_index;
73
73
  #mut_isSkipping;
74
74
  constructor(parentObservable, predicate) {
75
+ const initialValue = pipe(parentObservable.getSnapshot()).map((sn) => Optional.isNone(sn) || predicate(sn.value, -1) ? Optional.none : sn).value;
75
76
  super({
76
77
  parents: [parentObservable],
77
- initialValue: pipe(parentObservable.getSnapshot()).map((sn) => Optional.isNone(sn) || predicate(sn.value, -1) ? Optional.none : sn).value,
78
+ initialValue,
78
79
  });
79
80
  this.#mut_index = -1;
80
- this.#mut_isSkipping = true;
81
+
82
+
83
+ this.#mut_isSkipping = Optional.isNone(initialValue);
81
84
  this.#predicate = predicate;
82
85
  this.attach();
83
86
  }
@@ -87,9 +90,9 @@ class SkipWhileObservableClass extends SyncChildObservableClass {
87
90
  if (par.updateToken !== updateToken || Optional.isNone(sn)) {
88
91
  return;
89
92
  }
90
- this.#mut_index =
91
- this.#mut_index === -1 ? asSafeUint(0) : SafeUint.add(1, this.#mut_index);
92
- if (!this.#predicate(sn.value, this.#mut_index)) {
93
+ this.#mut_index = asSafeUint(this.#mut_index + 1);
94
+
95
+ if (this.#mut_isSkipping && !this.#predicate(sn.value, this.#mut_index)) {
93
96
  this.#mut_isSkipping = false;
94
97
  }
95
98
  if (!this.#mut_isSkipping) {
@@ -1 +1 @@
1
- {"version":3,"file":"skip-while.mjs","sourceRoot":"","sources":["../../../src/core/operators/skip-while.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,CACE,SAAsD,EACtB,EAAE,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,IAAI,wBAAwB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAE9D,oBAAoB;AAEpB,MAAM,wBACJ,SAAQ,wBAAyC;IAGxC,UAAU,CAA8C;IACjE,UAAU,CAAgB;IAC1B,eAAe,CAAU;IAEzB,YACE,gBAA+B,EAC/B,SAAsD;QAEtD,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACpE,CAAC,KAAK;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"skip-while.mjs","sourceRoot":"","sources":["../../../src/core/operators/skip-while.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAiB,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,CACE,SAAsD,EACtB,EAAE,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,IAAI,wBAAwB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAE9D,oBAAoB;AAEpB,MAAM,wBACJ,SAAQ,wBAAyC;IAGxC,UAAU,CAA8C;IACjE,UAAU,CAAgB;IAC1B,eAAe,CAAU;IAEzB,YACE,gBAA+B,EAC/B,SAAsD;QAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACpE,CAAC,KAAK,CAAC;QAER,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAErB,0EAA0E;QAC1E,mBAAmB;QACnB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAElD,6DAA6D;QAC7D,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF"}
@@ -3,6 +3,10 @@ import type { DropInitialValueOperator, Observable } from '../types/index.mjs';
3
3
  * Projects each source value to an observable, subscribes to it, and emits its values.
4
4
  * When a new value arrives from the source, the previous inner observable is unsubscribed.
5
5
  *
6
+ * A value the source already holds when `switchMap` is created (a state, an
7
+ * observable with an initial value) is projected at once, as `map` and `filter`
8
+ * start from it. A completed source is not projected.
9
+ *
6
10
  * The projection runs in a scope of its own (see `createScope`): what it
7
11
  * creates is disposed when the next value switches away from it and when
8
12
  * `switchMap` completes. An observable it only returns — one created outside
@@ -1 +1 @@
1
- {"version":3,"file":"switch-map.d.mts","sourceRoot":"","sources":["../../../src/core/operators/switch-map.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EAKX,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,EAAE,CAAC,mBACc,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAC1C,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAEiC,CAAC"}
1
+ {"version":3,"file":"switch-map.d.mts","sourceRoot":"","sources":["../../../src/core/operators/switch-map.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EAKX,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,EAAE,CAAC,mBACc,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAC1C,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAEiC,CAAC"}
@@ -98,6 +98,10 @@ import { createScope, getCurrentScope } from '../scope/index.mjs';
98
98
 
99
99
 
100
100
 
101
+
102
+
103
+
104
+
101
105
 
102
106
 
103
107
 
@@ -123,24 +127,30 @@ class SwitchMapObservableClass extends AsyncChildObservableClass {
123
127
  this.#ownerScope = getCurrentScope();
124
128
  this.#mut_innerScope = undefined;
125
129
  this.#mut_subscription = undefined;
126
- this.attach();
130
+ this.attachProjectingHeldValue(parentObservable, (value, updateToken) => {
131
+ this.#project(value, updateToken);
132
+ });
127
133
  }
128
134
 
129
135
  #releaseInner() {
130
136
  this.#mut_subscription?.unsubscribe();
131
137
  this.#mut_innerScope?.dispose();
132
138
  }
139
+
140
+ #project(value, updateToken) {
141
+ this.#releaseInner();
142
+ const innerScope = createScope(this.#ownerScope);
143
+ this.#mut_innerScope = innerScope;
144
+ const observable = innerScope.run(() => this.#mapToObservable(value));
145
+ this.#mut_subscription = this.subscribeInner(observable, updateToken);
146
+ }
133
147
  tryUpdate(updateToken) {
134
148
  const par = this.parents[0];
135
149
  const sn = par.getSnapshot();
136
150
  if (par.updateToken !== updateToken || Optional.isNone(sn)) {
137
151
  return;
138
152
  }
139
- this.#releaseInner();
140
- const innerScope = createScope(this.#ownerScope);
141
- this.#mut_innerScope = innerScope;
142
- const observable = innerScope.run(() => this.#mapToObservable(sn.value));
143
- this.#mut_subscription = this.subscribeInner(observable, updateToken);
153
+ this.#project(sn.value, updateToken);
144
154
  }
145
155
  teardown() {
146
156
  this.#releaseInner();
@@ -1 +1 @@
1
- {"version":3,"file":"switch-map.mjs","sourceRoot":"","sources":["../../../src/core/operators/switch-map.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,CACE,eAA2C,EACX,EAAE,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,IAAI,wBAAwB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAEpE,MAAM,wBACJ,SAAQ,yBAA0C;IAGzC,gBAAgB,CAA6B;IAEtD;;;;OAIG;IACM,WAAW,CAAoB;IAExC,eAAe,CAAoB;IACnC,iBAAiB,CAA2B;IAE5C,YACE,gBAA+B,EAC/B,eAA2C;QAE3C,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,QAAQ,CAAC,IAAI;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,aAAa;QACX,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;QAEtC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAElC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAEkB,QAAQ;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"switch-map.mjs","sourceRoot":"","sources":["../../../src/core/operators/switch-map.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,CACE,eAA2C,EACX,EAAE,CACpC,CAAC,gBAAgB,EAAE,EAAE,CACnB,IAAI,wBAAwB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAEpE,MAAM,wBACJ,SAAQ,yBAA0C;IAGzC,gBAAgB,CAA6B;IAEtD;;;;OAIG;IACM,WAAW,CAAoB;IAExC,eAAe,CAAoB;IACnC,iBAAiB,CAA2B;IAE5C,YACE,gBAA+B,EAC/B,eAA2C;QAE3C,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,QAAQ,CAAC,IAAI;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,aAAa;QACX,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;QAEtC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,mDAAmD;IACnD,QAAQ,CAAC,KAAQ,EAAE,WAAwB;QACzC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAElC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvC,CAAC;IAEkB,QAAQ;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { SafeUint } from 'ts-data-forge';
1
+ import { type SafeUint } from 'ts-data-forge';
2
2
  import type { DropInitialValueOperator } from '../types/index.mjs';
3
3
  /**
4
4
  * Emits values from the source observable while the predicate returns true.
@@ -50,7 +50,7 @@ import type { DropInitialValueOperator } from '../types/index.mjs';
50
50
  *
51
51
  * assert.deepStrictEqual(valueHistory, [1, 2, 3, 4]);
52
52
  *
53
- * num$.next(1); // logs: 1
53
+ * num$.next(1); // nothing logged (already completed)
54
54
  *
55
55
  * assert.deepStrictEqual(valueHistory, [1, 2, 3, 4]);
56
56
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"take-while.d.mts","sourceRoot":"","sources":["../../../src/core/operators/take-while.mts"],"names":[],"mappings":"AAOA,OAAO,EAEL,QAAQ,EAIT,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EACV,wBAAwB,EAKzB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,aACW,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,OAAO,KACrD,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAE2B,CAAC"}
1
+ {"version":3,"file":"take-while.d.mts","sourceRoot":"","sources":["../../../src/core/operators/take-while.mts"],"names":[],"mappings":"AAOA,OAAO,EAAoC,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGhF,OAAO,KAAK,EACV,wBAAwB,EAKzB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,aACW,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,OAAO,KACrD,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAE2B,CAAC"}
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- import { Optional, SafeUint, asSafeUint, pipe, } from 'ts-data-forge';
8
+ import { Optional, asSafeUint } from 'ts-data-forge';
9
9
  import { SyncChildObservableClass } from '../class/index.mjs';
10
10
 
11
11
 
@@ -70,16 +70,19 @@ class TakeWhileObservableClass extends SyncChildObservableClass {
70
70
  #predicate;
71
71
  #mut_index;
72
72
  constructor(parentObservable, predicate) {
73
+ const parentSnapshot = parentObservable.getSnapshot();
74
+ const isTaking = Optional.isNone(parentSnapshot) || predicate(parentSnapshot.value, -1);
73
75
  super({
74
76
  parents: [parentObservable],
75
- initialValue: pipe(parentObservable.getSnapshot()).map((par) => Optional.isNone(par)
76
- ? Optional.none
77
- : predicate(par.value, -1)
78
- ? par
79
- : Optional.none).value,
77
+ initialValue: isTaking ? parentSnapshot : Optional.none,
80
78
  });
81
79
  this.#mut_index = -1;
82
80
  this.#predicate = predicate;
81
+
82
+
83
+ if (!isTaking) {
84
+ this.complete();
85
+ }
83
86
  this.attach();
84
87
  }
85
88
  tryUpdate(updateToken) {
@@ -88,8 +91,7 @@ class TakeWhileObservableClass extends SyncChildObservableClass {
88
91
  if (par.updateToken !== updateToken || Optional.isNone(sn)) {
89
92
  return;
90
93
  }
91
- this.#mut_index =
92
- this.#mut_index === -1 ? asSafeUint(0) : SafeUint.add(1, this.#mut_index);
94
+ this.#mut_index = asSafeUint(this.#mut_index + 1);
93
95
  if (this.#predicate(sn.value, this.#mut_index)) {
94
96
  this.setNext(sn.value, updateToken);
95
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"take-while.mjs","sourceRoot":"","sources":["../../../src/core/operators/take-while.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"take-while.mjs","sourceRoot":"","sources":["../../../src/core/operators/take-while.mts"],"names":[],"mappings":"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"}
@@ -110,12 +110,13 @@ class ThrottleObservableClass extends SyncChildObservableClass {
110
110
  Optional.isNone(sn)) {
111
111
  return;
112
112
  }
113
- this.setNext(sn.value, updateToken);
114
- this.#mut_isSkipping = true;
115
113
 
114
+
115
+ this.#mut_isSkipping = true;
116
116
  this.#mut_timerId = setTimeout(() => {
117
117
  this.#mut_isSkipping = false;
118
118
  }, this.#milliSeconds);
119
+ this.setNext(sn.value, updateToken);
119
120
  }
120
121
  teardown() {
121
122
  if (this.#mut_timerId !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.mjs","sourceRoot":"","sources":["../../../src/core/operators/throttle.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAS9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,YAAoB,EACY,EAAE;AAClC,4DAA4D;AAC5D,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpB,IAAI,uBAAuB,CACzB,gBAAgB,EAChB,YAAY,CACb,CAAmC,CAAC;AAEzC,MAAM,uBACJ,SAAQ,wBAAyC;IAGxC,aAAa,CAAS;IAC/B,YAAY,CAAsB;IAClC,eAAe,CAAU;IAEzB,YAAY,gBAA+B,EAAE,YAAoB;QAC/D,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,gBAAgB,CAAC,WAAW,EAAE;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAE9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAElC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IACE,IAAI,CAAC,eAAe;YACpB,GAAG,CAAC,WAAW,KAAK,WAAW;YAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EACnB,CAAC;YACD,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,YAAY;QACZ,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAEkB,QAAQ;QACzB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"throttle.mjs","sourceRoot":"","sources":["../../../src/core/operators/throttle.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAS9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,YAAoB,EACY,EAAE;AAClC,4DAA4D;AAC5D,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpB,IAAI,uBAAuB,CACzB,gBAAgB,EAChB,YAAY,CACb,CAAmC,CAAC;AAEzC,MAAM,uBACJ,SAAQ,wBAAyC;IAGxC,aAAa,CAAS;IAC/B,YAAY,CAAsB;IAClC,eAAe,CAAU;IAEzB,YAAY,gBAA+B,EAAE,YAAoB;QAC/D,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,gBAAgB,CAAC,WAAW,EAAE;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAE9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAElC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IACE,IAAI,CAAC,eAAe;YACpB,GAAG,CAAC,WAAW,KAAK,WAAW;YAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EACnB,CAAC;YACD,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,yEAAyE;QACzE,mDAAmD;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC;IAEkB,QAAQ;QACzB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"with-buffered-from.d.mts","sourceRoot":"","sources":["../../../src/core/operators/with-buffered-from.mts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EAIX,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,CAAC,cACvB,UAAU,CAAC,CAAC,CAAC,KACxB,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAMQ,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,YAAY,yBAAmB,CAAC"}
1
+ {"version":3,"file":"with-buffered-from.d.mts","sourceRoot":"","sources":["../../../src/core/operators/with-buffered-from.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EAIX,MAAM,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,CAAC,cACvB,UAAU,CAAC,CAAC,CAAC,KACxB,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAMQ,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,YAAY,yBAAmB,CAAC"}
@@ -5,7 +5,8 @@
5
5
 
6
6
 
7
7
 
8
- import { Arr, Optional, pipe } from 'ts-data-forge';
8
+ import { Optional, pipe } from 'ts-data-forge';
9
+ import * as Arr from 'ts-data-forge/array';
9
10
  import { SyncChildObservableClass } from '../class/index.mjs';
10
11
  import { maxDepth } from '../utils/index.mjs';
11
12
 
@@ -73,11 +74,12 @@ class WithBufferedFromObservableClass extends SyncChildObservableClass {
73
74
  #subscription;
74
75
  #mut_bufferedValues;
75
76
  constructor(parentObservable, observable) {
77
+ const parentSnapshot = parentObservable.getSnapshot();
76
78
  super({
77
79
  parents: [parentObservable],
78
80
  depth: 1 + maxDepth([parentObservable, observable]),
79
81
  initialValue: pipe({
80
- par: parentObservable.getSnapshot(),
82
+ par: parentSnapshot,
81
83
  me: observable.getSnapshot(),
82
84
  }).map(({ par, me }) => Optional.isNone(par)
83
85
  ? Optional.none
@@ -90,6 +92,11 @@ class WithBufferedFromObservableClass extends SyncChildObservableClass {
90
92
  this.#subscription = observable.subscribe((value) => {
91
93
  this.#mut_bufferedValues = Arr.toPushed(this.#mut_bufferedValues, value);
92
94
  });
95
+
96
+
97
+ if (Optional.isSome(parentSnapshot)) {
98
+ this.#mut_bufferedValues = [];
99
+ }
93
100
  this.attach();
94
101
  }
95
102
  tryUpdate(updateToken) {
@@ -98,8 +105,11 @@ class WithBufferedFromObservableClass extends SyncChildObservableClass {
98
105
  if (par.updateToken !== updateToken || Optional.isNone(sn)) {
99
106
  return;
100
107
  }
101
- this.setNext([sn.value, this.#mut_bufferedValues], updateToken);
108
+ const buffered = this.#mut_bufferedValues;
109
+
110
+
102
111
  this.#mut_bufferedValues = [];
112
+ this.setNext([sn.value, buffered], updateToken);
103
113
  }
104
114
  teardown() {
105
115
  this.#subscription.unsubscribe();
@@ -1 +1 @@
1
- {"version":3,"file":"with-buffered-from.mjs","sourceRoot":"","sources":["../../../src/core/operators/with-buffered-from.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAyB,EACgC,EAAE;AAC3D,4DAA4D;AAC5D,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpB,IAAI,+BAA+B,CACjC,gBAAgB,EAChB,UAAU,CACX,CAA4D,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE7C,MAAM,+BACJ,SAAQ,wBAAkE;IAGjE,aAAa,CAAe;IACrC,mBAAmB,CAAe;IAElC,YAAY,gBAA+B,EAAE,UAAyB;QACpE,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YACnD,YAAY,EAAE,IAAI,CAAC;gBACjB,GAAG,EAAE,gBAAgB,CAAC,WAAW,EAAE;gBACnC,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE;aAC7B,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;gBAClB,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACf,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,CAAC,KAAK;oBACT,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;iBAC7B,CAAC,CAChB,CAAC,KAAK;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClD,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC,CAAC;QAEhE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAEkB,QAAQ;QACzB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAEjC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"with-buffered-from.mjs","sourceRoot":"","sources":["../../../src/core/operators/with-buffered-from.mts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { SafeUint } from 'ts-data-forge';
1
+ import { type SafeUint } from 'ts-data-forge';
2
2
  import type { KeepInitialValueOperator } from '../../types/index.mjs';
3
3
  /**
4
4
  * Attaches a sequential index to each emitted value, producing `[index, value]` tuples.
@@ -1 +1 @@
1
- {"version":3,"file":"attach-index.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/attach-index.mts"],"names":[],"mappings":"AAOA,OAAO,EAAY,QAAQ,EAAc,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,OAAM,wBAAwB,CACvD,CAAC,EACD,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAO1B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,kBAAY,CAAC"}
1
+ {"version":3,"file":"attach-index.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/attach-index.mts"],"names":[],"mappings":"AAOA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,OAAM,wBAAwB,CACvD,CAAC,EACD,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAO1B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,kBAAY,CAAC"}
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- import { Optional, SafeUint, asSafeUint } from 'ts-data-forge';
8
+ import { Optional, asSafeUint } from 'ts-data-forge';
9
9
  import { SyncChildObservableClass } from '../../class/index.mjs';
10
10
 
11
11
 
@@ -83,8 +83,7 @@ class WithIndexObservableClass extends SyncChildObservableClass {
83
83
  if (par.updateToken !== updateToken || Optional.isNone(sn)) {
84
84
  return;
85
85
  }
86
- this.#mut_index =
87
- this.#mut_index === -1 ? asSafeUint(0) : SafeUint.add(1, this.#mut_index);
86
+ this.#mut_index = asSafeUint(this.#mut_index + 1);
88
87
  this.setNext([this.#mut_index, sn.value], updateToken);
89
88
  }
90
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attach-index.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/attach-index.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAGvB,EAAE;AACF,4DAA4D;AAC5D,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpB,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,CAG/C,CAAC;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,oBAAoB;AAEpB,MAAM,wBAA4B,SAAQ,wBAGzC;IACC,UAAU,CAAgB;IAE1B,YAAY,gBAA+B;QACzC,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,QAAQ,CAAC,GAAG,CACxB,gBAAgB,CAAC,WAAW,EAAE,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAU,CACxB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5E,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;CACF"}
1
+ {"version":3,"file":"attach-index.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/attach-index.mts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,gFAAgF;AAChF,sCAAsC;AACtC,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAGvB,EAAE;AACF,4DAA4D;AAC5D,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACpB,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,CAG/C,CAAC;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,oBAAoB;AAEpB,MAAM,wBAA4B,SAAQ,wBAGzC;IACC,UAAU,CAAgB;IAE1B,YAAY,gBAA+B;QACzC,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,YAAY,EAAE,QAAQ,CAAC,GAAG,CACxB,gBAAgB,CAAC,WAAW,EAAE,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAU,CACxB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEQ,SAAS,CAAC,WAAwB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAE7B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,cAAc;QACxB,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"skip.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,KACjB,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CACyC,CAAC"}
1
+ {"version":3,"file":"skip.d.mts","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,KACjB,2BAA2B,KAC7B,wBAAwB,CAAC,CAAC,EAAE,CAAC,CACwC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { PositiveSafeInt } from 'ts-data-forge';
1
+ import { isPositiveSafeInt } from 'ts-data-forge';
2
2
  import { skipWhile } from '../../operators/index.mjs';
3
3
 
4
4
 
@@ -47,6 +47,6 @@ import { skipWhile } from '../../operators/index.mjs';
47
47
 
48
48
 
49
49
 
50
- export const skip = (n) => !PositiveSafeInt.is(n) ? idFn : skipWhile((_, index) => index + 1 <= n);
50
+ export const skip = (n) => !isPositiveSafeInt(n) ? idFn : skipWhile((_, index) => index + 1 <= n);
51
51
  const idFn = (value) => value;
52
52
  //# sourceMappingURL=skip.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skip.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,CAA8B,EACE,EAAE,CAClC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAE1E,MAAM,IAAI,GAAG,CAAK,KAAQ,EAAK,EAAE,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"skip.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,CAA8B,EACE,EAAE,CAClC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAEzE,MAAM,IAAI,GAAG,CAAK,KAAQ,EAAK,EAAE,CAAC,KAAK,CAAC"}
@@ -3,4 +3,5 @@ export * from './id-maker.mjs';
3
3
  export * from './max-depth.mjs';
4
4
  export * from './observable-brand.mjs';
5
5
  export * from './observable-utils.mjs';
6
+ export * from './rethrow-out-of-promise.mjs';
6
7
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/core/utils/index.mts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/core/utils/index.mts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
@@ -3,4 +3,5 @@ export * from './id-maker.mjs';
3
3
  export * from './max-depth.mjs';
4
4
  export * from './observable-brand.mjs';
5
5
  export * from './observable-utils.mjs';
6
+ export * from './rethrow-out-of-promise.mjs';
6
7
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/core/utils/index.mts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/core/utils/index.mts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Throws `error` again from a task of its own, for a `.catch` after each step
3
+ * of a promise chain that runs subscribers (`fromPromise`): after the step that
4
+ * emits and after the one that completes, so that neither exception replaces
5
+ * the other. A subscriber's exception then surfaces as an uncaught error, as
6
+ * one thrown during an update a timer started does (`debounce`, `timer`),
7
+ * rather than as a rejection or not at all.
8
+ */
9
+ export declare const rethrowOutOfPromise: (error: unknown) => void;
10
+ //# sourceMappingURL=rethrow-out-of-promise.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rethrow-out-of-promise.d.mts","sourceRoot":"","sources":["../../../src/core/utils/rethrow-out-of-promise.mts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAAW,OAAO,KAAG,IAOpD,CAAC"}
@@ -0,0 +1,17 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+ export const rethrowOutOfPromise = (error) => {
10
+ setTimeout(() => {
11
+
12
+
13
+
14
+ throw error;
15
+ }, 0);
16
+ };
17
+ //# sourceMappingURL=rethrow-out-of-promise.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rethrow-out-of-promise.mjs","sourceRoot":"","sources":["../../../src/core/utils/rethrow-out-of-promise.mts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAQ,EAAE;IAC1D,UAAU,CAAC,GAAG,EAAE;QACd,uDAAuD;QACvD,yCAAyC;QACzC,sHAAsH;QACtH,MAAM,KAAK,CAAC;IACd,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC,CAAC"}