@cocoar/ts-utils 0.1.0-beta.110
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/README.md +26 -0
- package/package.json +41 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +5 -0
- package/src/index.js.map +1 -0
- package/src/lib/behavior-subject-proxy.d.ts +7 -0
- package/src/lib/behavior-subject-proxy.js +44 -0
- package/src/lib/behavior-subject-proxy.js.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# @cocoar/ts-utils
|
|
2
|
+
|
|
3
|
+
Shared TypeScript utilities for Cocoar packages.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Most consumers won't install this directly because Cocoar packages use it as an internal dependency.
|
|
8
|
+
|
|
9
|
+
If you need it:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add @cocoar/ts-utils
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Utilities
|
|
16
|
+
|
|
17
|
+
### BehaviorSubjectProxy
|
|
18
|
+
|
|
19
|
+
`BehaviorSubjectProxy<T>` behaves like a `BehaviorSubject<T>`, but its `next()` method also accepts an `Observable<T>`.
|
|
20
|
+
When you pass an observable, it automatically unsubscribes the previous observable subscription and forwards values from the latest one.
|
|
21
|
+
|
|
22
|
+
This is useful for cases where you want to expose a stable subject but switch the upstream stream dynamically.
|
|
23
|
+
|
|
24
|
+
## Running unit tests
|
|
25
|
+
|
|
26
|
+
Run `nx test ts-utils` to execute the unit tests via Vitest.
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cocoar/ts-utils",
|
|
3
|
+
"version": "0.1.0-beta.110",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Shared TypeScript utilities for Cocoar packages",
|
|
6
|
+
"author": "Cocoar",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/cocoar-dev/cocoar-ui.git",
|
|
11
|
+
"directory": "shared/ts-utils"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/cocoar-dev/cocoar-ui/issues"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/cocoar-dev/cocoar-ui",
|
|
17
|
+
"keywords": [
|
|
18
|
+
"typescript",
|
|
19
|
+
"utils",
|
|
20
|
+
"cocoar"
|
|
21
|
+
],
|
|
22
|
+
"type": "commonjs",
|
|
23
|
+
"main": "./src/index.js",
|
|
24
|
+
"types": "./src/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./src/index.d.ts",
|
|
28
|
+
"default": "./src/index.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"rxjs": "^7.0.0"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"tslib": "^2.3.0"
|
|
39
|
+
},
|
|
40
|
+
"sideEffects": false
|
|
41
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/behavior-subject-proxy';
|
package/src/index.js
ADDED
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../shared/ts-utils/src/index.ts"],"names":[],"mappings":";;;AAAA,uEAA6C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _BehaviorSubjectProxy_instances, _BehaviorSubjectProxy_lastSubscription, _BehaviorSubjectProxy_unsubscribeDependent;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BehaviorSubjectProxy = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
class BehaviorSubjectProxy extends rxjs_1.BehaviorSubject {
|
|
8
|
+
constructor(initialValue) {
|
|
9
|
+
super(initialValue);
|
|
10
|
+
_BehaviorSubjectProxy_instances.add(this);
|
|
11
|
+
_BehaviorSubjectProxy_lastSubscription.set(this, void 0);
|
|
12
|
+
}
|
|
13
|
+
next(value) {
|
|
14
|
+
var _a;
|
|
15
|
+
if ((0, rxjs_1.isObservable)(value)) {
|
|
16
|
+
// Alten Stream abhängen
|
|
17
|
+
(_a = tslib_1.__classPrivateFieldGet(this, _BehaviorSubjectProxy_lastSubscription, "f")) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
18
|
+
tslib_1.__classPrivateFieldSet(this, _BehaviorSubjectProxy_lastSubscription, value.subscribe({
|
|
19
|
+
next: (val) => {
|
|
20
|
+
// Nur den Wert weitergeben, nicht nochmal Observable-Logik
|
|
21
|
+
super.next(val);
|
|
22
|
+
},
|
|
23
|
+
error: () => tslib_1.__classPrivateFieldGet(this, _BehaviorSubjectProxy_instances, "m", _BehaviorSubjectProxy_unsubscribeDependent).call(this),
|
|
24
|
+
complete: () => tslib_1.__classPrivateFieldGet(this, _BehaviorSubjectProxy_instances, "m", _BehaviorSubjectProxy_unsubscribeDependent).call(this),
|
|
25
|
+
}), "f");
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// Normaler Wert
|
|
29
|
+
super.next(value);
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
unsubscribe() {
|
|
34
|
+
tslib_1.__classPrivateFieldGet(this, _BehaviorSubjectProxy_instances, "m", _BehaviorSubjectProxy_unsubscribeDependent).call(this);
|
|
35
|
+
super.unsubscribe();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.BehaviorSubjectProxy = BehaviorSubjectProxy;
|
|
39
|
+
_BehaviorSubjectProxy_lastSubscription = new WeakMap(), _BehaviorSubjectProxy_instances = new WeakSet(), _BehaviorSubjectProxy_unsubscribeDependent = function _BehaviorSubjectProxy_unsubscribeDependent() {
|
|
40
|
+
var _a;
|
|
41
|
+
(_a = tslib_1.__classPrivateFieldGet(this, _BehaviorSubjectProxy_lastSubscription, "f")) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
42
|
+
tslib_1.__classPrivateFieldSet(this, _BehaviorSubjectProxy_lastSubscription, undefined, "f");
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=behavior-subject-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behavior-subject-proxy.js","sourceRoot":"","sources":["../../../../../shared/ts-utils/src/lib/behavior-subject-proxy.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+E;AAE/E,MAAa,oBAAwB,SAAQ,sBAAkB;IAG7D,YAAY,YAAe;QACzB,KAAK,CAAC,YAAY,CAAC,CAAC;;QAHtB,yDAAiC;IAIjC,CAAC;IAEQ,IAAI,CAAC,KAAwB;;QACpC,IAAI,IAAA,mBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YACxB,wBAAwB;YACxB,MAAA,+BAAA,IAAI,8CAAkB,0CAAE,WAAW,EAAE,CAAC;YAEtC,+BAAA,IAAI,0CAAqB,KAAK,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACZ,2DAA2D;oBAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;gBACD,KAAK,EAAE,GAAG,EAAE,CAAC,+BAAA,IAAI,mFAAsB,MAA1B,IAAI,CAAwB;gBACzC,QAAQ,EAAE,GAAG,EAAE,CAAC,+BAAA,IAAI,mFAAsB,MAA1B,IAAI,CAAwB;aAC7C,CAAC,MAAA,CAAC;QACL,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAOQ,WAAW;QAClB,+BAAA,IAAI,mFAAsB,MAA1B,IAAI,CAAwB,CAAC;QAC7B,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;CACF;AArCD,oDAqCC;;;IARG,MAAA,+BAAA,IAAI,8CAAkB,0CAAE,WAAW,EAAE,CAAC;IACtC,+BAAA,IAAI,0CAAqB,SAAS,MAAA,CAAC;AACrC,CAAC"}
|