From 7b31a0edaf6b64e11bdf73d4fd55bd921bf29793 Mon Sep 17 00:00:00 2001 From: Kemal Ahmed Date: Wed, 5 Aug 2020 16:56:30 -0400 Subject: [PATCH 1/4] fix localstorage bug on mounted --- build/configs.js | 4 ++-- build/rollup.config.js | 2 +- package-lock.json | 17 +---------------- package.json | 4 ++-- src/index.ts | 2 +- src/utils.ts | 2 +- 6 files changed, 8 insertions(+), 23 deletions(-) diff --git a/build/configs.js b/build/configs.js index 898cc6e..8a0bb06 100644 --- a/build/configs.js +++ b/build/configs.js @@ -5,14 +5,14 @@ export default { output: 'dist/umd/index.js', format: 'umd', target: 'es5', - globals: {'lodash.merge': '_.merge'}, + globals: {'lodash': '_'}, env: 'development' }, umdMin: { output: 'dist/umd/index.min.js', format: 'umd', target: 'es5', - globals: {'lodash.merge': '_.merge'}, + globals: {'lodash': '_'}, plugins: { post: [uglify()] }, diff --git a/build/rollup.config.js b/build/rollup.config.js index 42d94ac..3295f88 100644 --- a/build/rollup.config.js +++ b/build/rollup.config.js @@ -3,7 +3,7 @@ import typescript from 'rollup-plugin-typescript2' import configs from './configs' const externals = [ - 'lodash.merge', + 'lodash', 'vuex', 'flatted' ] diff --git a/package-lock.json b/package-lock.json index 0287d72..66115f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -139,15 +139,6 @@ "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==", "dev": true }, - "@types/lodash.merge": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.6.tgz", - "integrity": "sha512-IB90krzMf7YpfgP3u/EvZEdXVvm4e3gJbUvh5ieuI+o+XqiNEt6fCzqNRaiLlPVScLI59RxIGZMQ3+Ko/DJ8vQ==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -1053,8 +1044,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash.flattendeep": { "version": "4.4.0", @@ -1062,11 +1052,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", diff --git a/package.json b/package.json index e4481fd..5447eb5 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "homepage": "https://github.com/championswimmer/vuex-persist#readme", "devDependencies": { "@types/chai": "^4.1.4", - "@types/lodash.merge": "^4.6.4", + "@types/lodash": "^4.6.4", "@types/mocha": "^5.2.5", "chai": "^4.1.2", "localforage": "^1.7.2", @@ -74,7 +74,7 @@ }, "dependencies": { "flatted": "^2.0.0", - "lodash.merge": "^4.6.2" + "lodash": "^4.6.2" }, "peerDependencies": { "vuex": ">=2.5" diff --git a/src/index.ts b/src/index.ts index 4235d71..4cf744e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -58,7 +58,7 @@ export class VuexPersistence implements PersistOptions { // @ts-ignore if (process.env.NODE_ENV === 'production') { - this.storage = options.storage || window.localStorage + this.storage = new MockStorage!() } else { // @ts-ignore if (process.env.MODULE_FORMAT !== 'umd') { diff --git a/src/utils.ts b/src/utils.ts index 0378d16..a570ec2 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,4 @@ -import lodashMerge from 'lodash.merge' +import {merge as lodashMerge} from 'lodash' export function merge(into: any, from: any) { return lodashMerge({}, into, from) From 019281a2607fb04bde96e02af01574567a2f042c Mon Sep 17 00:00:00 2001 From: Kemal Ahmed Date: Wed, 5 Aug 2020 17:00:02 -0400 Subject: [PATCH 2/4] update lodash properly --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66115f0..a998a8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1042,9 +1042,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "lodash.flattendeep": { "version": "4.4.0", diff --git a/package.json b/package.json index 5447eb5..90d6720 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ }, "dependencies": { "flatted": "^2.0.0", - "lodash": "^4.6.2" + "lodash": "^4.17.19" }, "peerDependencies": { "vuex": ">=2.5" From 202071388666fea026bb37cc2516f26098d0eff5 Mon Sep 17 00:00:00 2001 From: Kemal Ahmed Date: Wed, 5 Aug 2020 17:13:09 -0400 Subject: [PATCH 3/4] better coverage? --- src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index 4cf744e..21bf75b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -57,8 +57,8 @@ export class VuexPersistence implements PersistOptions { } // @ts-ignore - if (process.env.NODE_ENV === 'production') { - this.storage = new MockStorage!() + if (process.env.NODE_ENV === 'production' && MockStorage) { + this.storage = new MockStorage() } else { // @ts-ignore if (process.env.MODULE_FORMAT !== 'umd') { From 2e369f69fa774f174846719c5113d9e222a29b7d Mon Sep 17 00:00:00 2001 From: Kemal Ahmed Date: Wed, 5 Aug 2020 17:27:51 -0400 Subject: [PATCH 4/4] simplify package --- src/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 21bf75b..907857e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -57,15 +57,15 @@ export class VuexPersistence implements PersistOptions { } // @ts-ignore - if (process.env.NODE_ENV === 'production' && MockStorage) { - this.storage = new MockStorage() + if (process.env.NODE_ENV === 'production') { + this.storage = options.storage || window.localStorage } else { // @ts-ignore if (process.env.MODULE_FORMAT !== 'umd') { this.storage = options.storage || (typeof window !== 'undefined' ? window.localStorage : new MockStorage!()) } else { // If UMD module, then we will only be having localStorage - this.storage = options.storage || window.localStorage + this.storage = options.storage || window.localStorage || MockStorage && new MockStorage() } }