@react-rxjs/utils
Advanced tools
Comparing version
@@ -14,1 +14,12 @@ import { GroupedObservable, Observable } from "rxjs"; | ||
export declare function partitionByKey<T, K, R>(stream: Observable<T>, keySelector: (value: T) => K, streamSelector: (grouped: Observable<T>, key: K) => Observable<R>): [(key: K) => GroupedObservable<K, R>, Observable<K[]>]; | ||
/** | ||
* Groups the elements from the source stream by using `keySelector`, returning | ||
* a stream of the active keys, and a function to get the stream of a specific group | ||
* | ||
* @param stream Input stream | ||
* @param keySelector Function that specifies the key for each element in `stream` | ||
* @returns [1, 2] | ||
* 1. A function that accepts a key and returns the stream for the group of that key. | ||
* 2. A stream with the list of active keys | ||
*/ | ||
export declare function partitionByKey<T, K>(stream: Observable<T>, keySelector: (value: T) => K): [(key: K) => GroupedObservable<K, T>, Observable<K[]>]; |
@@ -158,3 +158,3 @@ var __create = Object.create; | ||
const subject = new import_rxjs5.Subject(); | ||
const res = streamSelector(subject, key).pipe((0, import_core.shareLatest)()); | ||
const res = (0, import_core.shareLatest)()((streamSelector || import_rxjs5.identity)(subject, key)); | ||
res.key = key; | ||
@@ -161,0 +161,0 @@ const innerGroup = { |
@@ -1,2 +0,2 @@ | ||
var H=Object.create;var T=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var g=e=>T(e,"__esModule",{value:!0});var Z=(e,s)=>{for(var r in s)T(e,r,{get:s[r],enumerable:!0})},_=(e,s,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of Q(s))!Y.call(e,t)&&t!=="default"&&T(e,t,{get:()=>s[t],enumerable:!(r=J(s,t))||r.enumerable});return e},i=e=>_(g(T(e!=null?H(X(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);g(exports);Z(exports,{combineKeys:()=>h,contextBinder:()=>C,createKeyedSignal:()=>j,createListener:()=>$,createSignal:()=>x,mergeWithKey:()=>E,partitionByKey:()=>R,selfDependant:()=>W,suspend:()=>f,suspended:()=>P,switchMapSuspended:()=>B});var A=i(require("rxjs")),h=(e,s)=>new A.Observable(r=>{let t=new Map,n=new Set,o=new Map,p=!1,l=()=>{if(!p){let a=Object.assign(new Map(o),{changes:n});n=new Set,r.next(a)}},K=e.subscribe(a=>{p=!0;let c=new Set(a);t.forEach((b,u)=>{c.has(u)?c.delete(u):(b.unsubscribe(),t.delete(u),o.has(u)&&(n.add(u),o.delete(u)))}),c.forEach(b=>{t.set(b,s(b).subscribe(u=>{(!o.has(b)||o.get(b)!==u)&&(n.add(b),o.set(b,u),l())},u=>{r.error(u)}))}),p=!1,n.size&&l()},a=>{r.error(a)},()=>{r.complete()});return()=>{K.unsubscribe(),t.forEach(a=>{a.unsubscribe()})}});var m=i(require("rxjs"));function x(e=m.identity){let s=new m.Subject;return[s.asObservable(),(...r)=>s.next(e(...r))]}var w=i(require("rxjs"));function j(e,s){let r=new Map;return[t=>{let n=new w.Observable(o=>{r.has(t)||r.set(t,new Set);let p=r.get(t);return p.add(o),()=>{p.delete(o),p.size===0&&r.delete(t)}});return n.key=t,n},(...t)=>{var p;let n=s?s(...t):t.length===2?t[1]:t[0],o=e?e(n):t[0];(p=r.get(o))==null||p.forEach(l=>{l.next(n)})}]}var O=i(require("rxjs")),G=i(require("rxjs/operators")),E=(e,...s)=>(0,O.merge)(...Object.entries(e).map(([r,t])=>(0,O.from)(t).pipe((0,G.map)(n=>({type:r,payload:n})))).concat(s));var v=i(require("@react-rxjs/core")),d=i(require("rxjs")),M=i(require("rxjs/operators"));function R(e,s,r){let t=new d.Observable(n=>{let o=new Map,p=!1,l=!1,K=e.subscribe(a=>{let c=s(a);if(o.has(c))return o.get(c).source.next(a);let b=new d.Subject,u=r(b,c).pipe((0,v.shareLatest)());u.key=c;let y={source:b,observable:u,subscription:new d.Subscription};o.set(c,y),y.subscription=u.subscribe(d.noop,q=>n.error(q),()=>{o.delete(c),n.next(S(o)),o.size===0&&l&&n.complete()}),b.next(a),n.next(S(o)),p=!0},a=>{l=!0,o.size?o.forEach(c=>c.source.error(a)):n.error(a)},()=>{l=!0,o.size?o.forEach(a=>a.source.complete()):n.complete()});return p||n.next(S(o)),()=>{K.unsubscribe(),o.forEach(a=>{a.source.unsubscribe(),a.subscription.unsubscribe()})}}).pipe((0,v.shareLatest)());return[n=>ee(t,n),t.pipe((0,M.map)(n=>Array.from(n.keys())))]}function S(e){return new Map(Array.from(e.entries()).map(([s,r])=>[s,r.observable]))}var ee=(e,s)=>{let r=new d.Observable(t=>{let n,o=e.subscribe(p=>{var l;n=n||((l=p.get(s))==null?void 0:l.subscribe(t))},p=>{t.error(p)},()=>{t.complete()});return()=>{n==null||n.unsubscribe(),o.unsubscribe()}});return r.key=s,r};var V=i(require("rxjs")),L=i(require("@react-rxjs/core"));var k=i(require("rxjs")),I=e=>s=>new k.Observable(r=>{let t=!1,n=s.subscribe(o=>{t=!0,r.next(o)},o=>{r.error(o)},()=>{r.complete()});return t||r.next(e),n});var f=e=>I(L.SUSPENSE)((0,V.from)(e));var P=()=>f;var N=i(require("rxjs")),U=i(require("rxjs/operators"));var B=e=>(0,N.pipe)((0,U.switchMap)((s,r)=>f(e(s,r))));var F=i(require("rxjs")),D=i(require("rxjs/operators")),W=()=>{let e=new F.Subject;return[e.asObservable(),()=>(0,D.tap)(e)]};var z=i(require("@react-rxjs/core")),re=e=>e();function C(...e){let s=()=>e.map(re);return function(){let[r,t]=z.bind.apply(null,arguments);return[(...n)=>r(...s(),...n),t]}}function $(...e){return x(...e)} | ||
var H=Object.create;var T=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,Y=Object.prototype.hasOwnProperty;var g=e=>T(e,"__esModule",{value:!0});var Z=(e,s)=>{for(var r in s)T(e,r,{get:s[r],enumerable:!0})},_=(e,s,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of Q(s))!Y.call(e,t)&&t!=="default"&&T(e,t,{get:()=>s[t],enumerable:!(r=J(s,t))||r.enumerable});return e},i=e=>_(g(T(e!=null?H(X(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);g(exports);Z(exports,{combineKeys:()=>h,contextBinder:()=>C,createKeyedSignal:()=>j,createListener:()=>$,createSignal:()=>O,mergeWithKey:()=>E,partitionByKey:()=>R,selfDependant:()=>W,suspend:()=>f,suspended:()=>L,switchMapSuspended:()=>U});var A=i(require("rxjs")),h=(e,s)=>new A.Observable(r=>{let t=new Map,n=new Set,o=new Map,p=!1,l=()=>{if(!p){let a=Object.assign(new Map(o),{changes:n});n=new Set,r.next(a)}},K=e.subscribe(a=>{p=!0;let b=new Set(a);t.forEach((c,u)=>{b.has(u)?b.delete(u):(c.unsubscribe(),t.delete(u),o.has(u)&&(n.add(u),o.delete(u)))}),b.forEach(c=>{t.set(c,s(c).subscribe(u=>{(!o.has(c)||o.get(c)!==u)&&(n.add(c),o.set(c,u),l())},u=>{r.error(u)}))}),p=!1,n.size&&l()},a=>{r.error(a)},()=>{r.complete()});return()=>{K.unsubscribe(),t.forEach(a=>{a.unsubscribe()})}});var m=i(require("rxjs"));function O(e=m.identity){let s=new m.Subject;return[s.asObservable(),(...r)=>s.next(e(...r))]}var w=i(require("rxjs"));function j(e,s){let r=new Map;return[t=>{let n=new w.Observable(o=>{r.has(t)||r.set(t,new Set);let p=r.get(t);return p.add(o),()=>{p.delete(o),p.size===0&&r.delete(t)}});return n.key=t,n},(...t)=>{var p;let n=s?s(...t):t.length===2?t[1]:t[0],o=e?e(n):t[0];(p=r.get(o))==null||p.forEach(l=>{l.next(n)})}]}var x=i(require("rxjs")),G=i(require("rxjs/operators")),E=(e,...s)=>(0,x.merge)(...Object.entries(e).map(([r,t])=>(0,x.from)(t).pipe((0,G.map)(n=>({type:r,payload:n})))).concat(s));var v=i(require("@react-rxjs/core")),d=i(require("rxjs")),M=i(require("rxjs/operators"));function R(e,s,r){let t=new d.Observable(n=>{let o=new Map,p=!1,l=!1,K=e.subscribe(a=>{let b=s(a);if(o.has(b))return o.get(b).source.next(a);let c=new d.Subject,u=(0,v.shareLatest)()((r||d.identity)(c,b));u.key=b;let S={source:c,observable:u,subscription:new d.Subscription};o.set(b,S),S.subscription=u.subscribe(d.noop,q=>n.error(q),()=>{o.delete(b),n.next(y(o)),o.size===0&&l&&n.complete()}),c.next(a),n.next(y(o)),p=!0},a=>{l=!0,o.size?o.forEach(b=>b.source.error(a)):n.error(a)},()=>{l=!0,o.size?o.forEach(a=>a.source.complete()):n.complete()});return p||n.next(y(o)),()=>{K.unsubscribe(),o.forEach(a=>{a.source.unsubscribe(),a.subscription.unsubscribe()})}}).pipe((0,v.shareLatest)());return[n=>ee(t,n),t.pipe((0,M.map)(n=>Array.from(n.keys())))]}function y(e){return new Map(Array.from(e.entries()).map(([s,r])=>[s,r.observable]))}var ee=(e,s)=>{let r=new d.Observable(t=>{let n,o=e.subscribe(p=>{var l;n=n||((l=p.get(s))==null?void 0:l.subscribe(t))},p=>{t.error(p)},()=>{t.complete()});return()=>{n==null||n.unsubscribe(),o.unsubscribe()}});return r.key=s,r};var V=i(require("rxjs")),B=i(require("@react-rxjs/core"));var k=i(require("rxjs")),I=e=>s=>new k.Observable(r=>{let t=!1,n=s.subscribe(o=>{t=!0,r.next(o)},o=>{r.error(o)},()=>{r.complete()});return t||r.next(e),n});var f=e=>I(B.SUSPENSE)((0,V.from)(e));var L=()=>f;var P=i(require("rxjs")),N=i(require("rxjs/operators"));var U=e=>(0,P.pipe)((0,N.switchMap)((s,r)=>f(e(s,r))));var F=i(require("rxjs")),D=i(require("rxjs/operators")),W=()=>{let e=new F.Subject;return[e.asObservable(),()=>(0,D.tap)(e)]};var z=i(require("@react-rxjs/core")),re=e=>e();function C(...e){let s=()=>e.map(re);return function(){let[r,t]=z.bind.apply(null,arguments);return[(...n)=>r(...s(),...n),t]}}function $(...e){return O(...e)} | ||
//# sourceMappingURL=utils.cjs.production.min.js.map |
@@ -110,3 +110,4 @@ // src/combineKeys.ts | ||
Subject as Subject2, | ||
Subscription as Subscription2 | ||
Subscription as Subscription2, | ||
identity as identity2 | ||
} from "rxjs"; | ||
@@ -125,3 +126,3 @@ import { map as map2 } from "rxjs/operators"; | ||
const subject = new Subject2(); | ||
const res = streamSelector(subject, key).pipe(shareLatest()); | ||
const res = shareLatest()((streamSelector || identity2)(subject, key)); | ||
res.key = key; | ||
@@ -128,0 +129,0 @@ const innerGroup = { |
{ | ||
"version": "0.9.1", | ||
"version": "0.9.2", | ||
"repository": { | ||
@@ -10,4 +10,11 @@ "type": "git", | ||
"exports": { | ||
"import": "./dist/utils.es2019.mjs", | ||
"require": "./dist/index.cjs" | ||
".": { | ||
"node": { | ||
"module": "./dist/utils.es2017.js", | ||
"import": "./dist/utils.es2019.mjs", | ||
"require": "./dist/index.cjs" | ||
}, | ||
"default": "./dist/utils.es2017.js" | ||
}, | ||
"./package.json": "./package.json" | ||
}, | ||
@@ -48,4 +55,4 @@ "module": "./dist/utils.es2017.js", | ||
"devDependencies": { | ||
"@react-rxjs/core": "0.8.2" | ||
"@react-rxjs/core": "0.8.3" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
253239
1.74%2100
0.62%