New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

universal-stores

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

universal-stores - npm Package Compare versions

Comparing version 2.2.0 to 2.3.0

6

dist/index.d.ts

@@ -11,6 +11,4 @@ /**

*/
/** A generic subscriber. Used in {@link Store} */
export declare type Subscriber<T> = (current: T) => void;
/** A function that's used to unsubscribe a subscriber from a store. Used in {@link Store} */
export declare type Unsubscribe = () => void;
import { Subscriber, Unsubscribe } from '@cdellacqua/signals';
export * from '@cdellacqua/signals';
/** A generic setter function. Used in {@link Store} */

@@ -17,0 +15,0 @@ export declare type Setter<T> = (newValue: T) => void;

@@ -17,2 +17,80 @@ var __defProp = Object.defineProperty;

};
function deriveSignal(signal$, transform) {
const base$ = makeSignal();
const emitTransformed = (data) => {
base$.emit(transform(data));
};
const handleUnsubscribe = () => {
if (unsubscribeOriginal && base$.nOfSubscriptions() === 0) {
unsubscribeOriginal();
unsubscribeOriginal = null;
}
};
let unsubscribeOriginal = null;
return {
nOfSubscriptions: base$.nOfSubscriptions,
subscribe: (s) => {
const unsubscribe = base$.subscribe(s);
if (!unsubscribeOriginal) {
unsubscribeOriginal = signal$.subscribe(emitTransformed);
}
return () => {
unsubscribe();
handleUnsubscribe();
};
},
subscribeOnce: (s) => {
const unsubscribe = base$.subscribeOnce((v) => {
s(v);
handleUnsubscribe();
});
if (!unsubscribeOriginal) {
unsubscribeOriginal = signal$.subscribe(emitTransformed);
}
return () => {
unsubscribe();
handleUnsubscribe();
};
}
};
}
function coalesceSignals(signals$) {
const base$ = makeSignal();
const emit = (data) => {
base$.emit(data);
};
const handleUnsubscribe = () => {
if (unsubscribeOriginals && base$.nOfSubscriptions() === 0) {
unsubscribeOriginals.forEach((unsub) => unsub());
unsubscribeOriginals = null;
}
};
let unsubscribeOriginals = null;
return {
nOfSubscriptions: base$.nOfSubscriptions,
subscribe: (s) => {
const unsubscribe = base$.subscribe(s);
if (!unsubscribeOriginals) {
unsubscribeOriginals = signals$.map((signal$) => signal$.subscribe(emit));
}
return () => {
unsubscribe();
handleUnsubscribe();
};
},
subscribeOnce: (s) => {
const unsubscribe = base$.subscribeOnce((v) => {
s(v);
handleUnsubscribe();
});
if (!unsubscribeOriginals) {
unsubscribeOriginals = signals$.map((signal$) => signal$.subscribe(emit));
}
return () => {
unsubscribe();
handleUnsubscribe();
};
}
};
}
function makeSignal() {

@@ -187,2 +265,2 @@ const subscribers = [];

}
export { makeDerivedStore, makeReadonlyStore, makeStore };
export { coalesceSignals, deriveSignal, makeDerivedStore, makeReadonlyStore, makeSignal, makeStore };

@@ -1,2 +0,2 @@

