ACIL FM
Dark
Refresh
Current DIR:
/lib/node_modules/npm/node_modules/just-diff
/
lib
node_modules
npm
node_modules
just-diff
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
index.d.ts
668 B
chmod
View
DL
Edit
Rename
Delete
index.js
3.85 MB
chmod
View
DL
Edit
Rename
Delete
index.mjs
3.81 MB
chmod
View
DL
Edit
Rename
Delete
index.tests.ts
1.26 MB
chmod
View
DL
Edit
Rename
Delete
LICENSE
1.05 MB
chmod
View
DL
Edit
Rename
Delete
package.json
767 B
chmod
View
DL
Edit
Rename
Delete
rollup.config.js
120 B
chmod
View
DL
Edit
Rename
Delete
Edit file: /lib/node_modules/npm/node_modules/just-diff/index.mjs
/* const obj1 = {a: 4, b: 5}; const obj2 = {a: 3, b: 5}; const obj3 = {a: 4, c: 5}; diff(obj1, obj2); [ { "op": "replace", "path": ['a'], "value": 3 } ] diff(obj2, obj3); [ { "op": "remove", "path": ['b'] }, { "op": "replace", "path": ['a'], "value": 4 } { "op": "add", "path": ['c'], "value": 5 } ] // using converter to generate jsPatch standard paths // see http://jsonpatch.com import {diff, jsonPatchPathConverter} from 'just-diff' diff(obj1, obj2, jsonPatchPathConverter); [ { "op": "replace", "path": '/a', "value": 3 } ] diff(obj2, obj3, jsonPatchPathConverter); [ { "op": "remove", "path": '/b' }, { "op": "replace", "path": '/a', "value": 4 } { "op": "add", "path": '/c', "value": 5 } ] // arrays const obj4 = {a: 4, b: [1, 2, 3]}; const obj5 = {a: 3, b: [1, 2, 4]}; const obj6 = {a: 3, b: [1, 2, 4, 5]}; diff(obj4, obj5); [ { "op": "replace", "path": ['a'], "value": 3 } { "op": "replace", "path": ['b', 2], "value": 4 } ] diff(obj5, obj6); [ { "op": "add", "path": ['b', 3], "value": 5 } ] // nested paths const obj7 = {a: 4, b: {c: 3}}; const obj8 = {a: 4, b: {c: 4}}; const obj9 = {a: 5, b: {d: 4}}; diff(obj7, obj8); [ { "op": "replace", "path": ['b', 'c'], "value": 4 } ] diff(obj8, obj9); [ { "op": "replace", "path": ['a'], "value": 5 } { "op": "remove", "path": ['b', 'c']} { "op": "add", "path": ['b', 'd'], "value": 4 } ] */ function diff(obj1, obj2, pathConverter) { if (!obj1 || typeof obj1 != 'object' || !obj2 || typeof obj2 != 'object') { throw new Error('both arguments must be objects or arrays'); } pathConverter || (pathConverter = function(arr) { return arr; }); function getDiff(obj1, obj2, basePath, diffs) { var obj1Keys = Object.keys(obj1); var obj1KeysLength = obj1Keys.length; var obj2Keys = Object.keys(obj2); var obj2KeysLength = obj2Keys.length; var path; for (var i = 0; i < obj1KeysLength; i++) { var key = Array.isArray(obj1) ? Number(obj1Keys[i]) : obj1Keys[i]; if (!(key in obj2)) { path = basePath.concat(key); diffs.remove.push({ op: 'remove', path: pathConverter(path), }); } } for (var i = 0; i < obj2KeysLength; i++) { var key = Array.isArray(obj2) ? Number(obj2Keys[i]) : obj2Keys[i]; var obj1AtKey = obj1[key]; var obj2AtKey = obj2[key]; if (!(key in obj1)) { path = basePath.concat(key); var obj2Value = obj2[key]; diffs.add.push({ op: 'add', path: pathConverter(path), value: obj2Value, }); } else if (obj1AtKey !== obj2AtKey) { if ( Object(obj1AtKey) !== obj1AtKey || Object(obj2AtKey) !== obj2AtKey ) { path = pushReplace(path, basePath, key, diffs, pathConverter, obj2); } else { if ( !Object.keys(obj1AtKey).length && !Object.keys(obj2AtKey).length && String(obj1AtKey) != String(obj2AtKey) ) { path = pushReplace(path, basePath, key, diffs, pathConverter, obj2); } else { getDiff(obj1[key], obj2[key], basePath.concat(key), diffs); } } } } return diffs; } const finalDiffs = getDiff(obj1, obj2, [], {remove: [], replace: [], add: []}); return finalDiffs.remove .reverse() .concat(finalDiffs.replace) .concat(finalDiffs.add); } function pushReplace(path, basePath, key, diffs, pathConverter, obj2) { path = basePath.concat(key); diffs.replace.push({ op: 'replace', path: pathConverter(path), value: obj2[key], }); return path; } function jsonPatchPathConverter(arrayPath) { return [''].concat(arrayPath).join('/'); } export {diff, jsonPatchPathConverter};
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply