Socket
Socket
Sign inDemoInstall

use-sync-external-store

Package Overview
Dependencies
1
Maintainers
1
Versions
1245
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.0-experimental-50263d327-20210914 to 0.0.0-experimental-55d75005b-20211011

cjs/use-sync-external-store.native.development.js

35

cjs/use-sync-external-store-extra.development.js

@@ -37,3 +37,3 @@ /** @license React vundefined

function useSyncExternalStoreExtra(subscribe, getSnapshot, selector, isEqual) {
function useSyncExternalStoreExtra(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
// Use this to track the rendered snapshot.

@@ -53,3 +53,3 @@ var instRef = useRef(null);

var getSnapshotWithMemoizedSelector = useMemo(function () {
var _useMemo = useMemo(function () {
// Track the memoized state using closure variables that are local to this

@@ -62,5 +62,4 @@ // memoized instance of a getSnapshot function. Intentionally not using a

var memoizedSelection;
return function () {
var nextSnapshot = getSnapshot();
var memoizedSelector = function (nextSnapshot) {
if (!hasMemo) {

@@ -92,2 +91,3 @@ // The first time the hook is called, there is no memoized result.

// We may be able to reuse the previous invocation's result.
var prevSnapshot = memoizedSnapshot;

@@ -102,3 +102,3 @@ var prevSelection = memoizedSelection;

memoizedSnapshot = nextSnapshot;
// The snapshot has changed, so we need to compute a new selection.
var nextSelection = selector(nextSnapshot); // If a custom isEqual function is provided, use that to check if the data

@@ -109,2 +109,6 @@ // has changed. If it hasn't, return the previous selection. That signals

// If a custom isEqual function is provided, use that to check if the data
// has changed. If it hasn't, return the previous selection. That signals
// to React that the selections are conceptually equal, and we can bail
// out of rendering.
if (isEqual !== undefined && isEqual(prevSelection, nextSelection)) {

@@ -114,7 +118,24 @@ return prevSelection;

memoizedSnapshot = nextSnapshot;
memoizedSelection = nextSelection;
return nextSelection;
}; // Assigning this to a constant so that Flow knows it can't change.
// Assigning this to a constant so that Flow knows it can't change.
var maybeGetServerSnapshot = getServerSnapshot === undefined ? null : getServerSnapshot;
var getSnapshotWithSelector = function () {
return memoizedSelector(getSnapshot());
};
}, [getSnapshot, selector, isEqual]);
var value = useSyncExternalStore.useSyncExternalStore(subscribe, getSnapshotWithMemoizedSelector);
var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? undefined : function () {
return memoizedSelector(maybeGetServerSnapshot());
};
return [getSnapshotWithSelector, getServerSnapshotWithSelector];
}, [getSnapshot, getServerSnapshot, selector, isEqual]),
getSelection = _useMemo[0],
getServerSelection = _useMemo[1];
var value = useSyncExternalStore.useSyncExternalStore(subscribe, getSelection, getServerSelection);
useEffect(function () {

@@ -121,0 +142,0 @@ inst.hasValue = true;

@@ -9,3 +9,4 @@ /** @license React vundefined

*/
'use strict';var k=require("react"),m=require("use-sync-external-store");function n(b,e){return b===e&&(0!==b||1/b===1/e)||b!==b&&e!==e}var p="function"===typeof Object.is?Object.is:n,q=k.useRef,r=k.useEffect,t=k.useMemo,u=k.useDebugValue;
exports.useSyncExternalStoreExtra=function(b,e,l,h){var c=q(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=t(function(){var b=!1,c,d;return function(){var a=e();if(!b){b=!0;c=a;var g=l(a);return void 0!==h&&f.hasValue&&(a=f.value,h(a,g))?d=a:d=g}g=d;if(p(c,a))return g;c=a;a=l(a);return void 0!==h&&h(g,a)?g:d=a}},[e,l,h]);var d=m.useSyncExternalStore(b,c);r(function(){f.hasValue=!0;f.value=d},[d]);u(d);return d};
'use strict';var h=require("react"),n=require("use-sync-external-store");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q="function"===typeof Object.is?Object.is:p,r=h.useRef,t=h.useEffect,u=h.useMemo,v=h.useDebugValue;
exports.useSyncExternalStoreExtra=function(a,b,e,l,g){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=n.useSyncExternalStore(a,
c[0],c[1]);t(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};

30

cjs/use-sync-external-store.development.js

@@ -18,2 +18,4 @@ /** @license React vundefined

var canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');
var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;

@@ -43,6 +45,7 @@

args = args.concat([stack]);
}
} // eslint-disable-next-line react-internal/safe-string-coercion
var argsWithFormat = args.map(function (item) {
return '' + item;
return String(item);
}); // Careful: RN currently depends on this prefix

@@ -74,8 +77,3 @@

useLayoutEffect = React.useLayoutEffect,
useDebugValue = React.useDebugValue,
builtInAPI = React.unstable_useSyncExternalStore; // Prefer the built-in API, if it exists. If it doesn't exist, then we assume
// we're in version 16 or 17, so rendering is always synchronous. The shim
// does not support concurrent rendering, only the built-in API.
var useSyncExternalStore = builtInAPI !== undefined ? builtInAPI : useSyncExternalStore_shim;
useDebugValue = React.useDebugValue;
var didWarnOld18Alpha = false;

@@ -93,3 +91,7 @@ var didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works

function useSyncExternalStore_shim(subscribe, getSnapshot) {
function useSyncExternalStore(subscribe, getSnapshot, // Note: The client shim does not use getServerSnapshot, because pre-18
// versions of React do not expose a way to check if we're hydrating. So
// users of the shim will need to track that themselves and return the
// correct value from `getSnapshot`.
getServerSnapshot) {
{

@@ -145,3 +147,2 @@ if (!didWarnOld18Alpha) {

// happens on subscribe.
// TODO: Circumvent SSR warning

@@ -207,4 +208,11 @@

exports.useSyncExternalStore = useSyncExternalStore;
function useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {
return getSnapshot();
}
var builtInAPI = React.unstable_useSyncExternalStore;
var useSyncExternalStore$2 = builtInAPI !== undefined ? builtInAPI : canUseDOM ? useSyncExternalStore : useSyncExternalStore$1;
exports.useSyncExternalStore = useSyncExternalStore$2;
})();
}

@@ -9,3 +9,3 @@ /** @license React vundefined

*/
'use strict';var e=require("react");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k="function"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue,q=e.unstable_useSyncExternalStore;function r(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;t(c)&&g({inst:c})},[a,d,b]);m(function(){t(c)&&g({inst:c});return a(function(){t(c)&&g({inst:c})})},[a]);p(d);return d}
function t(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}exports.useSyncExternalStore=void 0!==q?q:r;
'use strict';var e=require("react"),h=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement);function k(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var l="function"===typeof Object.is?Object.is:k,m=e.useState,n=e.useEffect,p=e.useLayoutEffect,q=e.useDebugValue;
function r(a,b){var d=b(),f=m({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];p(function(){c.value=d;c.getSnapshot=b;t(c)&&g({inst:c})},[a,d,b]);n(function(){t(c)&&g({inst:c});return a(function(){t(c)&&g({inst:c})})},[a]);q(d);return d}function t(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!l(a,d)}catch(f){return!0}}function u(a,b){return b()}var v=e.unstable_useSyncExternalStore;exports.useSyncExternalStore=void 0!==v?v:h?r:u;
{
"name": "use-sync-external-store",
"description": "Backwards compatible shim for React's useSyncExternalStore. Works with any React that supports hooks.",
"version": "0.0.0-experimental-50263d327-20210914",
"version": "0.0.0-experimental-55d75005b-20211011",
"repository": {

@@ -16,2 +16,3 @@ "type": "git",

"extra.js",
"index.native.js",
"cjs/"

@@ -21,4 +22,4 @@ ],

"peerDependencies": {
"react": "0.0.0-experimental-50263d327-20210914"
"react": "0.0.0-experimental-55d75005b-20211011"
}
}
SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc