Skip to content

Commit 34d9f7b

Browse files
committed
Fix: Patch to nested object is changing object content order #300
1 parent 128c639 commit 34d9f7b

File tree

4 files changed

+31
-43
lines changed

4 files changed

+31
-43
lines changed

dist/index.cjs.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,15 @@ function isIncrementHelper(payload) {
331331
payload.isIncrementHelper === true);
332332
}
333333

334+
function convertHelpers(originVal, newVal) {
335+
if (isWhat.isArray(originVal) && isArrayHelper(newVal)) {
336+
newVal = newVal.executeOn(originVal);
337+
}
338+
if (isWhat.isNumber(originVal) && isIncrementHelper(newVal)) {
339+
newVal = newVal.executeOn(originVal);
340+
}
341+
return newVal; // always return newVal as fallback!!
342+
}
334343
/**
335344
* Creates the params needed to $set a target based on a nested.path
336345
*
@@ -434,17 +443,6 @@ function pluginMutations (userState) {
434443
}
435444
if (!ref)
436445
return error('patch-no-ref');
437-
function convertHelpers(originVal, newVal) {
438-
if (isWhat.isArray(originVal) && isArrayHelper(newVal)) {
439-
newVal = newVal.executeOn(originVal);
440-
}
441-
if (isWhat.isNumber(originVal) && isIncrementHelper(newVal)) {
442-
newVal = newVal.executeOn(originVal);
443-
}
444-
return newVal; // always return newVal as fallback!!
445-
}
446-
// const refPropsPicked = filter(ref, Object.keys(patches))
447-
// const patchesSanitised = merge({ extensions: [convertHelpers] }, refPropsPicked, patches)
448446
var patchesFlat = flatten.flattenObject(patches);
449447
for (var _i = 0, _b = Object.entries(patchesFlat); _i < _b.length; _i++) {
450448
var _c = _b[_i], path = _c[0], value = _c[1];

dist/index.esm.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,15 @@ function isIncrementHelper(payload) {
324324
payload.isIncrementHelper === true);
325325
}
326326

327+
function convertHelpers(originVal, newVal) {
328+
if (isArray(originVal) && isArrayHelper(newVal)) {
329+
newVal = newVal.executeOn(originVal);
330+
}
331+
if (isNumber(originVal) && isIncrementHelper(newVal)) {
332+
newVal = newVal.executeOn(originVal);
333+
}
334+
return newVal; // always return newVal as fallback!!
335+
}
327336
/**
328337
* Creates the params needed to $set a target based on a nested.path
329338
*
@@ -427,17 +436,6 @@ function pluginMutations (userState) {
427436
}
428437
if (!ref)
429438
return error('patch-no-ref');
430-
function convertHelpers(originVal, newVal) {
431-
if (isArray(originVal) && isArrayHelper(newVal)) {
432-
newVal = newVal.executeOn(originVal);
433-
}
434-
if (isNumber(originVal) && isIncrementHelper(newVal)) {
435-
newVal = newVal.executeOn(originVal);
436-
}
437-
return newVal; // always return newVal as fallback!!
438-
}
439-
// const refPropsPicked = filter(ref, Object.keys(patches))
440-
// const patchesSanitised = merge({ extensions: [convertHelpers] }, refPropsPicked, patches)
441439
var patchesFlat = flattenObject(patches);
442440
for (var _i = 0, _b = Object.entries(patchesFlat); _i < _b.length; _i++) {
443441
var _c = _b[_i], path = _c[0], value = _c[1];

package.json

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vuex-easy-firestore",
3-
"version": "1.35.8",
3+
"version": "1.35.9",
44
"description": "Easy coupling of firestore and a vuex module. 2-way sync with 0 boilerplate!",
55
"main": "dist/index.cjs.js",
66
"module": "dist/index.esm.js",
@@ -72,14 +72,8 @@
7272
},
7373
"ava": {
7474
"compileEnhancements": false,
75-
"extensions": [
76-
"ts"
77-
],
78-
"require": [
79-
"ts-node/register"
80-
],
81-
"helpers": [
82-
"**/helpers/**/*"
83-
]
75+
"extensions": ["ts"],
76+
"require": ["ts-node/register"],
77+
"helpers": ["**/helpers/**/*"]
8478
}
8579
}

test/helpers/index.cjs.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,15 @@ function isIncrementHelper(payload) {
850850
payload.isIncrementHelper === true);
851851
}
852852

853+
function convertHelpers(originVal, newVal) {
854+
if (isWhat.isArray(originVal) && isArrayHelper(newVal)) {
855+
newVal = newVal.executeOn(originVal);
856+
}
857+
if (isWhat.isNumber(originVal) && isIncrementHelper(newVal)) {
858+
newVal = newVal.executeOn(originVal);
859+
}
860+
return newVal; // always return newVal as fallback!!
861+
}
853862
/**
854863
* Creates the params needed to $set a target based on a nested.path
855864
*
@@ -953,17 +962,6 @@ function pluginMutations (userState) {
953962
}
954963
if (!ref)
955964
return error('patch-no-ref');
956-
function convertHelpers(originVal, newVal) {
957-
if (isWhat.isArray(originVal) && isArrayHelper(newVal)) {
958-
newVal = newVal.executeOn(originVal);
959-
}
960-
if (isWhat.isNumber(originVal) && isIncrementHelper(newVal)) {
961-
newVal = newVal.executeOn(originVal);
962-
}
963-
return newVal; // always return newVal as fallback!!
964-
}
965-
// const refPropsPicked = filter(ref, Object.keys(patches))
966-
// const patchesSanitised = merge({ extensions: [convertHelpers] }, refPropsPicked, patches)
967965
var patchesFlat = flatten.flattenObject(patches);
968966
for (var _i = 0, _b = Object.entries(patchesFlat); _i < _b.length; _i++) {
969967
var _c = _b[_i], path = _c[0], value = _c[1];

0 commit comments

Comments
 (0)