@dereekb/rxjs 1.2.0 → 3.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 (97) hide show
  1. package/CHANGELOG.md +62 -10
  2. package/README.md +1 -1
  3. package/package.json +10 -7
  4. package/src/index.js +1 -1
  5. package/src/index.js.map +1 -1
  6. package/src/lib/filter/filter.map.d.ts +4 -3
  7. package/src/lib/filter/filter.map.js.map +1 -1
  8. package/src/lib/filter/filter.source.d.ts +4 -4
  9. package/src/lib/filter/filter.source.js.map +1 -1
  10. package/src/lib/filter/index.js +4 -4
  11. package/src/lib/filter/index.js.map +1 -1
  12. package/src/lib/index.d.ts +1 -0
  13. package/src/lib/index.js +8 -7
  14. package/src/lib/index.js.map +1 -1
  15. package/src/lib/iterator/index.d.ts +1 -0
  16. package/src/lib/iterator/index.js +7 -6
  17. package/src/lib/iterator/index.js.map +1 -1
  18. package/src/lib/iterator/iteration.accumulator.d.ts +8 -4
  19. package/src/lib/iterator/iteration.accumulator.js +18 -21
  20. package/src/lib/iterator/iteration.accumulator.js.map +1 -1
  21. package/src/lib/iterator/iteration.accumulator.rxjs.d.ts +7 -3
  22. package/src/lib/iterator/iteration.accumulator.rxjs.js +21 -10
  23. package/src/lib/iterator/iteration.accumulator.rxjs.js.map +1 -1
  24. package/src/lib/iterator/iteration.d.ts +7 -3
  25. package/src/lib/iterator/iteration.mapped.page.d.ts +3 -2
  26. package/src/lib/iterator/iteration.mapped.page.js.map +1 -1
  27. package/src/lib/iterator/iteration.next.d.ts +8 -3
  28. package/src/lib/iterator/iteration.next.js +19 -6
  29. package/src/lib/iterator/iteration.next.js.map +1 -1
  30. package/src/lib/iterator/iterator.page.d.ts +22 -6
  31. package/src/lib/iterator/iterator.page.js +17 -5
  32. package/src/lib/iterator/iterator.page.js.map +1 -1
  33. package/src/lib/loading/index.js +8 -8
  34. package/src/lib/loading/index.js.map +1 -1
  35. package/src/lib/loading/loading.context.state.value.js.map +1 -1
  36. package/src/lib/loading/loading.state.d.ts +53 -3
  37. package/src/lib/loading/loading.state.js +102 -2
  38. package/src/lib/loading/loading.state.js.map +1 -1
  39. package/src/lib/lock.d.ts +13 -7
  40. package/src/lib/lock.js +38 -14
  41. package/src/lib/lock.js.map +1 -1
  42. package/src/lib/object.js +2 -2
  43. package/src/lib/object.js.map +1 -1
  44. package/src/lib/rxjs/array.d.ts +17 -0
  45. package/src/lib/rxjs/array.js +23 -9
  46. package/src/lib/rxjs/array.js.map +1 -1
  47. package/src/lib/rxjs/boolean.d.ts +13 -1
  48. package/src/lib/rxjs/boolean.js +31 -1
  49. package/src/lib/rxjs/boolean.js.map +1 -1
  50. package/src/lib/rxjs/delta.d.ts +32 -0
  51. package/src/lib/rxjs/delta.js +51 -0
  52. package/src/lib/rxjs/delta.js.map +1 -0
  53. package/src/lib/rxjs/factory.d.ts +31 -0
  54. package/src/lib/rxjs/factory.js +21 -0
  55. package/src/lib/rxjs/factory.js.map +1 -0
  56. package/src/lib/rxjs/getter.d.ts +4 -4
  57. package/src/lib/rxjs/getter.js +3 -3
  58. package/src/lib/rxjs/getter.js.map +1 -1
  59. package/src/lib/rxjs/index.d.ts +9 -1
  60. package/src/lib/rxjs/index.js +16 -8
  61. package/src/lib/rxjs/index.js.map +1 -1
  62. package/src/lib/rxjs/lifecycle.d.ts +18 -0
  63. package/src/lib/rxjs/lifecycle.js +55 -0
  64. package/src/lib/rxjs/lifecycle.js.map +1 -0
  65. package/src/lib/rxjs/map.d.ts +10 -0
  66. package/src/lib/rxjs/map.js +17 -0
  67. package/src/lib/rxjs/map.js.map +1 -0
  68. package/src/lib/rxjs/number.d.ts +16 -1
  69. package/src/lib/rxjs/number.js +15 -3
  70. package/src/lib/rxjs/number.js.map +1 -1
  71. package/src/lib/rxjs/rxjs.async.d.ts +57 -0
  72. package/src/lib/rxjs/rxjs.async.js +69 -0
  73. package/src/lib/rxjs/rxjs.async.js.map +1 -0
  74. package/src/lib/rxjs/rxjs.d.ts +10 -2
  75. package/src/lib/rxjs/rxjs.js +17 -16
  76. package/src/lib/rxjs/rxjs.js.map +1 -1
  77. package/src/lib/rxjs/rxjs.map.d.ts +9 -0
  78. package/src/lib/rxjs/rxjs.map.js +26 -0
  79. package/src/lib/rxjs/rxjs.map.js.map +1 -0
  80. package/src/lib/rxjs/set.d.ts +4 -0
  81. package/src/lib/rxjs/set.js +14 -0
  82. package/src/lib/rxjs/set.js.map +1 -0
  83. package/src/lib/rxjs/use.d.ts +7 -0
  84. package/src/lib/rxjs/use.js +14 -0
  85. package/src/lib/rxjs/use.js.map +1 -0
  86. package/src/lib/rxjs/value.d.ts +34 -3
  87. package/src/lib/rxjs/value.js +54 -2
  88. package/src/lib/rxjs/value.js.map +1 -1
  89. package/src/lib/work/index.d.ts +2 -0
  90. package/src/lib/work/index.js +6 -0
  91. package/src/lib/work/index.js.map +1 -0
  92. package/src/lib/work/work.factory.d.ts +35 -0
  93. package/src/lib/work/work.factory.js +43 -0
  94. package/src/lib/work/work.factory.js.map +1 -0
  95. package/src/lib/work/work.instance.d.ts +60 -0
  96. package/src/lib/work/work.instance.js +129 -0
  97. package/src/lib/work/work.instance.js.map +1 -0
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanupDestroyable = exports.cleanup = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const rxjs_1 = require("rxjs");
6
+ /**
7
+ * Cleans up the instance when a new value is pushed.
8
+ *
9
+ * Can be configured to wait until the previous value's destroy promise has resolved.
10
+ *
11
+ * @param destroy
12
+ * @param wait
13
+ * @returns
14
+ */
15
+ function cleanup(destroy, wait = false) {
16
+ return (obs) => {
17
+ let currentInstance;
18
+ return obs.pipe((0, rxjs_1.scan)((acc, instance) => {
19
+ let cleanup;
20
+ if (acc.instance) {
21
+ cleanup = (0, util_1.asPromise)(destroy(acc.instance));
22
+ }
23
+ currentInstance = instance;
24
+ return {
25
+ cleanup,
26
+ instance
27
+ };
28
+ }, {}), (0, rxjs_1.switchMap)(x => {
29
+ let result;
30
+ if (x.cleanup && wait) {
31
+ const continueFn = () => (x.instance);
32
+ result = x.cleanup.then(continueFn).catch(continueFn);
33
+ }
34
+ else {
35
+ result = (0, rxjs_1.of)(x.instance);
36
+ }
37
+ return result;
38
+ }), (0, rxjs_1.finalize)(() => {
39
+ if (currentInstance) {
40
+ destroy(currentInstance);
41
+ }
42
+ }));
43
+ };
44
+ }
45
+ exports.cleanup = cleanup;
46
+ /**
47
+ * Convenience function for cleanup() on a Destroyable type.
48
+ *
49
+ * @returns
50
+ */
51
+ function cleanupDestroyable(wait) {
52
+ return cleanup((x) => x.destroy(), wait);
53
+ }
54
+ exports.cleanupDestroyable = cleanupDestroyable;
55
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/lifecycle.ts"],"names":[],"mappings":";;;AAAA,wCAA8E;AAC9E,+BAAqG;AAcrG;;;;;;;;GAQG;AACH,SAAgB,OAAO,CAAI,OAAoD,EAAE,IAAI,GAAG,KAAK;IAC3F,OAAO,CAAC,GAAkB,EAAE,EAAE;QAC5B,IAAI,eAAyB,CAAC;QAE9B,OAAO,GAAG,CAAC,IAAI,CACb,IAAA,WAAI,EAA6B,CAAC,GAA4B,EAAE,QAAW,EAAE,EAAE;YAC7E,IAAI,OAAkC,CAAC;YAEvC,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAChB,OAAO,GAAG,IAAA,gBAAS,EAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC5C;YAED,eAAe,GAAG,QAAQ,CAAC;YAE3B,OAAO;gBACL,OAAO;gBACP,QAAQ;aACT,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,EACN,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE;YACZ,IAAI,MAAkC,CAAC;YAEvC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE;gBACrB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAA;gBACtC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACvD;iBAAM;gBACL,MAAM,GAAG,IAAA,SAAE,EAAC,CAAC,CAAC,QAAS,CAAC,CAAC;aAC1B;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,EACF,IAAA,eAAQ,EAAC,GAAG,EAAE;YACZ,IAAI,eAAe,EAAE;gBACnB,OAAO,CAAC,eAAe,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAC;AACJ,CAAC;AAtCD,0BAsCC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAwB,IAAc;IACtE,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAFD,gDAEC"}
@@ -0,0 +1,10 @@
1
+ import { OperatorFunction } from 'rxjs';
2
+ import { MapKeysIntersectionObject } from "@dereekb/util";
3
+ import { ObservableOrValue } from "./getter";
4
+ /**
5
+ * OperatorFunction that pipes the input from the object with a keys observable to produce the result of mapKeysIntersectionObjectToArray.
6
+ *
7
+ * @param keysObs
8
+ * @returns
9
+ */
10
+ export declare function mapKeysIntersectionToArray<T>(keysObs: ObservableOrValue<Iterable<string>>): OperatorFunction<MapKeysIntersectionObject<T>, T[]>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapKeysIntersectionToArray = void 0;
4
+ const rxjs_1 = require("@dereekb/rxjs");
5
+ const rxjs_2 = require("rxjs");
6
+ const util_1 = require("@dereekb/util");
7
+ /**
8
+ * OperatorFunction that pipes the input from the object with a keys observable to produce the result of mapKeysIntersectionObjectToArray.
9
+ *
10
+ * @param keysObs
11
+ * @returns
12
+ */
13
+ function mapKeysIntersectionToArray(keysObs) {
14
+ return (0, rxjs_2.switchMap)((object) => (0, rxjs_1.asObservable)(keysObs).pipe((0, rxjs_2.map)(keys => (0, util_1.mapKeysIntersectionObjectToArray)(object, keys)), (0, rxjs_2.shareReplay)(1)));
15
+ }
16
+ exports.mapKeysIntersectionToArray = mapKeysIntersectionToArray;
17
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/map.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAC7C,+BAAqE;AACrE,wCAA4F;AAG5F;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAI,OAA4C;IACxF,OAAO,IAAA,gBAAS,EAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC,IAAI,CACrD,IAAA,UAAG,EAAC,IAAI,CAAC,EAAE,CAAC,IAAA,uCAAgC,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAC3D,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC,CAAC;AACL,CAAC;AALD,gEAKC"}
@@ -1,5 +1,20 @@
1
+ import { IncrementingNumberFactoryConfig } from '@dereekb/util';
2
+ import { Observable } from 'rxjs';
1
3
  import { OperatorFunction } from 'rxjs';
