Skip to content
This repository has been archived by the owner on Feb 4, 2022. It is now read-only.

Commit

Permalink
Include all helper dependencies in the build output. Closes #23. (#77)
Browse files Browse the repository at this point in the history
  • Loading branch information
robinvdvleuten authored Nov 3, 2017
1 parent 729558f commit 5cfd46d
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 43 deletions.
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
],
"scripts": {
"build": "mkdir -p dist && npm run -s build:cjs && npm run -s build:umd",
"build:cjs": "rollup -c -f cjs | uglifyjs -cm -o $npm_package_main",
"build:umd": "rollup -c -f umd | uglifyjs -cm -o $npm_package_browser",
"build:cjs": "rollup -c -f cjs --no-strict | uglifyjs -cm -o $npm_package_main",
"build:umd": "rollup -c -f umd --no-strict | uglifyjs -cm -o $npm_package_browser",
"precommit": "npm run build && lint-staged",
"prepublish": "npm run build",
"test": "jest --env=jsdom"
Expand All @@ -40,12 +40,10 @@
"git add"
]
},
"dependencies": {
"lodash.merge": "^4.6.0"
},
"devDependencies": {
"babel-jest": "^20.0.3",
"babel-preset-env": "^1.5.2",
"deepmerge": "^2.0.1",
"dom-storage": "^2.0.2",
"eslint": "^3.11.1",
"husky": "^0.13.3",
Expand All @@ -54,6 +52,9 @@
"prettier": "^1.1.0",
"rollup": "^0.36.0",
"rollup-plugin-buble": "^0.14.0",
"rollup-plugin-commonjs": "^8.2.6",
"rollup-plugin-node-resolve": "^3.0.0",
"shvl": "^1.0.0",
"uglify-js": "^2.7.3",
"vue": "^2.0.0",
"vuex": "^2.0.0"
Expand Down
16 changes: 8 additions & 8 deletions rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import buble from 'rollup-plugin-buble';
import commonjs from 'rollup-plugin-commonjs';
import resolve from 'rollup-plugin-node-resolve';
import fs from 'fs';

const pkg = JSON.parse(fs.readFileSync('./package.json'));

export default {
entry: 'src/plugin.js',
moduleName: 'createPersistedState',
useStrict: false,
plugins: [
resolve({
jsnext: true,
main: true
}),
commonjs(),
buble()
],
globals: {
'lodash.merge': 'merge'
},
external: ['lodash.merge'],
]
};
28 changes: 4 additions & 24 deletions src/plugin.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,12 @@
import merge from 'lodash.merge';

const getPath = (obj, path, def, i) => {
i = 0;
path = path.split ? path.split('.') : path;

while (obj && i < path.length)
obj = obj[path[i++]];

return obj === undefined ? def : obj;
};

const setPath = (obj, path, val, i) => {
i = 0;
path = path.split ? path.split('.') : path;

for (; i < path.length - 1; i++) {
obj = obj[path[i]] = getPath(obj, path[i], {});
}

return (obj[path[i]] = val);
};
import merge from 'deepmerge';
import shvl from 'shvl';

const defaultReducer = (state, paths) =>
(paths.length === 0
? state
: paths.reduce(
(substate, path) =>
setPath(substate, path, getPath(state, path)) && substate,
shvl.set(substate, path, shvl.get(state, path)) && substate,
{}
));

