Skip to content

Commit

Permalink
fix: fixed deleteMany method not available
Browse files Browse the repository at this point in the history
  • Loading branch information
kouts committed May 11, 2021
1 parent 7c2b3b0 commit 605ec80
Show file tree
Hide file tree
Showing 10 changed files with 162 additions and 12 deletions.
24 changes: 23 additions & 1 deletion dist/cjs/pathStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ function splitPath(str) {
}

function getByPath(obj, path) {
var parts = splitPath(path);
var parts = isArray(path) ? path : splitPath(path);
var length = parts.length;

for (var i = 0; i < length; i++) {
Expand Down Expand Up @@ -121,6 +121,24 @@ var setMany = function setMany(obj, path, value) {
}
};

var deleteOne = function deleteOne(obj, pathStr) {
var path = splitPath(pathStr);
var prop = path.pop();
Vue__default['default']["delete"](getByPath(obj, path), prop);
};

var deleteMany = function deleteMany(obj, path) {
if (typeof path === 'string') {
deleteOne(obj, path);
} else if (isArray(path)) {
path.forEach(function (item) {
deleteOne(obj, item);
});
} else {
throw Error('Arguments must be either string or array.');
}
};

var ARRAY_METHODS = ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'];

var createPathStore = function createPathStore(state) {
Expand All @@ -138,6 +156,10 @@ var createPathStore = function createPathStore(state) {
return path ? getByPath(store, path) : store;
};

store["delete"] = function (path) {
deleteMany(store, path);
};

ARRAY_METHODS.forEach(function (method) {
store[method] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
Expand Down
30 changes: 29 additions & 1 deletion dist/cjs/vuexPathStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ function splitPath(str) {
}

function getByPath(obj, path) {
var parts = splitPath(path);
var parts = isArray(path) ? path : splitPath(path);
var length = parts.length;

for (var i = 0; i < length; i++) {
Expand Down Expand Up @@ -156,6 +156,24 @@ var setMany = function setMany(obj, path, value) {
}
};

var deleteOne = function deleteOne(obj, pathStr) {
var path = splitPath(pathStr);
var prop = path.pop();
Vue__default['default']["delete"](getByPath(obj, path), prop);
};

var deleteMany = function deleteMany(obj, path) {
if (typeof path === 'string') {
deleteOne(obj, path);
} else if (isArray(path)) {
path.forEach(function (item) {
deleteOne(obj, item);
});
} else {
throw Error('Arguments must be either string or array.');
}
};

var ARRAY_METHODS = ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'];

var createVuexPathStore = function createVuexPathStore(options) {
Expand All @@ -168,6 +186,10 @@ var createVuexPathStore = function createVuexPathStore(options) {
toggle: function toggle(state, info) {
var path = info.path;
setOne(state, path, !getByPath(state, path));
},
"delete": function _delete(state, info) {
var path = info.path;
deleteMany(state, path);
}
};
ARRAY_METHODS.forEach(function (method) {
Expand Down Expand Up @@ -199,6 +221,12 @@ var createVuexPathStore = function createVuexPathStore(options) {
});
};

store["delete"] = function (path) {
store.commit('delete', {
path: path
});
};

ARRAY_METHODS.forEach(function (method) {
store[method] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
Expand Down
24 changes: 23 additions & 1 deletion dist/es/pathStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ function splitPath(str) {
}

function getByPath(obj, path) {
var parts = splitPath(path);
var parts = isArray(path) ? path : splitPath(path);
var length = parts.length;

for (var i = 0; i < length; i++) {
Expand Down Expand Up @@ -113,6 +113,24 @@ var setMany = function setMany(obj, path, value) {
}
};

var deleteOne = function deleteOne(obj, pathStr) {
var path = splitPath(pathStr);
var prop = path.pop();
Vue["delete"](getByPath(obj, path), prop);
};

var deleteMany = function deleteMany(obj, path) {
if (typeof path === 'string') {
deleteOne(obj, path);
} else if (isArray(path)) {
path.forEach(function (item) {
deleteOne(obj, item);
});
} else {
throw Error('Arguments must be either string or array.');
}
};

var ARRAY_METHODS = ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'];

var createPathStore = function createPathStore(state) {
Expand All @@ -130,6 +148,10 @@ var createPathStore = function createPathStore(state) {
return path ? getByPath(store, path) : store;
};

store["delete"] = function (path) {
deleteMany(store, path);
};

ARRAY_METHODS.forEach(function (method) {
store[method] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
Expand Down
30 changes: 29 additions & 1 deletion dist/es/vuexPathStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ function splitPath(str) {
}

function getByPath(obj, path) {
var parts = splitPath(path);
var parts = isArray(path) ? path : splitPath(path);
var length = parts.length;

for (var i = 0; i < length; i++) {
Expand Down Expand Up @@ -147,6 +147,24 @@ var setMany = function setMany(obj, path, value) {
}
};

var deleteOne = function deleteOne(obj, pathStr) {
var path = splitPath(pathStr);
var prop = path.pop();
Vue["delete"](getByPath(obj, path), prop);
};

var deleteMany = function deleteMany(obj, path) {
if (typeof path === 'string') {
deleteOne(obj, path);
} else if (isArray(path)) {
path.forEach(function (item) {
deleteOne(obj, item);
});
} else {
throw Error('Arguments must be either string or array.');
}
};

var ARRAY_METHODS = ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'];

var createVuexPathStore = function createVuexPathStore(options) {
Expand All @@ -159,6 +177,10 @@ var createVuexPathStore = function createVuexPathStore(options) {
toggle: function toggle(state, info) {
var path = info.path;
setOne(state, path, !getByPath(state, path));
},
"delete": function _delete(state, info) {
var path = info.path;
deleteMany(state, path);
}
};
ARRAY_METHODS.forEach(function (method) {
Expand Down Expand Up @@ -190,6 +212,12 @@ var createVuexPathStore = function createVuexPathStore(options) {
});
};

store["delete"] = function (path) {
store.commit('delete', {
path: path
});
};

ARRAY_METHODS.forEach(function (method) {
store[method] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
Expand Down
24 changes: 23 additions & 1 deletion dist/umd/pathStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
}

function getByPath(obj, path) {
var parts = splitPath(path);
var parts = isArray(path) ? path : splitPath(path);
var length = parts.length;

for (var i = 0; i < length; i++) {
Expand Down Expand Up @@ -121,6 +121,24 @@
}
};

var deleteOne = function deleteOne(obj, pathStr) {
var path = splitPath(pathStr);
var prop = path.pop();
Vue__default['default']["delete"](getByPath(obj, path), prop);
};

var deleteMany = function deleteMany(obj, path) {
if (typeof path === 'string') {
deleteOne(obj, path);
} else if (isArray(path)) {
path.forEach(function (item) {
deleteOne(obj, item);
});
} else {
throw Error('Arguments must be either string or array.');
}
};

var ARRAY_METHODS = ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'];

var createPathStore = function createPathStore(state) {
Expand All @@ -138,6 +156,10 @@
return path ? getByPath(store, path) : store;
};

store["delete"] = function (path) {
deleteMany(store, path);
};

ARRAY_METHODS.forEach(function (method) {
store[method] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
Expand Down
2 changes: 1 addition & 1 deletion dist/umd/pathStore.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 29 additions & 1 deletion dist/umd/vuexPathStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
}

function getByPath(obj, path) {
var parts = splitPath(path);
var parts = isArray(path) ? path : splitPath(path);
var length = parts.length;

for (var i = 0; i < length; i++) {
Expand Down Expand Up @@ -155,6 +155,24 @@
}
};

var deleteOne = function deleteOne(obj, pathStr) {
var path = splitPath(pathStr);
var prop = path.pop();
Vue__default['default']["delete"](getByPath(obj, path), prop);
};

var deleteMany = function deleteMany(obj, path) {
if (typeof path === 'string') {
deleteOne(obj, path);
} else if (isArray(path)) {
path.forEach(function (item) {
deleteOne(obj, item);
});
} else {
throw Error('Arguments must be either string or array.');
}
};

var ARRAY_METHODS = ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'];

var createVuexPathStore = function createVuexPathStore(options) {
Expand All @@ -167,6 +185,10 @@
toggle: function toggle(state, info) {
var path = info.path;
setOne(state, path, !getByPath(state, path));
},
"delete": function _delete(state, info) {
var path = info.path;
deleteMany(state, path);
}
};
ARRAY_METHODS.forEach(function (method) {
Expand Down Expand Up @@ -198,6 +220,12 @@
});
};

store["delete"] = function (path) {
store.commit('delete', {
path: path
});
};

ARRAY_METHODS.forEach(function (method) {
store[method] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
Expand Down
2 changes: 1 addition & 1 deletion dist/umd/vuexPathStore.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
"rollup": "^2.45.2",
"rollup-plugin-terser": "^5.3.1",
"vue": "^2.6.12",
"vue-set-path": "^1.1.0",
"vue-set-path": "^1.1.1",
"vuepress": "^1.8.2"
}
}

0 comments on commit 605ec80

Please sign in to comment.