var T=Object.defineProperty;var j=Object.getOwnPropertySymbols;var D=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable;var x=(c,u,r)=>u in c?T(c,u,{enumerable:!0,configurable:!0,writable:!0,value:r}):c[u]=r,y=(c,u)=>{for(var r in u||(u={}))D.call(u,r)&&x(c,r,u[r]);if(j)for(var r of j(u))M.call(u,r)&&x(c,r,u[r]);return c};(function(c,u){typeof exports=="object"&&typeof module!="undefined"?u(exports):typeof define=="function"&&define.amd?define(["exports"],u):(c=typeof globalThis!="undefined"?globalThis:c||self,u(c.universalStores={}))})(this,function(c){"use strict";function u(){const n=[];function s(e){for(const m of[...n])m(e)}function b(e){const m=n.indexOf(e);m!==-1&&n.splice(m,1)}function t(e){return n.indexOf(e)===-1&&n.push(e),()=>b(e)}function f(e){const m=t(p=>{m(),e(p)});return m}return{emit:s,subscribe:t,subscribeOnce:f,nOfSubscriptions(){return n.length}}}/**
var D=Object.defineProperty;var A=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable;var j=(r,f,l)=>f in r?D(r,f,{enumerable:!0,configurable:!0,writable:!0,value:l}):r[f]=l,y=(r,f)=>{for(var l in f||(f={}))M.call(f,l)&&j(r,l,f[l]);if(A)for(var l of A(f))R.call(f,l)&&j(r,l,f[l]);return r};(function(r,f){typeof exports=="object"&&typeof module!="undefined"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(r=typeof globalThis!="undefined"?globalThis:r||self,f(r.universalStores={}))})(this,function(r){"use strict";function f(s,e){const c=v(),u=b=>{c.emit(e(b))},i=()=>{n&&c.nOfSubscriptions()===0&&(n(),n=null)};let n=null;return{nOfSubscriptions:c.nOfSubscriptions,subscribe:b=>{const t=c.subscribe(b);return n||(n=s.subscribe(u)),()=>{t(),i()}},subscribeOnce:b=>{const t=c.subscribeOnce(p=>{b(p),i()});return n||(n=s.subscribe(u)),()=>{t(),i()}}}}function l(s){const e=v(),c=n=>{e.emit(n)},u=()=>{i&&e.nOfSubscriptions()===0&&(i.forEach(n=>n()),i=null)};let i=null;return{nOfSubscriptions:e.nOfSubscriptions,subscribe:n=>{const b=e.subscribe(n);return i||(i=s.map(t=>t.subscribe(c))),()=>{b(),u()}},subscribeOnce:n=>{const b=e.subscribeOnce(t=>{n(t),u()});return i||(i=s.map(t=>t.subscribe(c))),()=>{b(),u()}}}}function v(){const s=[];function e(n){for(const b of[...s])b(n)}function c(n){const b=s.indexOf(n);b!==-1&&s.splice(b,1)}function u(n){return s.indexOf(n)===-1&&s.push(n),()=>c(n)}function i(n){const b=u(t=>{b(),n(t)});return b}return{emit:e,subscribe:u,subscribeOnce:i,nOfSubscriptions(){return s.length}}}/**
* @license

@@ -10,3 +10,3 @@ * Copyright (c) 2016-22 [these people](https://github.com/sveltejs/svelte/graphs/contributors)

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/function r(n,s,b){const t=Array.isArray(n),f=!t&&"subscribe"in n&&"nOfSubscriptions"in n&&"content"in n,e=f?1:t?n.length:Object.keys(n).length;return A(void 0,{comparator:b==null?void 0:b.comparator,start:e===0?p=>{p(s(t?[]:{}))}:f?p=>n.subscribe(o=>p(s(o))):t?p=>{let d=new Array(n.length),o=0;const a=n.map((h,i)=>h.subscribe(l=>{if(o<e&&(d[i]=l,o++),o===e){const v=[...d];v[i]=l,p(s(v)),d=v}}));return()=>{for(const h of a)h();o=0}}:p=>{let d={},o=0;const a=Object.entries(n).map(([h,i])=>i.subscribe(l=>{if(o<e&&(d[h]=l,o++),o===e){const v=y({},d);v[h]=l,p(s(v)),d=v}}));return()=>{for(const h of a)h();o=0}}})}/**
*/function T(s,e,c){const u=Array.isArray(s),i=!u&&"subscribe"in s&&"nOfSubscriptions"in s&&"content"in s,n=i?1:u?s.length:Object.keys(s).length;return O(void 0,{comparator:c==null?void 0:c.comparator,start:n===0?t=>{t(e(u?[]:{}))}:i?t=>s.subscribe(d=>t(e(d))):u?t=>{let p=new Array(s.length),d=0;const S=s.map((a,o)=>a.subscribe(m=>{if(d<n&&(p[o]=m,d++),d===n){const h=[...p];h[o]=m,t(e(h)),p=h}}));return()=>{for(const a of S)a();d=0}}:t=>{let p={},d=0;const S=Object.entries(s).map(([a,o])=>o.subscribe(m=>{if(d<n&&(p[a]=m,d++),d===n){const h=y({},p);h[a]=m,t(e(h)),p=h}}));return()=>{for(const a of S)a();d=0}}})}/**
* @license

@@ -20,2 +20,2 @@ * Copyright (c) 2016-22 [these people](https://github.com/sveltejs/svelte/graphs/contributors)

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/function k(n,s){var h;let b=n;const t=u();let f;const e=typeof s=="function"?s:s==null?void 0:s.start,m=(h=typeof s=="function"||s==null?void 0:s.comparator)!=null?h:(i,l)=>i===l,p=()=>{if(t.nOfSubscriptions()>0)return b;let i;return o(v=>i=v)(),i},d=i=>{b!==void 0&&m(b,i)||(b=i,t.emit(b))},o=i=>{t.nOfSubscriptions()===0&&(f=e==null?void 0:e(d));const l=t.subscribe(i);return i(b),()=>{l(),t.nOfSubscriptions()===0&&(f==null||f(),f=void 0)}};return{content:p,set:d,subscribe:o,update:i=>{d(i(p()))},nOfSubscriptions:t.nOfSubscriptions}}function A(n,s){const{content:b,nOfSubscriptions:t,subscribe:f}=k(n,s);return{content:b,nOfSubscriptions:t,subscribe:f}}c.makeDerivedStore=r,c.makeReadonlyStore=A,c.makeStore=k,Object.defineProperty(c,"__esModule",{value:!0}),c[Symbol.toStringTag]="Module"});
*/function k(s,e){var a;let c=s;const u=v();let i;const n=typeof e=="function"?e:e==null?void 0:e.start,b=(a=typeof e=="function"||e==null?void 0:e.comparator)!=null?a:(o,m)=>o===m,t=()=>{if(u.nOfSubscriptions()>0)return c;let o;return d(h=>o=h)(),o},p=o=>{c!==void 0&&b(c,o)||(c=o,u.emit(c))},d=o=>{u.nOfSubscriptions()===0&&(i=n==null?void 0:n(p));const m=u.subscribe(o);return o(c),()=>{m(),u.nOfSubscriptions()===0&&(i==null||i(),i=void 0)}};return{content:t,set:p,subscribe:d,update:o=>{p(o(t()))},nOfSubscriptions:u.nOfSubscriptions}}function O(s,e){const{content:c,nOfSubscriptions:u,subscribe:i}=k(s,e);return{content:c,nOfSubscriptions:u,subscribe:i}}r.coalesceSignals=l,r.deriveSignal=f,r.makeDerivedStore=T,r.makeReadonlyStore=O,r.makeSignal=v,r.makeStore=k,Object.defineProperty(r,"__esModule",{value:!0}),r[Symbol.toStringTag]="Module"});

@@ -5,3 +5,3 @@ {

"description": "State management made simple",
"version": "2.2.0",
"version": "2.3.0",
"type": "module",

@@ -26,6 +26,7 @@ "types": "dist/index.d.ts",

"files": [
"dist/**/*"
"dist"
],
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.es.js",

@@ -55,2 +56,3 @@ "require": "./dist/index.cjs"

"@typescript-eslint/eslint-plugin": "^5.4.0",
"@typescript-eslint/parser": "^5.51.0",
"c8": "^7.11.3",

@@ -57,0 +59,0 @@ "chai": "^4.3.4",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc