@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.
- package/CHANGELOG.md +62 -10
- package/README.md +1 -1
- package/package.json +10 -7
- package/src/index.js +1 -1
- package/src/index.js.map +1 -1
- package/src/lib/filter/filter.map.d.ts +4 -3
- package/src/lib/filter/filter.map.js.map +1 -1
- package/src/lib/filter/filter.source.d.ts +4 -4
- package/src/lib/filter/filter.source.js.map +1 -1
- package/src/lib/filter/index.js +4 -4
- package/src/lib/filter/index.js.map +1 -1
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.js +8 -7
- package/src/lib/index.js.map +1 -1
- package/src/lib/iterator/index.d.ts +1 -0
- package/src/lib/iterator/index.js +7 -6
- package/src/lib/iterator/index.js.map +1 -1
- package/src/lib/iterator/iteration.accumulator.d.ts +8 -4
- package/src/lib/iterator/iteration.accumulator.js +18 -21
- package/src/lib/iterator/iteration.accumulator.js.map +1 -1
- package/src/lib/iterator/iteration.accumulator.rxjs.d.ts +7 -3
- package/src/lib/iterator/iteration.accumulator.rxjs.js +21 -10
- package/src/lib/iterator/iteration.accumulator.rxjs.js.map +1 -1
- package/src/lib/iterator/iteration.d.ts +7 -3
- package/src/lib/iterator/iteration.mapped.page.d.ts +3 -2
- package/src/lib/iterator/iteration.mapped.page.js.map +1 -1
- package/src/lib/iterator/iteration.next.d.ts +8 -3
- package/src/lib/iterator/iteration.next.js +19 -6
- package/src/lib/iterator/iteration.next.js.map +1 -1
- package/src/lib/iterator/iterator.page.d.ts +22 -6
- package/src/lib/iterator/iterator.page.js +17 -5
- package/src/lib/iterator/iterator.page.js.map +1 -1
- package/src/lib/loading/index.js +8 -8
- package/src/lib/loading/index.js.map +1 -1
- package/src/lib/loading/loading.context.state.value.js.map +1 -1
- package/src/lib/loading/loading.state.d.ts +53 -3
- package/src/lib/loading/loading.state.js +102 -2
- package/src/lib/loading/loading.state.js.map +1 -1
- package/src/lib/lock.d.ts +13 -7
- package/src/lib/lock.js +38 -14
- package/src/lib/lock.js.map +1 -1
- package/src/lib/object.js +2 -2
- package/src/lib/object.js.map +1 -1
- package/src/lib/rxjs/array.d.ts +17 -0
- package/src/lib/rxjs/array.js +23 -9
- package/src/lib/rxjs/array.js.map +1 -1
- package/src/lib/rxjs/boolean.d.ts +13 -1
- package/src/lib/rxjs/boolean.js +31 -1
- package/src/lib/rxjs/boolean.js.map +1 -1
- package/src/lib/rxjs/delta.d.ts +32 -0
- package/src/lib/rxjs/delta.js +51 -0
- package/src/lib/rxjs/delta.js.map +1 -0
- package/src/lib/rxjs/factory.d.ts +31 -0
- package/src/lib/rxjs/factory.js +21 -0
- package/src/lib/rxjs/factory.js.map +1 -0
- package/src/lib/rxjs/getter.d.ts +4 -4
- package/src/lib/rxjs/getter.js +3 -3
- package/src/lib/rxjs/getter.js.map +1 -1
- package/src/lib/rxjs/index.d.ts +9 -1
- package/src/lib/rxjs/index.js +16 -8
- package/src/lib/rxjs/index.js.map +1 -1
- package/src/lib/rxjs/lifecycle.d.ts +18 -0
- package/src/lib/rxjs/lifecycle.js +55 -0
- package/src/lib/rxjs/lifecycle.js.map +1 -0
- package/src/lib/rxjs/map.d.ts +10 -0
- package/src/lib/rxjs/map.js +17 -0
- package/src/lib/rxjs/map.js.map +1 -0
- package/src/lib/rxjs/number.d.ts +16 -1
- package/src/lib/rxjs/number.js +15 -3
- package/src/lib/rxjs/number.js.map +1 -1
- package/src/lib/rxjs/rxjs.async.d.ts +57 -0
- package/src/lib/rxjs/rxjs.async.js +69 -0
- package/src/lib/rxjs/rxjs.async.js.map +1 -0
- package/src/lib/rxjs/rxjs.d.ts +10 -2
- package/src/lib/rxjs/rxjs.js +17 -16
- package/src/lib/rxjs/rxjs.js.map +1 -1
- package/src/lib/rxjs/rxjs.map.d.ts +9 -0
- package/src/lib/rxjs/rxjs.map.js +26 -0
- package/src/lib/rxjs/rxjs.map.js.map +1 -0
- package/src/lib/rxjs/set.d.ts +4 -0
- package/src/lib/rxjs/set.js +14 -0
- package/src/lib/rxjs/set.js.map +1 -0
- package/src/lib/rxjs/use.d.ts +7 -0
- package/src/lib/rxjs/use.js +14 -0
- package/src/lib/rxjs/use.js.map +1 -0
- package/src/lib/rxjs/value.d.ts +34 -3
- package/src/lib/rxjs/value.js +54 -2
- package/src/lib/rxjs/value.js.map +1 -1
- package/src/lib/work/index.d.ts +2 -0
- package/src/lib/work/index.js +6 -0
- package/src/lib/work/index.js.map +1 -0
- package/src/lib/work/work.factory.d.ts +35 -0
- package/src/lib/work/work.factory.js +43 -0
- package/src/lib/work/work.factory.js.map +1 -0
- package/src/lib/work/work.instance.d.ts +60 -0
- package/src/lib/work/work.instance.js +129 -0
- 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"}
|
package/src/lib/rxjs/number.d.ts
CHANGED
|
@@ -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>;
|
package/src/lib/rxjs/number.js
CHANGED
|
@@ -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,
|
|
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":";;;
|
|
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"}
|
package/src/lib/rxjs/rxjs.d.ts
CHANGED
|
@@ -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>;
|
package/src/lib/rxjs/rxjs.js
CHANGED
|
@@ -1,22 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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
|
package/src/lib/rxjs/rxjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/rxjs/rxjs.ts"],"names":[],"mappings":";;;AACA,+
|
|
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,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"}
|
package/src/lib/rxjs/value.d.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { MonoTypeOperatorFunction, Observable, OperatorFunction } from 'rxjs';
|
|
2
|
-
import {
|
|
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<
|
|
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:
|
|
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>;
|
package/src/lib/rxjs/value.js
CHANGED
|
@@ -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.
|
|
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,+
|
|
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,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"}
|