| Current Path : /home/emeraadmin/www/4d695/ |
| Current File : /home/emeraadmin/www/4d695/shallowequal.tar |
src/index.ts 0000644 00000002177 15167733112 0007027 0 ustar 00 export function shallowEqual<T>(
objA: T,
objB: T,
compare?: (a: T, b: T, key?: string) => boolean | void,
compareContext?: any
) {
var compareResult = compare
? compare.call(compareContext, objA, objB)
: void 0;
if (compareResult !== void 0) {
return !!compareResult;
}
if (objA === objB) {
return true;
}
if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
return false;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
// Test for A's keys different from B.
for (var idx = 0; idx < keysA.length; idx++) {
var key = keysA[idx];
if (!bHasOwnProperty(key)) {
return false;
}
var valueA = (objA as any)[key];
var valueB = (objB as any)[key];
compareResult = compare
? compare.call(compareContext, valueA, valueB, key)
: void 0;
if (
compareResult === false ||
(compareResult === void 0 && valueA !== valueB)
) {
return false;
}
}
return true;
}
package.json 0000644 00000004175 15167733112 0007047 0 ustar 00 {
"_from": "@react-dnd/shallowequal@^2.0.0",
"_id": "@react-dnd/shallowequal@2.0.0",
"_inBundle": false,
"_integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==",
"_location": "/@react-dnd/shallowequal",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "@react-dnd/shallowequal@^2.0.0",
"name": "@react-dnd/shallowequal",
"escapedName": "@react-dnd%2fshallowequal",
"scope": "@react-dnd",
"rawSpec": "^2.0.0",
"saveSpec": null,
"fetchSpec": "^2.0.0"
},
"_requiredBy": [
"/react-dnd"
],
"_resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz",
"_shasum": "a3031eb54129f2c66b2753f8404266ec7bf67f0a",
"_spec": "@react-dnd/shallowequal@^2.0.0",
"_where": "C:\\xampp\\htdocs\\emeraltd\\node_modules\\react-dnd",
"author": {
"name": "Alberto Leal",
"email": "mailforalberto@gmail.com",
"url": "github.com/dashed"
},
"bugs": {
"url": "https://github.com/react-dnd/shallowequal/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "Like lodash isEqualWith but for shallow equal.",
"devDependencies": {
"@types/jest": "^24.0.23",
"husky": "^3.1.0",
"tsdx": "^0.11.0",
"tslib": "^1.10.0",
"typescript": "^3.7.2"
},
"homepage": "https://github.com/react-dnd/shallowequal#readme",
"husky": {
"hooks": {
"pre-commit": "tsdx lint"
}
},
"keywords": [
"shallowequal",
"shallow",
"equal",
"isequal",
"compare",
"isequalwith"
],
"license": "MIT",
"main": "dist/index.js",
"module": "dist/shallowequal.esm.js",
"name": "@react-dnd/shallowequal",
"peerDependencies": {},
"prettier": {
"printWidth": 80,
"semi": true,
"singleQuote": true,
"trailingComma": "es5"
},
"repository": {
"type": "git",
"url": "git+https://github.com/react-dnd/shallowequal.git"
},
"scripts": {
"build": "tsdx build",
"lint": "tsdx lint",
"start": "tsdx watch",
"test": "tsdx test"
},
"typings": "dist/index.d.ts",
"version": "2.0.0"
}
test/shallowequal.spec.ts 0000644 00000010634 15167733112 0011537 0 ustar 00 import { shallowEqual } from '../src/index';
describe('shallowequal', function() {
// eslint-disable-next-line no-sparse-arrays
const falsey = [, '', 0, false, NaN, null, undefined];
// test cases copied from https://github.com/facebook/fbjs/blob/82247de1c33e6f02a199778203643eaee16ea4dc/src/core/__tests__/shallowEqual-test.js
it('returns false if either argument is null', () => {
expect(shallowEqual(null, {})).toEqual(false);
expect(shallowEqual({}, null)).toEqual(false);
});
it('returns true if both arguments are null or undefined', () => {
expect(shallowEqual(null, null)).toEqual(true);
expect(shallowEqual(undefined, undefined)).toEqual(true);
});
it('returns true if arguments are shallow equal', () => {
expect(shallowEqual({ a: 1, b: 2, c: 3 }, { a: 1, b: 2, c: 3 })).toEqual(
true
);
});
it('returns false if arguments are not objects and not equal', () => {
expect(shallowEqual(1, 2)).toEqual(false);
});
it('returns false if only one argument is not an object', () => {
expect(shallowEqual<any>(1, {})).toEqual(false);
});
it('returns false if first argument has too many keys', () => {
expect(shallowEqual({ a: 1, b: 2, c: 3 }, { a: 1, b: 2 })).toEqual(false);
});
it('returns false if second argument has too many keys', () => {
expect(shallowEqual({ a: 1, b: 2 }, { a: 1, b: 2, c: 3 })).toEqual(false);
});
it('returns true if values are not primitives but are ===', () => {
let obj = {};
expect(
shallowEqual({ a: 1, b: 2, c: obj }, { a: 1, b: 2, c: obj })
).toEqual(true);
});
// subsequent test cases are copied from lodash tests
it('returns false if arguments are not shallow equal', () => {
expect(shallowEqual({ a: 1, b: 2, c: {} }, { a: 1, b: 2, c: {} })).toEqual(
false
);
});
it('should provide the correct `customizer` arguments', () => {
let argsList: any[] = [];
const arry = [1, 2];
const object1: any = { a: arry, b: null };
const object2: any = { a: arry, b: null };
object1.b = object2;
object2.b = object1;
const expected = [
[object1, object2],
[object1.a, object2.a, 'a'],
[object1.b, object2.b, 'b'],
];
shallowEqual(object1, object2, function(...args) {
argsList.push(args);
});
expect(argsList).toEqual(expected);
});
it('should set the `this` binding', () => {
const actual = shallowEqual(
'a',
'b',
function compare(this: any, a, b) {
return this[a] === this[b];
},
{ a: 1, b: 1 }
);
expect(actual).toEqual(true);
});
it('should handle comparisons if `customizer` returns `undefined`', () => {
const noop = () => void 0;
expect(shallowEqual('a', 'a', noop)).toEqual(true);
expect(shallowEqual(['a'], ['a'], noop)).toEqual(true);
expect(shallowEqual({ '0': 'a' }, { '0': 'a' }, noop)).toEqual(true);
});
it('should not handle comparisons if `customizer` returns `true`', () => {
const customizer = (value: any) => typeof value === 'string' || undefined;
expect(shallowEqual('a', 'b', customizer)).toEqual(true);
expect(shallowEqual(['a'], ['b'], customizer)).toEqual(true);
expect(shallowEqual({ '0': 'a' }, { '0': 'b' }, customizer)).toEqual(true);
});
it('should not handle comparisons if `customizer` returns `false`', () => {
const customizer = (value: any) =>
typeof value === 'string' ? false : undefined;
expect(shallowEqual('a', 'a', customizer)).toEqual(false);
expect(shallowEqual(['a'], ['a'], customizer)).toEqual(false);
expect(shallowEqual({ '0': 'a' }, { '0': 'a' }, customizer)).toEqual(false);
});
it('should return a boolean value even if `customizer` does not', () => {
let actual = shallowEqual('a', 'b', () => 'c' as any);
expect(actual).toEqual(true);
const values = falsey.filter(v => v !== undefined);
const expected = values.map(() => false);
const result: boolean[] = [];
values.forEach(value => {
result.push(shallowEqual('a', 'a', () => value as any));
});
expect(result).toEqual(expected);
});
it('should treat objects created by `Object.create(null)` like any other plain object', () => {
class Foo {
public a = 1;
}
const object2 = { a: 1 };
expect(shallowEqual(new Foo(), object2)).toEqual(true);
const object1 = Object.create(null);
object1.a = 1;
expect(shallowEqual(object1, object2)).toEqual(true);
});
});
LICENSE 0000644 00000002134 15167733112 0005557 0 ustar 00 MIT License
Copyright (c) 2017 Alberto Leal <mailforalberto@gmail.com> (github.com/dashed)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
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.
dist/shallowequal.cjs.development.js.map 0000644 00000005063 15167733112 0014433 0 ustar 00 {"version":3,"file":"shallowequal.cjs.development.js","sources":["../src/index.ts"],"sourcesContent":["export function shallowEqual<T>(\n objA: T,\n objB: T,\n compare?: (a: T, b: T, key?: string) => boolean | void,\n compareContext?: any\n) {\n var compareResult = compare\n ? compare.call(compareContext, objA, objB)\n : void 0;\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = (objA as any)[key];\n var valueB = (objB as any)[key];\n\n compareResult = compare\n ? compare.call(compareContext, valueA, valueB, key)\n : void 0;\n\n if (\n compareResult === false ||\n (compareResult === void 0 && valueA !== valueB)\n ) {\n return false;\n }\n }\n\n return true;\n}\n"],"names":["shallowEqual","objA","objB","compare","compareContext","compareResult","call","keysA","Object","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","valueA","valueB"],"mappings":";;SAAgBA,aACdC,MACAC,MACAC,SACAC;MAEIC,aAAa,GAAGF,OAAO,GACvBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6BH,IAA7B,EAAmCC,IAAnC,CADuB,GAEvB,KAAK,CAFT;;MAGIG,aAAa,KAAK,KAAK,CAA3B,EAA8B;WACrB,CAAC,CAACA,aAAT;;;MAGEJ,IAAI,KAAKC,IAAb,EAAmB;WACV,IAAP;;;MAGE,OAAOD,IAAP,KAAgB,QAAhB,IAA4B,CAACA,IAA7B,IAAqC,OAAOC,IAAP,KAAgB,QAArD,IAAiE,CAACA,IAAtE,EAA4E;WACnE,KAAP;;;MAGEK,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYR,IAAZ,CAAZ;MACIS,KAAK,GAAGF,MAAM,CAACC,IAAP,CAAYP,IAAZ,CAAZ;;MAEIK,KAAK,CAACI,MAAN,KAAiBD,KAAK,CAACC,MAA3B,EAAmC;WAC1B,KAAP;;;MAGEC,eAAe,GAAGJ,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCb,IAArC,CAAtB;;OAGK,IAAIc,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGT,KAAK,CAACI,MAA9B,EAAsCK,GAAG,EAAzC,EAA6C;QACvCC,GAAG,GAAGV,KAAK,CAACS,GAAD,CAAf;;QAEI,CAACJ,eAAe,CAACK,GAAD,CAApB,EAA2B;aAClB,KAAP;;;QAGEC,MAAM,GAAIjB,IAAY,CAACgB,GAAD,CAA1B;QACIE,MAAM,GAAIjB,IAAY,CAACe,GAAD,CAA1B;IAEAZ,aAAa,GAAGF,OAAO,GACnBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6Bc,MAA7B,EAAqCC,MAArC,EAA6CF,GAA7C,CADmB,GAEnB,KAAK,CAFT;;QAKEZ,aAAa,KAAK,KAAlB,IACCA,aAAa,KAAK,KAAK,CAAvB,IAA4Ba,MAAM,KAAKC,MAF1C,EAGE;aACO,KAAP;;;;SAIG,IAAP;;;;;"} dist/shallowequal.cjs.production.min.js.map 0000644 00000003742 15167733112 0015063 0 ustar 00 {"version":3,"file":"shallowequal.cjs.production.min.js","sources":["../src/index.ts"],"sourcesContent":["export function shallowEqual<T>(\n objA: T,\n objB: T,\n compare?: (a: T, b: T, key?: string) => boolean | void,\n compareContext?: any\n) {\n var compareResult = compare\n ? compare.call(compareContext, objA, objB)\n : void 0;\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = (objA as any)[key];\n var valueB = (objB as any)[key];\n\n compareResult = compare\n ? compare.call(compareContext, valueA, valueB, key)\n : void 0;\n\n if (\n compareResult === false ||\n (compareResult === void 0 && valueA !== valueB)\n ) {\n return false;\n }\n }\n\n return true;\n}\n"],"names":["objA","objB","compare","compareContext","compareResult","call","keysA","Object","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","valueA","valueB"],"mappings":"2CACEA,EACAC,EACAC,EACAC,OAEIC,EAAgBF,EAChBA,EAAQG,KAAKF,EAAgBH,EAAMC,QACnC,UACkB,IAAlBG,UACOA,KAGPJ,IAASC,SACJ,KAGW,iBAATD,IAAsBA,GAAwB,iBAATC,IAAsBA,SAC7D,MAGLK,EAAQC,OAAOC,KAAKR,GACpBS,EAAQF,OAAOC,KAAKP,MAEpBK,EAAMI,SAAWD,EAAMC,cAClB,UAGLC,EAAkBJ,OAAOK,UAAUC,eAAeC,KAAKb,GAGlDc,EAAM,EAAGA,EAAMT,EAAMI,OAAQK,IAAO,KACvCC,EAAMV,EAAMS,OAEXJ,EAAgBK,UACZ,MAGLC,EAAUjB,EAAagB,GACvBE,EAAUjB,EAAae,OAOP,KALpBZ,EAAgBF,EACZA,EAAQG,KAAKF,EAAgBc,EAAQC,EAAQF,QAC7C,SAIiB,IAAlBZ,GAA4Ba,IAAWC,SAEjC,SAIJ"} dist/test/shallowequal.spec.d.ts 0000644 00000000014 15167733112 0012713 0 ustar 00 export {};
dist/shallowequal.cjs.production.min.js 0000644 00000000771 15167733112 0014306 0 ustar 00 "use strict";exports.shallowEqual=function(r,t,e,o){var n=e?e.call(o,r,t):void 0;if(void 0!==n)return!!n;if(r===t)return!0;if("object"!=typeof r||!r||"object"!=typeof t||!t)return!1;var i=Object.keys(r),a=Object.keys(t);if(i.length!==a.length)return!1;for(var f=Object.prototype.hasOwnProperty.bind(t),l=0;l<i.length;l++){var u=i[l];if(!f(u))return!1;var c=r[u],v=t[u];if(!1===(n=e?e.call(o,c,v,u):void 0)||void 0===n&&c!==v)return!1}return!0};
//# sourceMappingURL=shallowequal.cjs.production.min.js.map
dist/index.js 0000644 00000000312 15167733112 0007156 0 ustar 00
'use strict'
if (process.env.NODE_ENV === 'production') {
module.exports = require('./shallowequal.cjs.production.min.js')
} else {
module.exports = require('./shallowequal.cjs.development.js')
}
dist/shallowequal.esm.js 0000644 00000002073 15167733112 0011341 0 ustar 00 function shallowEqual(objA, objB, compare, compareContext) {
var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;
if (compareResult !== void 0) {
return !!compareResult;
}
if (objA === objB) {
return true;
}
if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
return false;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.
for (var idx = 0; idx < keysA.length; idx++) {
var key = keysA[idx];
if (!bHasOwnProperty(key)) {
return false;
}
var valueA = objA[key];
var valueB = objB[key];
compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;
if (compareResult === false || compareResult === void 0 && valueA !== valueB) {
return false;
}
}
return true;
}
export { shallowEqual };
//# sourceMappingURL=shallowequal.esm.js.map
dist/shallowequal.cjs.development.js 0000644 00000002142 15167733112 0013652 0 ustar 00 'use strict';
function shallowEqual(objA, objB, compare, compareContext) {
var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;
if (compareResult !== void 0) {
return !!compareResult;
}
if (objA === objB) {
return true;
}
if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
return false;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.
for (var idx = 0; idx < keysA.length; idx++) {
var key = keysA[idx];
if (!bHasOwnProperty(key)) {
return false;
}
var valueA = objA[key];
var valueB = objB[key];
compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;
if (compareResult === false || compareResult === void 0 && valueA !== valueB) {
return false;
}
}
return true;
}
exports.shallowEqual = shallowEqual;
//# sourceMappingURL=shallowequal.cjs.development.js.map
dist/shallowequal.esm.js.map 0000644 00000005045 15167733112 0012117 0 ustar 00 {"version":3,"file":"shallowequal.esm.js","sources":["../src/index.ts"],"sourcesContent":["export function shallowEqual<T>(\n objA: T,\n objB: T,\n compare?: (a: T, b: T, key?: string) => boolean | void,\n compareContext?: any\n) {\n var compareResult = compare\n ? compare.call(compareContext, objA, objB)\n : void 0;\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = (objA as any)[key];\n var valueB = (objB as any)[key];\n\n compareResult = compare\n ? compare.call(compareContext, valueA, valueB, key)\n : void 0;\n\n if (\n compareResult === false ||\n (compareResult === void 0 && valueA !== valueB)\n ) {\n return false;\n }\n }\n\n return true;\n}\n"],"names":["shallowEqual","objA","objB","compare","compareContext","compareResult","call","keysA","Object","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","valueA","valueB"],"mappings":"SAAgBA,aACdC,MACAC,MACAC,SACAC;MAEIC,aAAa,GAAGF,OAAO,GACvBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6BH,IAA7B,EAAmCC,IAAnC,CADuB,GAEvB,KAAK,CAFT;;MAGIG,aAAa,KAAK,KAAK,CAA3B,EAA8B;WACrB,CAAC,CAACA,aAAT;;;MAGEJ,IAAI,KAAKC,IAAb,EAAmB;WACV,IAAP;;;MAGE,OAAOD,IAAP,KAAgB,QAAhB,IAA4B,CAACA,IAA7B,IAAqC,OAAOC,IAAP,KAAgB,QAArD,IAAiE,CAACA,IAAtE,EAA4E;WACnE,KAAP;;;MAGEK,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYR,IAAZ,CAAZ;MACIS,KAAK,GAAGF,MAAM,CAACC,IAAP,CAAYP,IAAZ,CAAZ;;MAEIK,KAAK,CAACI,MAAN,KAAiBD,KAAK,CAACC,MAA3B,EAAmC;WAC1B,KAAP;;;MAGEC,eAAe,GAAGJ,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCb,IAArC,CAAtB;;OAGK,IAAIc,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGT,KAAK,CAACI,MAA9B,EAAsCK,GAAG,EAAzC,EAA6C;QACvCC,GAAG,GAAGV,KAAK,CAACS,GAAD,CAAf;;QAEI,CAACJ,eAAe,CAACK,GAAD,CAApB,EAA2B;aAClB,KAAP;;;QAGEC,MAAM,GAAIjB,IAAY,CAACgB,GAAD,CAA1B;QACIE,MAAM,GAAIjB,IAAY,CAACe,GAAD,CAA1B;IAEAZ,aAAa,GAAGF,OAAO,GACnBA,OAAO,CAACG,IAAR,CAAaF,cAAb,EAA6Bc,MAA7B,EAAqCC,MAArC,EAA6CF,GAA7C,CADmB,GAEnB,KAAK,CAFT;;QAKEZ,aAAa,KAAK,KAAlB,IACCA,aAAa,KAAK,KAAK,CAAvB,IAA4Ba,MAAM,KAAKC,MAF1C,EAGE;aACO,KAAP;;;;SAIG,IAAP;;;;;"} dist/index.d.ts 0000644 00000000223 15167733112 0007413 0 ustar 00 export declare function shallowEqual<T>(objA: T, objB: T, compare?: (a: T, b: T, key?: string) => boolean | void, compareContext?: any): boolean;
README.md 0000644 00000004172 15167733112 0006035 0 ustar 00 # shallowequal [](https://travis-ci.org/dashed/shallowequal) [](https://npmjs.com/shallowequal) [](https://www.npmjs.com/package/shallowequal)
> `shallowequal` is like lodash's [`isEqual`](https://lodash.com/docs/3.10.1#isEqual) (v3.10.1) but for shallow (strict) equal.
`shallowequal(value, other, [customizer], [thisArg])`
Performs a **_shallow equality_** comparison between two values (i.e. `value` and `other`) to determine if they are equivalent.
The equality check returns true if `value` and `other` are already strictly equal, OR when all the following are true:
- `value` and `other` are both objects with the same keys
- For each key, the value in `value` and `other` are **strictly equal** (`===`)
If `customizer` (expected to be a function) is provided it is invoked to compare values. If `customizer` returns `undefined` (i.e. `void 0`), then comparisons are handled by the `shallowequal` function instead.
The `customizer` is bound to `thisArg` and invoked with three arguments: `(value, other, key)`.
**NOTE:** Docs are (shamelessly) adapted from [lodash's v3.x docs](https://lodash.com/docs/3.10.1#isEqual)
## Install
```sh
$ yarn add shallowequal
# npm v5+
$ npm install shallowequal
# before npm v5
$ npm install --save shallowequal
```
## Usage
```js
const shallowequal = require("shallowequal");
const object = { user: "fred" };
const other = { user: "fred" };
object == other;
// → false
shallowequal(object, other);
// → true
```
## Credit
Code for `shallowEqual` originated from https://github.com/gaearon/react-pure-render/ and has since been refactored to have the exact same API as `lodash.isEqualWith` (as of `v4.17.4`).
## Development
- `node.js` and `npm`. See: https://github.com/creationix/nvm#installation
- `yarn`. See: https://yarnpkg.com/en/docs/install
- `npm` dependencies. Run: `yarn install`
### Chores
- Lint: `yarn lint`
- Test: `yarn test`
- Pretty: `yarn pretty`
- Prepare: `yarn prepare`
## License
MIT.
tsconfig.json 0000644 00000001344 15167733112 0007263 0 ustar 00 {
"include": ["src", "types", "test"],
"compilerOptions": {
"target": "es5",
"module": "esnext",
"lib": ["dom", "esnext"],
"importHelpers": true,
"declaration": true,
"sourceMap": true,
"rootDir": "./",
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"strictPropertyInitialization": true,
"noImplicitThis": true,
"alwaysStrict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"baseUrl": "./",
"paths": {
"*": ["src/*", "node_modules/*"]
},
"jsx": "react",
"esModuleInterop": true
}
}
.github/workflows/nodejs.yml 0000644 00000000743 15167733112 0012160 0 ustar 00 name: Node CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [8.x, 10.x, 12.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm install, build, and test
run: |
yarn install
yarn build
yarn test
env:
CI: true