memoize-one
Advanced tools
Comparing version 5.1.0-beta.4 to 5.1.0-beta.5
@@ -1,1 +0,1 @@ | ||
export default function areInputsEqual(newInputs: unknown[], lastInputs: unknown[]): boolean; | ||
export default function areInputsEqual(newInputs: readonly unknown[], lastInputs: readonly unknown[]): boolean; |
@@ -1,2 +0,2 @@ | ||
export declare type EqualityFn = (newArgs: unknown[], lastArgs: unknown[]) => boolean; | ||
export declare type EqualityFn = (newArgs: readonly unknown[], lastArgs: readonly unknown[]) => boolean; | ||
export default function memoizeOne<ResultFn extends (this: any, ...newArgs: any[]) => ReturnType<ResultFn>>(resultFn: ResultFn, isEqual?: EqualityFn): ResultFn; |
@@ -1,1 +0,1 @@ | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).memoizeOne=n()}(this,function(){"use strict";function e(e,n){if(e.length!==n.length)return!1;for(var t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}return function(t,r){var i;void 0===r&&(r=e);var f,o=[],u=!1;return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return u&&i===this&&r(e,o)||(f=t.apply(this,e),u=!0,i=this,o=e),f}}}); | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).memoizeOne=n()}(this,function(){"use strict";function e(e,n){if(e.length!==n.length)return!1;for(var t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}return function(n,t){var r;void 0===t&&(t=e);var i,f=[],o=!1;return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return o&&r===this&&t(e,f)?i:(i=n.apply(this,e),o=!0,r=this,f=e,i)}}}); |
{ | ||
"name": "memoize-one", | ||
"version": "5.1.0-beta.4", | ||
"version": "5.1.0-beta.5", | ||
"description": "A memoization library which only remembers the latest invocation", | ||
@@ -37,3 +37,2 @@ "main": "dist/memoize-one.cjs.js", | ||
"eslint-plugin-prettier": "^3.1.0", | ||
"flow-bin": "^0.105.2", | ||
"jest": "^24.9.0", | ||
@@ -44,6 +43,5 @@ "lodash.isequal": "^4.5.0", | ||
"rollup": "^1.19.4", | ||
"rollup-plugin-commonjs": "^10.0.2", | ||
"rollup-plugin-replace": "^2.2.0", | ||
"rollup-plugin-terser": "^5.1.1", | ||
"rollup-plugin-typescript": "^1.0.1", | ||
"rollup-plugin-uglify": "^6.0.2", | ||
"ts-jest": "^24.0.2", | ||
@@ -50,0 +48,0 @@ "ts-node": "^8.3.0", |
@@ -57,5 +57,18 @@ # memoize-one | ||
const memoized = memoizeOne(fn, isEqual); | ||
type EqualityFn = (newArgs: mixed[], oldArgs: mixed[]) => boolean; | ||
``` | ||
The quality function needs to conform to this `type`: | ||
```ts | ||
type EqualityFn = (newArgs: readonly unknown[], lastArgs: readonly unknown[]) => boolean; | ||
// You can import this type from memoize-one if you like | ||
// typescript | ||
import { EqualityFn } from 'memoize-one'; | ||
// flow | ||
import type { EqualityFn } from 'memoize-one'; | ||
``` | ||
An equality function should return `true` if the arguments are equal. If `true` is returned then the wrapped function will not be called. | ||
@@ -65,8 +78,2 @@ | ||
```js | ||
const simpleIsEqual: EqualityFn = (newArgs: mixed[], lastArgs: mixed[]): boolean => | ||
newArgs.length === lastArgs.length && | ||
newArgs.every((newArg: mixed, index: number): boolean => shallowEqual(newArg, lastArgs[index])); | ||
``` | ||
A custom equality function needs to compare `Arrays`. The `newArgs` array will be a new reference every time so a simple `newArgs === lastArgs` will always return `false`. | ||
@@ -73,0 +80,0 @@ |
@@ -1,3 +0,5 @@ | ||
// @flow | ||
export default function areInputsEqual(newInputs: unknown[], lastInputs: unknown[]): boolean { | ||
export default function areInputsEqual( | ||
newInputs: readonly unknown[], | ||
lastInputs: readonly unknown[], | ||
): boolean { | ||
// no checks needed if the inputs length has changed | ||
@@ -4,0 +6,0 @@ if (newInputs.length !== lastInputs.length) { |
import areInputsEqual from './are-inputs-equal'; | ||
export type EqualityFn = (newArgs: unknown[], lastArgs: unknown[]) => boolean; | ||
export type EqualityFn = (newArgs: readonly unknown[], lastArgs: readonly unknown[]) => boolean; | ||
@@ -5,0 +5,0 @@ export default function memoizeOne< |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
22
160
216
18039