Expand Down Expand Up @@ -69,7 +49,7 @@ export default function createPersistedState(
const savedState = getState(key, storage);

if (typeof savedState === 'object') {
store.replaceState(merge({}, store.state, savedState));
store.replaceState(merge(store.state, savedState));
}

subscriber(store)((mutation, state) => {
Expand Down
70 changes: 64 additions & 6 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ acorn@^4.0.4:
version "4.0.13"
resolved "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"

acorn@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7"

ajv-keywords@^1.0.0:
version "1.1.1"
resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.1.1.tgz#02550bc605a3e576041565628af972e06c549d50"
Expand Down Expand Up @@ -754,7 +758,7 @@ braces@^1.8.2:
preserve "^0.2.0"
repeat-element "^1.1.2"

browser-resolve@^1.11.2:
browser-resolve@^1.11.0, browser-resolve@^1.11.2:
version "1.11.2"
resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
dependencies:
Expand Down Expand Up @@ -791,7 +795,7 @@ buble@^0.14.0:
minimist "^1.2.0"
os-homedir "^1.0.1"

builtin-modules@^1.0.0:
builtin-modules@^1.0.0, builtin-modules@^1.1.0:
version "1.1.1"
resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"

Expand Down Expand Up @@ -1022,6 +1026,10 @@ deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"

deepmerge@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.0.1.tgz#25c1c24f110fb914f80001b925264dd77f3f4312"

default-require-extensions@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
Expand Down Expand Up @@ -1240,6 +1248,14 @@ estree-walker@^0.2.1:
version "0.2.1"
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e"

estree-walker@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa"

estree-walker@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.0.tgz#aae3b57c42deb8010e349c892462f0e71c5dd1aa"

[email protected], esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
Expand Down Expand Up @@ -1686,6 +1702,10 @@ is-glob@^2.0.0, is-glob@^2.0.1:
dependencies:
is-extglob "^1.0.0"

is-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"

is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4:
version "2.15.0"
resolved "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b"
Expand Down Expand Up @@ -2252,10 +2272,6 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"

lodash.merge@^4.6.0:
version "4.6.0"
resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5"

lodash@^4.0.0, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0:
version "4.17.2"
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42"
Expand Down Expand Up @@ -2296,6 +2312,12 @@ magic-string@^0.14.0:
dependencies:
vlq "^0.2.1"

magic-string@^0.22.4:
version "0.22.4"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz#31039b4e40366395618c1d6cf8193c53917475ff"
dependencies:
vlq "^0.2.1"

[email protected]:
version "1.0.11"
resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
Expand Down Expand Up @@ -2817,6 +2839,12 @@ resolve@^1.3.2:
dependencies:
path-parse "^1.0.5"

resolve@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
dependencies:
path-parse "^1.0.5"

restore-cursor@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
Expand All @@ -2843,13 +2871,39 @@ rollup-plugin-buble@^0.14.0:
buble "^0.14.0"
rollup-pluginutils "^1.5.0"

rollup-plugin-commonjs@^8.2.6:
version "8.2.6"
resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.6.tgz#27e5b9069ff94005bb01e01bb46a1e4873784677"
dependencies:
acorn "^5.2.1"
estree-walker "^0.5.0"
magic-string "^0.22.4"
resolve "^1.4.0"
rollup-pluginutils "^2.0.1"

rollup-plugin-node-resolve@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz#8b897c4c3030d5001277b0514b25d2ca09683ee0"
dependencies:
browser-resolve "^1.11.0"
builtin-modules "^1.1.0"
is-module "^1.0.0"
resolve "^1.1.6"

rollup-pluginutils@^1.5.0:
version "1.5.2"
resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408"
dependencies:
estree-walker "^0.2.1"
minimatch "^3.0.2"

rollup-pluginutils@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0"
dependencies:
estree-walker "^0.3.0"
micromatch "^2.3.11"

rollup@^0.36.0:
version "0.36.3"
resolved "https://registry.npmjs.org/rollup/-/rollup-0.36.3.tgz#c89ac479828924ff8f69c1d44541cb4ea2fc11fc"
Expand Down Expand Up @@ -2918,6 +2972,10 @@ shellwords@^0.1.0:
version "0.1.0"
resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14"

shvl@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shvl/-/shvl-1.0.0.tgz#33f4ef93fe739333739b4b71a54d11d6a5cccb89"

signal-exit@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81"
Expand Down

0 comments on commit 5cfd46d

Please sign in to comment.