Socket
Socket
Sign inDemoInstall

@superdispatch/hooks

Package Overview
Dependencies
Maintainers
2
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@superdispatch/hooks - npm Package Compare versions

Comparing version 0.7.18 to 0.7.21

54

dist-node/index.js

@@ -20,2 +20,31 @@ 'use strict';

function useDeepEqualMemo(factory, deps) {
var depsRef = react.useRef(deps);
var stateRef = react.useRef();
var nextState = undefined;
if (stateRef.current == null) {
stateRef.current = {
value: factory(undefined)
};
} else if (!dequal.dequal(depsRef.current, deps)) {
var nextValue = factory(stateRef.current.value);
if (!dequal.dequal(nextValue, stateRef.current.value)) {
nextState = {
value: nextValue
};
}
}
react.useEffect(() => {
depsRef.current = deps;
if (nextState) {
stateRef.current = nextState;
}
});
return nextState != null ? nextState.value : stateRef.current.value;
}
function useDeepEqualValue(value) {

@@ -32,26 +61,2 @@ var ref = react.useRef(value);

function useDeepEqualDeps(deps) {
var {
current: initialDeps
} = react.useRef(deps);
/* istanbul ignore next */
if (process.env.NODE_ENV !== 'production') {
if (initialDeps.length !== deps.length) {
// eslint-disable-next-line no-console
console.error('[useDeepEqualDeps] size of the "deps" argument has changed between renders. ' + 'The order and size of this array must remain constant.');
}
} // eslint-disable-next-line @typescript-eslint/no-unsafe-return
return useDeepEqualValue(deps);
}
function useDeepEqualMemo(factory, deps) {
var pureDeps = useDeepEqualDeps(deps); // eslint-disable-next-line react-hooks/exhaustive-deps
var value = react.useMemo(factory, pureDeps);
return useDeepEqualValue(value);
}
function useValueObserver(value, observer) {

@@ -108,3 +113,2 @@ var ref = react.useRef(value);

exports.useConstant = useConstant;
exports.useDeepEqualDeps = useDeepEqualDeps;
exports.useDeepEqualMemo = useDeepEqualMemo;

@@ -111,0 +115,0 @@ exports.useDeepEqualValue = useDeepEqualValue;

@@ -1,9 +0,30 @@

import { useMemo } from 'react';
import { useDeepEqualDeps } from "../deep-equal-deps/useDeepEqualDeps.js";
import { useDeepEqualValue } from "../deep-equal-value/useDeepEqualValue.js";
import { dequal } from 'dequal';
import { useEffect, useRef } from 'react';
export function useDeepEqualMemo(factory, deps) {
var pureDeps = useDeepEqualDeps(deps); // eslint-disable-next-line react-hooks/exhaustive-deps
var depsRef = useRef(deps);
var stateRef = useRef();
var nextState = undefined;
var value = useMemo(factory, pureDeps);
return useDeepEqualValue(value);
if (stateRef.current == null) {
stateRef.current = {
value: factory(undefined)
};
} else if (!dequal(depsRef.current, deps)) {
var nextValue = factory(stateRef.current.value);
if (!dequal(nextValue, stateRef.current.value)) {
nextState = {
value: nextValue
};
}
}
useEffect(() => {
depsRef.current = deps;
if (nextState) {
stateRef.current = nextState;
}
});
return nextState != null ? nextState.value : stateRef.current.value;
}
export * from "./constant/useConstant.js";
export * from "./deep-equal-deps/useDeepEqualDeps.js";
export * from "./deep-equal-memo/useDeepEqualMemo.js";

@@ -4,0 +3,0 @@ export * from "./deep-equal-value/useDeepEqualValue.js";

@@ -5,6 +5,4 @@ import { DependencyList } from 'react';

declare function useDeepEqualDeps(deps: DependencyList): DependencyList;
declare function useDeepEqualMemo<T>(factory: (prevValue: T | undefined) => T, deps: DependencyList): T;
declare function useDeepEqualMemo<T>(factory: () => T, deps: DependencyList): T;
declare function useDeepEqualValue<T>(value: T): T;

@@ -19,2 +17,2 @@

export { EventHandler, useConstant, useDeepEqualDeps, useDeepEqualMemo, useDeepEqualValue, useEventHandler, useIsMounted, useValueObserver };
export { EventHandler, useConstant, useDeepEqualMemo, useDeepEqualValue, useEventHandler, useIsMounted, useValueObserver };

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

import { useRef, useLayoutEffect, useMemo, useEffect, useCallback } from 'react';
import { useRef, useEffect, useLayoutEffect, useCallback } from 'react';
import { dequal } from 'dequal';

@@ -16,2 +16,31 @@

function useDeepEqualMemo(factory, deps) {
var depsRef = useRef(deps);
var stateRef = useRef();
var nextState = undefined;
if (stateRef.current == null) {
stateRef.current = {
value: factory(undefined)
};
} else if (!dequal(depsRef.current, deps)) {
var nextValue = factory(stateRef.current.value);
if (!dequal(nextValue, stateRef.current.value)) {
nextState = {
value: nextValue
};
}
}
useEffect(() => {
depsRef.current = deps;
if (nextState) {
stateRef.current = nextState;
}
});
return nextState != null ? nextState.value : stateRef.current.value;
}
function useDeepEqualValue(value) {

@@ -28,26 +57,2 @@ var ref = useRef(value);

function useDeepEqualDeps(deps) {
var {
current: initialDeps
} = useRef(deps);
/* istanbul ignore next */
if (process.env.NODE_ENV !== 'production') {
if (initialDeps.length !== deps.length) {
// eslint-disable-next-line no-console
console.error('[useDeepEqualDeps] size of the "deps" argument has changed between renders. ' + 'The order and size of this array must remain constant.');
}
} // eslint-disable-next-line @typescript-eslint/no-unsafe-return
return useDeepEqualValue(deps);
}
function useDeepEqualMemo(factory, deps) {
var pureDeps = useDeepEqualDeps(deps); // eslint-disable-next-line react-hooks/exhaustive-deps
var value = useMemo(factory, pureDeps);
return useDeepEqualValue(value);
}
function useValueObserver(value, observer) {

@@ -102,3 +107,3 @@ var ref = useRef(value);

export { useConstant, useDeepEqualDeps, useDeepEqualMemo, useDeepEqualValue, useEventHandler, useIsMounted, useValueObserver };
export { useConstant, useDeepEqualMemo, useDeepEqualValue, useEventHandler, useIsMounted, useValueObserver };
//# sourceMappingURL=index.js.map
{
"name": "@superdispatch/hooks",
"version": "0.7.18",
"version": "0.7.21",
"license": "MIT",

@@ -5,0 +5,0 @@ "files": [

Sorry, the diff of this file is not supported yet

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