4
+ import { FactoryTimerConfig } from './factory';
2
5
  /**
3
6
  * Similar to count(), but counts emissions as they occur using scan.
4
7
  */
5
- export declare function scanCount(): OperatorFunction<any, number>;
8
+ export declare function scanCount(startAt?: number): OperatorFunction<any, number>;
9
+ /**
10
+ * incrementingNumberTimer() configuration
11
+ */
12
+ export interface IncrementingTimerConfig extends Omit<FactoryTimerConfig<number>, 'factory'>, IncrementingNumberFactoryConfig {
13
+ }
14
+ /**
15
+ * Creates a factoryTimer for incrementing numbers.
16
+ *
17
+ * @param config
18
+ * @returns
19
+ */
20
+ export declare function incrementingNumberTimer(config?: IncrementingTimerConfig): Observable<number>;
@@ -1,12 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scanCount = void 0;
3
+ exports.incrementingNumberTimer = exports.scanCount = void 0;
4
+ const util_1 = require("@dereekb/util");
4
5
  const operators_1 = require("rxjs/operators");
6
+ const factory_1 = require("./factory");
5
7
  /**
6
8
  * Similar to count(), but counts emissions as they occur using scan.
7
9
  */
8
- function scanCount() {
9
- return (0, operators_1.scan)((count, _) => count + 1, 0);
10
+ function scanCount(startAt = 0) {
11
+ return (0, operators_1.scan)((count, _) => count + 1, startAt);
10
12
  }
11
13
  exports.scanCount = scanCount;
14
+ /**
15
+ * Creates a factoryTimer for incrementing numbers.
16
+ *
17
+ * @param config
18
+ * @returns
19
+ */
20
+ function incrementingNumberTimer(config = {}) {
21
+ return (0, factory_1.factoryTimer)(Object.assign(Object.assign({}, config), { factory: (0, util_1.incrementingNumberFactory)(config) }));
22
+ }
23
+ exports.incrementingNumberTimer = incrementingNumberTimer;
12
24
  //# sourceMappingURL=number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/number.ts"],"names":[],"mappings":";;;AACA,8CAAsC;AAEtC;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,IAAA,gBAAI,EAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/number.ts"],"names":[],"mappings":";;;AAAA,wCAA2F;AAG3F,8CAAsC;AACtC,uCAA6D;AAE7D;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAO,GAAG,CAAC;IACnC,OAAO,IAAA,gBAAI,EAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAFD,8BAEC;AAQD;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,SAAkC,EAAE;IAC1E,OAAO,IAAA,sBAAY,kCACd,MAAM,KACT,OAAO,EAAE,IAAA,gCAAyB,EAAC,MAAM,CAAC,IAC1C,CAAC;AACL,CAAC;AALD,0DAKC"}
@@ -0,0 +1,57 @@
1
+ import { CachedFactoryWithInput, Destroyable } from '@dereekb/util';
2
+ import { Observable, Subject } from 'rxjs';
3
+ /**
4
+ * Default amount of throttle in milliseconds used by AsyncPusher.
5
+ */
6
+ export declare const DEFAULT_ASYNC_PUSHER_THROTTLE = 200;
7
+ /**
8
+ * Special function that when called pushes a value onto an internal subject, and returns an observable.
9
+ *
10
+ * This is useful for cases where a function may get called and subscribes to an observable each time, but we need to throttle that.
11
+ */
12
+ export declare type AsyncPusher<T> = ((value: T) => Observable<T>) & Destroyable & {
13
+ /**
14
+ * Configures the pusher to watch this input observable for complete.
15
+ *
16
+ * @param obs
17
+ */
18
+ watchForCleanup(obs: Observable<any>): void;
19
+ /**
20
+ * The internal subject.
21
+ */
22
+ readonly _subject: Subject<T>;
23
+ };
24
+ export interface AsyncPusherConfig<T> {
25
+ /**
26
+ * Time to throttle each emission.
27
+ */
28
+ throttle?: number;
29
+ /**
30
+ * Whether or not to filter on distinct values.
31
+ */
32
+ distinct?: boolean;
33
+ /**
34
+ * Configuration function to build onto the internal observable.
35
+ */
36
+ pipe?: (obs: Observable<T>) => Observable<T>;
37
+ /**
38
+ * (Optional) Observable to watch for cleaunup.
39
+ */
40
+ cleanupObs?: Observable<any>;
41
+ }
42
+ /**
43
+ * Creates an AsyncPusher.
44
+ *
45
+ * @param config
46
+ * @returns
47
+ */
48
+ export declare function asyncPusher<T>(config?: AsyncPusherConfig<T>): AsyncPusher<T>;
49
+ /**
50
+ * Creates a cache that returns an AsyncPusher.
51
+ *
52
+ * The CachedFactoryWithInput resunt can optionally be pass an observable to watch for the cleanup process.
53
+ *
54
+ * @param config
55
+ * @returns
56
+ */
57
+ export declare function asyncPusherCache<T>(config?: AsyncPusherConfig<T>): CachedFactoryWithInput<AsyncPusher<T>, Observable<any>>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.asyncPusherCache = exports.asyncPusher = exports.DEFAULT_ASYNC_PUSHER_THROTTLE = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const rxjs_1 = require("rxjs");
6
+ const subscription_1 = require("../subscription");
7
+ const value_1 = require("./value");
8
+ /**
9
+ * Default amount of throttle in milliseconds used by AsyncPusher.
10
+ */
11
+ exports.DEFAULT_ASYNC_PUSHER_THROTTLE = 200;
12
+ /**
13
+ * Creates an AsyncPusher.
14
+ *
15
+ * @param config
16
+ * @returns
17
+ */
18
+ function asyncPusher(config = {}) {
19
+ const { throttle = exports.DEFAULT_ASYNC_PUSHER_THROTTLE, cleanupObs, distinct = true, pipe: pipeObs } = config;
20
+ const _subject = new rxjs_1.BehaviorSubject(undefined);
21
+ const _sub = new subscription_1.SubscriptionObject();
22
+ let obs = _subject.pipe((0, value_1.skipFirstMaybe)(), (0, rxjs_1.throttleTime)(throttle, undefined, { leading: false, trailing: true }));
23
+ if (distinct) {
24
+ obs = obs.pipe((0, rxjs_1.distinctUntilChanged)());
25
+ }
26
+ if (pipeObs) {
27
+ obs = pipeObs(obs);
28
+ }
29
+ const pusher = ((value) => {
30
+ _subject.next(value);
31
+ return obs;
32
+ });
33
+ pusher.destroy = () => {
34
+ _subject.complete();
35
+ _sub.destroy();
36
+ };
37
+ pusher.watchForCleanup = (obs) => {
38
+ _sub.subscription = obs.subscribe({
39
+ complete: () => {
40
+ pusher.destroy();
41
+ }
42
+ });
43
+ };
44
+ pusher._subject = _subject;
45
+ if (cleanupObs) {
46
+ pusher.watchForCleanup(cleanupObs);
47
+ }
48
+ return pusher;
49
+ }
50
+ exports.asyncPusher = asyncPusher;
51
+ /**
52
+ * Creates a cache that returns an AsyncPusher.
53
+ *
54
+ * The CachedFactoryWithInput resunt can optionally be pass an observable to watch for the cleanup process.
55
+ *
56
+ * @param config
57
+ * @returns
58
+ */
59
+ function asyncPusherCache(config) {
60
+ return (0, util_1.cachedGetter)((cleanupObs) => {
61
+ const pusher = asyncPusher(config);
62
+ if (cleanupObs) {
63
+ pusher.watchForCleanup(cleanupObs);
64
+ }
65
+ return pusher;
66
+ });
67
+ }
68
+ exports.asyncPusherCache = asyncPusherCache;
69
+ //# sourceMappingURL=rxjs.async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs.async.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/rxjs.async.ts"],"names":[],"mappings":";;;AAAA,wCAAkF;AAClF,+BAAgG;AAChG,kDAAqD;AACrD,mCAAyC;AAEzC;;GAEG;AACU,QAAA,6BAA6B,GAAG,GAAG,CAAC;AA0CjD;;;;;GAKG;AACH,SAAgB,WAAW,CAAI,SAA+B,EAAE;IAC9D,MAAM,EAAE,QAAQ,GAAG,qCAA6B,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAExG,MAAM,QAAQ,GAAG,IAAI,sBAAe,CAAI,SAAgB,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,iCAAkB,EAAE,CAAC;IAEtC,IAAI,GAAG,GAAkB,QAAQ,CAAC,IAAI,CACpC,IAAA,sBAAc,GAAE,EAChB,IAAA,mBAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACrD,CAAC;IAEnB,IAAI,QAAQ,EAAE;QACZ,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,2BAAoB,GAAE,CAAC,CAAC;KACxC;IAED,IAAI,OAAO,EAAE;QACX,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;KACpB;IAED,MAAM,MAAM,GAAmB,CAAC,CAAC,KAAQ,EAAE,EAAE;QAC3C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC,CAAmB,CAAC;IAErB,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QACpB,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,CAAC,eAAe,GAAG,CAAC,GAAoB,EAAE,EAAE;QAChD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;YAChC,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAED,MAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEpC,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;KACpC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA5CD,kCA4CC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAI,MAA6B;IAC/D,OAAO,IAAA,mBAAY,EAAC,CAAC,UAA4B,EAAE,EAAE;QACnD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,UAAU,EAAE;YACd,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAVD,4CAUC"}
@@ -1,7 +1,5 @@
1
1
  import { Maybe } from '@dereekb/util';
2
2
  import { Observable, MonoTypeOperatorFunction } from 'rxjs';
3
- export declare function combineLatestFromMapValuesObsFn<T, O>(mapToObs: (value: T) => Observable<O>): (map: Map<any, T>) => Observable<O[]>;
4
- export declare function combineLatestFromArrayObsFn<T, O>(mapToObs: (value: T) => Observable<O>): (values: T[]) => Observable<O[]>;
5
3
  /**
6
4
  * Merges both startWith and tapFirst to initialize a pipe.
7
5
  *
@@ -19,3 +17,13 @@ export declare function initialize<T>(tap: (value: Maybe<T>) => void, initial?:
19
17
  * @returns
20
18
  */
21
19
  export declare function tapFirst<T>(tap: (value: T) => void, skipFirst?: boolean): MonoTypeOperatorFunction<T>;
20
+ /**
21
+ * Prevents an observable from emitting complete until it is unsubscribed from.
22
+ *
23
+ * The subscription will never have complete() called as complete only gets called after it unsubscribes,
24
+ * so use finalize() if additional cleanup is required.
25
+ *
26
+ * @param obs
27
+ * @returns
28
+ */
29
+ export declare function preventComplete<T>(obs: Observable<T>): Observable<T>;
@@ -1,22 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tapFirst = exports.initialize = exports.combineLatestFromArrayObsFn = exports.combineLatestFromMapValuesObsFn = void 0;
3
+ exports.preventComplete = exports.tapFirst = exports.initialize = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
- function combineLatestFromMapValuesObsFn(mapToObs) {
6
- const combineArrayFn = combineLatestFromArrayObsFn(mapToObs);
7
- return (latestMap) => {
8
- const mapValues = Array.from(latestMap).map(y => y[1]);
9
- return combineArrayFn(mapValues);
10
- };
11
- }
12
- exports.combineLatestFromMapValuesObsFn = combineLatestFromMapValuesObsFn;
13
- function combineLatestFromArrayObsFn(mapToObs) {
14
- return (latest) => {
15
- const newObs = latest.map(mapToObs);
16
- return (newObs.length) ? (0, rxjs_1.combineLatest)(newObs) : (0, rxjs_1.of)([]);
17
- };
18
- }
19
- exports.combineLatestFromArrayObsFn = combineLatestFromArrayObsFn;
20
5
  /**
21
6
  * Merges both startWith and tapFirst to initialize a pipe.
22
7
  *
@@ -46,4 +31,20 @@ function tapFirst(tap, skipFirst = false) {
46
31
  });
47
32
  }
48
33
  exports.tapFirst = tapFirst;
34
+ /**
35
+ * Prevents an observable from emitting complete until it is unsubscribed from.
36
+ *
37
+ * The subscription will never have complete() called as complete only gets called after it unsubscribes,
38
+ * so use finalize() if additional cleanup is required.
39
+ *
40
+ * @param obs
41
+ * @returns
42
+ */
43
+ function preventComplete(obs) {
44
+ const complete = new rxjs_1.BehaviorSubject(0);
45
+ return (0, rxjs_1.combineLatest)([obs, complete]).pipe((0, rxjs_1.map)(([x]) => x), (0, rxjs_1.shareReplay)(1), (0, rxjs_1.finalize)(() => {
46
+ complete.complete();
47
+ }));
48
+ }
49
+ exports.preventComplete = preventComplete;
49
50
  //# sourceMappingURL=rxjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/rxjs.ts"],"names":[],"mappings":";;;AACA,+BAAmH;AAEnH,SAAgB,+BAA+B,CAAO,QAAqC;IACzF,MAAM,cAAc,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC7D,OAAO,CAAC,SAAsB,EAAE,EAAE;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAND,0EAMC;AAED,SAAgB,2BAA2B,CAAO,QAAqC;IACrF,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AALD,kEAKC;AAED;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAI,GAA8B,EAAE,OAAkB,EAAE,SAAmB;IACnG,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAkB,MAAM,CAAC,IAAI,CAC3C,IAAA,gBAAS,EAAC,OAAO,CAAC,EAClB,QAAQ,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,CAC/C,CAAC;QAEnB,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AATD,gCASC;AAGD;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAI,GAAuB,EAAE,SAAS,GAAG,KAAK;IACpE,OAAO,IAAA,gBAAS,EAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;QAChC,GAAG,CAAC,KAAK,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AALD,4BAKC"}
1
+ {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/rxjs.ts"],"names":[],"mappings":";;;AACA,+BAAkJ;AAElJ;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAI,GAA8B,EAAE,OAAkB,EAAE,SAAmB;IACnG,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAkB,MAAM,CAAC,IAAI,CAC3C,IAAA,gBAAS,EAAC,OAAO,CAAC,EAClB,QAAQ,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,CAC/C,CAAC;QAEnB,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AATD,gCASC;AAGD;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAI,GAAuB,EAAE,SAAS,GAAG,KAAK;IACpE,OAAO,IAAA,gBAAS,EAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;QAChC,GAAG,CAAC,KAAK,CAAC,CAAC;QACX,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AALD,4BAKC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAI,GAAkB;IACnD,MAAM,QAAQ,GAAG,IAAI,sBAAe,CAAS,CAAC,CAAC,CAAC;IAEhD,OAAO,IAAA,oBAAa,EAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CACxC,IAAA,UAAG,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EACf,IAAA,kBAAW,EAAC,CAAC,CAAC,EACd,IAAA,eAAQ,EAAC,GAAG,EAAE;QACZ,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAVD,0CAUC"}
@@ -0,0 +1,9 @@
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * Creates a map function that maps the input Map to an Observable that returns values mapped from the map's values.
4
+ *
5
+ * @param mapToObs
6
+ * @returns
7
+ */
8
+ export declare function combineLatestFromMapValuesObsFn<T, O>(mapToObs: (value: T) => Observable<O>): (map: Map<any, T>) => Observable<O[]>;
9
+ export declare function combineLatestFromArrayObsFn<T, O>(mapToObs: (value: T) => Observable<O>): (values: T[]) => Observable<O[]>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.combineLatestFromArrayObsFn = exports.combineLatestFromMapValuesObsFn = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ /**
6
+ * Creates a map function that maps the input Map to an Observable that returns values mapped from the map's values.
7
+ *
8
+ * @param mapToObs
9
+ * @returns
10
+ */
11
+ function combineLatestFromMapValuesObsFn(mapToObs) {
12
+ const combineArrayFn = combineLatestFromArrayObsFn(mapToObs);
13
+ return (latestMap) => {
14
+ const mapValues = Array.from(latestMap).map(y => y[1]);
15
+ return combineArrayFn(mapValues);
16
+ };
17
+ }
18
+ exports.combineLatestFromMapValuesObsFn = combineLatestFromMapValuesObsFn;
19
+ function combineLatestFromArrayObsFn(mapToObs) {
20
+ return (latest) => {
21
+ const newObs = latest.map(mapToObs);
22
+ return (newObs.length) ? (0, rxjs_1.combineLatest)(newObs) : (0, rxjs_1.of)([]);
23
+ };
24
+ }
25
+ exports.combineLatestFromArrayObsFn = combineLatestFromArrayObsFn;
26
+ //# sourceMappingURL=rxjs.map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs.map.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/rxjs.map.ts"],"names":[],"mappings":";;;AAAA,+BAAqD;AAErD;;;;;GAKG;AACH,SAAgB,+BAA+B,CAAO,QAAqC;IACzF,MAAM,cAAc,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC7D,OAAO,CAAC,SAAsB,EAAE,EAAE;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAND,0EAMC;AAED,SAAgB,2BAA2B,CAAO,QAAqC;IACrF,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AALD,kEAKC"}
@@ -0,0 +1,4 @@
1
+ import { Maybe } from "@dereekb/util";
2
+ import { Observable, OperatorFunction } from "rxjs";
3
+ export declare function setContainsAllValuesFrom<T>(valuesObs: Observable<Maybe<Iterable<T>>>): OperatorFunction<Set<T>, boolean>;
4
+ export declare function setContainsAnyValueFrom<T>(valuesObs: Observable<Maybe<Iterable<T>>>): OperatorFunction<Set<T>, boolean>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setContainsAnyValueFrom = exports.setContainsAllValuesFrom = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const value_1 = require("./value");
6
+ function setContainsAllValuesFrom(valuesObs) {
7
+ return (0, value_1.combineLatestMapFrom)(valuesObs, (set, values) => (0, util_1.setContainsAllValues)(set, values !== null && values !== void 0 ? values : []));
8
+ }
9
+ exports.setContainsAllValuesFrom = setContainsAllValuesFrom;
10
+ function setContainsAnyValueFrom(valuesObs) {
11
+ return (0, value_1.combineLatestMapFrom)(valuesObs, (set, values) => (0, util_1.setContainsAnyValue)(set, values !== null && values !== void 0 ? values : []));
12
+ }
13
+ exports.setContainsAnyValueFrom = setContainsAnyValueFrom;
14
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/set.ts"],"names":[],"mappings":";;;AAAA,wCAAiF;AAEjF,mCAA+C;AAE/C,SAAgB,wBAAwB,CAAI,SAAyC;IACnF,OAAO,IAAA,4BAAoB,EAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,IAAA,2BAAoB,EAAC,GAAG,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,CAAC;AACnG,CAAC;AAFD,4DAEC;AAED,SAAgB,uBAAuB,CAAI,SAAyC;IAClF,OAAO,IAAA,4BAAoB,EAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,IAAA,0BAAmB,EAAC,GAAG,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,CAAC;AAClG,CAAC;AAFD,0DAEC"}
@@ -0,0 +1,7 @@
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * Convenience function to subscribe to the input observable and use the first value.
4
+ *
5
+ * @param useFn
6
+ */
7
+ export declare function useFirst<T>(obs: Observable<T>, useFn: (value: T) => void): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFirst = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ /**
6
+ * Convenience function to subscribe to the input observable and use the first value.
7
+ *
8
+ * @param useFn
9
+ */
10
+ function useFirst(obs, useFn) {
11
+ obs.pipe((0, rxjs_1.first)()).subscribe(useFn);
12
+ }
13
+ exports.useFirst = useFirst;
14
+ //# sourceMappingURL=use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/use.ts"],"names":[],"mappings":";;;AAAA,+BAAyC;AAEzC;;;;GAIG;AACH,SAAgB,QAAQ,CAAI,GAAkB,EAAE,KAAyB;IACvE,GAAG,CAAC,IAAI,CAAC,IAAA,YAAK,GAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAFD,4BAEC"}
@@ -1,5 +1,18 @@
1
1
  import { MonoTypeOperatorFunction, Observable, OperatorFunction } from 'rxjs';
2
- import { ObjectOrGetter, Maybe } from '@dereekb/util';
2
+ import { GetterOrValue, Maybe } from '@dereekb/util';
3
+ export declare type IsCheckFunction<T = any> = (value: T) => Observable<boolean>;
4
+ /**
5
+ * Function that validates the input value and returns an observable.
6
+ */
7
+ export declare type IsValidFunction<T = any> = IsCheckFunction<T>;
8
+ /**
9
+ * Function that checks modification status of the input value and returns a value.
10
+ */
11
+ export declare type IsModifiedFunction<T = any> = IsCheckFunction<T>;
12
+ export declare function makeReturnIfIsFunction<T>(isCheckFunction: Maybe<IsModifiedFunction<T>>, defaultValueOnMaybe?: boolean): (value: Maybe<T>) => Observable<Maybe<T>>;
13
+ export declare function returnIfIs<T>(isCheckFunction: Maybe<IsModifiedFunction<T>>, value: Maybe<T>, defaultValueOnMaybe?: boolean): Observable<Maybe<T>>;
14
+ export declare function makeCheckIsFunction<T>(isCheckFunction: Maybe<IsModifiedFunction<T>>, defaultValueOnMaybe?: boolean): (value: Maybe<T>) => Observable<boolean>;
15
+ export declare function checkIs<T>(isCheckFunction: Maybe<IsModifiedFunction<T>>, value: Maybe<T>, defaultValueOnMaybe?: boolean): Observable<boolean>;
3
16
  /**
4
17
  * Observable filter that filters maybe value that are defined.
5
18
  */
@@ -7,7 +20,7 @@ export declare function filterMaybe<T>(): OperatorFunction<Maybe<T>, T>;
7
20
  /**
8
21
  * Skips all initial maybe values, and then returns all values after the first non-null/undefined value is returned.
9
22
  */
10
- export declare function skipFirstMaybe<T>(): MonoTypeOperatorFunction<Maybe<T>>;
23
+ export declare function skipFirstMaybe<T>(): MonoTypeOperatorFunction<T>;
11
24
  /**
12
25
  * Provides a switchMap that will emit the observable if the observable is defined, otherwise will return the default value.
13
26
  *
@@ -24,4 +37,22 @@ export declare function switchMapMaybeObs<T = any>(): OperatorFunction<Maybe<Obs
24
37
  /**
25
38
  * Used to pass a default value incase an observable has not yet started emititng values.
26
39
  */
27
- export declare function timeoutStartWith<T>(defaultValue: ObjectOrGetter<T>): MonoTypeOperatorFunction<T>;
40
+ export declare function timeoutStartWith<T>(defaultValue: GetterOrValue<T>): MonoTypeOperatorFunction<T>;
41
+ /**
42
+ * Combines both combineLatest with map values to an other value.
43
+ *
44
+ * @param combineObs
45
+ * @param mapFn
46
+ * @returns
47
+ */
48
+ export declare function combineLatestMapFrom<A, B, C>(combineObs: Observable<B>, mapFn: (a: A, b: B) => C): OperatorFunction<A, C>;
49
+ /**
50
+ * Creates an observable that emits a starting value, then a second value after a delay.
51
+ *
52
+ * If the delay is not provided, or is falsy, then the second value is never emitted.
53
+ */
54
+ export declare function emitDelayObs<T>(startWith: T, endWith: T, delayTime: Maybe<number>): Observable<T>;
55
+ /**
56
+ * Emits a value after a given delay after every new emission.
57
+ */
58
+ export declare function emitAfterDelay<T>(value: T, delayTime: number): MonoTypeOperatorFunction<T>;
@@ -1,8 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.timeoutStartWith = exports.switchMapMaybeObs = exports.switchMapMaybeDefault = exports.skipFirstMaybe = exports.filterMaybe = void 0;
3
+ exports.emitAfterDelay = exports.emitDelayObs = exports.combineLatestMapFrom = exports.timeoutStartWith = exports.switchMapMaybeObs = exports.switchMapMaybeDefault = exports.skipFirstMaybe = exports.filterMaybe = exports.checkIs = exports.makeCheckIsFunction = exports.returnIfIs = exports.makeReturnIfIsFunction = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const util_1 = require("@dereekb/util");
6
+ // MARK: IsCheck
7
+ function makeReturnIfIsFunction(isCheckFunction, defaultValueOnMaybe) {
8
+ return (value) => returnIfIs(isCheckFunction, value, defaultValueOnMaybe);
9
+ }
10
+ exports.makeReturnIfIsFunction = makeReturnIfIsFunction;
11
+ function returnIfIs(isCheckFunction, value, defaultValueOnMaybe) {
12
+ return checkIs(isCheckFunction, value, defaultValueOnMaybe).pipe((0, rxjs_1.map)(x => (x) ? value : undefined));
13
+ }
14
+ exports.returnIfIs = returnIfIs;
15
+ function makeCheckIsFunction(isCheckFunction, defaultValueOnMaybe) {
16
+ return (value) => checkIs(isCheckFunction, value, defaultValueOnMaybe);
17
+ }
18
+ exports.makeCheckIsFunction = makeCheckIsFunction;
19
+ function checkIs(isCheckFunction, value, defaultValueOnMaybe = false) {
20
+ const is = (isCheckFunction) ?
21
+ ((value != null) ? isCheckFunction(value) : (0, rxjs_1.of)(defaultValueOnMaybe)) :
22
+ (0, rxjs_1.of)(true);
23
+ return is;
24
+ }
25
+ exports.checkIs = checkIs;
26
+ // MARK: Filter
6
27
  /**
7
28
  * Observable filter that filters maybe value that are defined.
8
29
  */
@@ -51,8 +72,39 @@ exports.switchMapMaybeObs = switchMapMaybeObs;
51
72
  */
52
73
  function timeoutStartWith(defaultValue) {
53
74
  return (source) => {
54
- return source.pipe((0, rxjs_1.timeout)({ first: 0, with: () => source.pipe((0, rxjs_1.startWith)((0, util_1.getValueFromObjectOrGetter)(defaultValue))) }));
75
+ return source.pipe((0, rxjs_1.timeout)({ first: 0, with: () => source.pipe((0, rxjs_1.startWith)((0, util_1.getValueFromGetter)(defaultValue))) }));
55
76
  };
56
77
  }
57
78
  exports.timeoutStartWith = timeoutStartWith;
79
+ /**
80
+ * Combines both combineLatest with map values to an other value.
81
+ *
82
+ * @param combineObs
83
+ * @param mapFn
84
+ * @returns
85
+ */
86
+ function combineLatestMapFrom(combineObs, mapFn) {
87
+ return (obs) => (0, rxjs_1.combineLatest)([obs, combineObs]).pipe((0, rxjs_1.map)(([a, b]) => mapFn(a, b)));
88
+ }
89
+ exports.combineLatestMapFrom = combineLatestMapFrom;
90
+ /**
91
+ * Creates an observable that emits a starting value, then a second value after a delay.
92
+ *
93
+ * If the delay is not provided, or is falsy, then the second value is never emitted.
94
+ */
95
+ function emitDelayObs(startWith, endWith, delayTime) {
96
+ let obs = (0, rxjs_1.of)(startWith);
97
+ if (delayTime) {
98
+ obs = obs.pipe(emitAfterDelay(endWith, delayTime));
99
+ }
100
+ return obs;
101
+ }
102
+ exports.emitDelayObs = emitDelayObs;
103
+ /**
104
+ * Emits a value after a given delay after every new emission.
105
+ */
106
+ function emitAfterDelay(value, delayTime) {
107
+ return (obs) => obs.pipe((0, rxjs_1.switchMap)((x) => (0, rxjs_1.of)(value).pipe((0, rxjs_1.delay)(delayTime), (0, rxjs_1.startWith)(x))));
108
+ }
109
+ exports.emitAfterDelay = emitAfterDelay;
58
110
  //# sourceMappingURL=value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/value.ts"],"names":[],"mappings":";;;AAAA,+BAAoI;AACpI,wCAAkF;AAElF;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAkC,CAAC;AACjE,CAAC;AAFD,kCAEC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,IAAA,gBAAS,EAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,wCAEC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAU,eAAyB,SAAS;IAC/E,OAAO,IAAA,gBAAS,EAAC,CAAC,CAA8B,EAAE,EAAE;QAClD,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,IAAA,SAAE,EAAC,YAAY,CAAC,CAAC;SACzB;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AARD,sDAQC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,MAA+C,EAAE,EAAE;QACzD,MAAM,UAAU,GAAkB,MAAM,CAAC,IAAI,CAC3C,WAAW,EAAE,EACb,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACD,CAAC;QAEnB,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AATD,8CASC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAI,YAA+B;IACjE,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,cAAO,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAA,iCAA0B,EAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CACpG,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAND,4CAMC"}
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/value.ts"],"names":[],"mappings":";;;AAAA,+BAA+J;AAC/J,wCAAyE;AAezE,gBAAgB;AAChB,SAAgB,sBAAsB,CAAI,eAA6C,EAAE,mBAA6B;IACpH,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAC5E,CAAC;AAFD,wDAEC;AAED,SAAgB,UAAU,CAAI,eAA6C,EAAE,KAAe,EAAE,mBAA6B;IACzH,OAAO,OAAO,CAAI,eAAe,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACzG,CAAC;AAFD,gCAEC;AAED,SAAgB,mBAAmB,CAAI,eAA6C,EAAE,mBAA6B;IACjH,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;AACzE,CAAC;AAFD,kDAEC;AAED,SAAgB,OAAO,CAAI,eAA6C,EAAE,KAAe,EAAE,mBAAmB,GAAG,KAAK;IACpH,MAAM,EAAE,GAAwB,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACtE,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;IACX,OAAO,EAAE,CAAC;AACZ,CAAC;AALD,0BAKC;AAED,eAAe;AACf;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAkC,CAAC;AACjE,CAAC;AAFD,kCAEC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,IAAA,gBAAS,EAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,wCAEC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAU,eAAyB,SAAS;IAC/E,OAAO,IAAA,gBAAS,EAAC,CAAC,CAA8B,EAAE,EAAE;QAClD,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,IAAA,SAAE,EAAC,YAAY,CAAC,CAAC;SACzB;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AARD,sDAQC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,MAA+C,EAAE,EAAE;QACzD,MAAM,UAAU,GAAkB,MAAM,CAAC,IAAI,CAC3C,WAAW,EAAE,EACb,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACD,CAAC;QAEnB,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AATD,8CASC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAI,YAA8B;IAChE,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,cAAO,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAA,yBAAkB,EAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5F,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAND,4CAMC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAU,UAAyB,EAAE,KAAwB;IAC/F,OAAO,CAAC,GAAkB,EAAE,EAAE,CAAC,IAAA,oBAAa,EAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;AAFD,oDAEC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAI,SAAY,EAAE,OAAU,EAAE,SAAwB;IAChF,IAAI,GAAG,GAAG,IAAA,SAAE,EAAC,SAAS,CAAC,CAAC;IAExB,IAAI,SAAS,EAAE;QACb,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;KACpD;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AARD,oCAQC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAI,KAAQ,EAAE,SAAiB;IAC3D,OAAO,CAAC,GAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CACrC,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,EAAE,CACd,IAAA,SAAE,EAAC,KAAK,CAAC,CAAC,IAAI,CACZ,IAAA,YAAK,EAAC,SAAS,CAAC,EAChB,IAAA,gBAAS,EAAC,CAAC,CAAC,CACb,CACF,CACF,CAAC;AACJ,CAAC;AATD,wCASC"}
@@ -0,0 +1,2 @@
1
+ export * from './work.factory';
2
+ export * from './work.instance';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./work.factory"), exports);
5
+ tslib_1.__exportStar(require("./work.instance"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/work/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,0DAAgC"}