Skip to content
This repository was archived by the owner on Dec 1, 2023. It is now read-only.

Commit ca9664b

Browse files
author
Steffan
committed
fix get() on non objects
1 parent 677fbc4 commit ca9664b

File tree

3 files changed

+53
-32
lines changed

3 files changed

+53
-32
lines changed

package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,16 @@
3939
"@storybook/vue": "^5.0.0",
4040
"babel-loader": "^8.0.5",
4141
"babel-preset-vue": "^2.0.2",
42-
"eslint": "^5.15.1",
42+
"eslint": "^5.16.0",
4343
"eslint-plugin-vue": "^4.7.0",
44-
"replace-in-file": "^3.4.4",
44+
"replace-in-file": "^4.1.0",
4545
"rollup": "^0.68.2",
4646
"rollup-plugin-babel": "^4.3.2",
4747
"rollup-plugin-replace": "^2.0.0",
4848
"rollup-plugin-vue": "^3.0.0",
49-
"uglify-js": "^3.4.9",
50-
"vue": "^2.6.8",
49+
"uglify-js": "^3.5.12",
50+
"vue": "^2.6.10",
5151
"vue-loader": "^15.7.0",
52-
"vue-template-compiler": "^2.6.8"
52+
"vue-template-compiler": "^2.6.10"
5353
}
5454
}

src/util.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ export function isUndefined(val) {
4141

4242
export function get(obj, key, def) {
4343

44-
const parts = key.split('.');
44+
const parts = isArray(key) ? key : key.split('.');
4545

4646
for (let i = 0; i < parts.length; i++) {
47-
if (!isUndefined(obj[parts[i]])) {
47+
if (isObject(obj) && !isUndefined(obj[parts[i]])) {
4848
obj = obj[parts[i]];
4949
} else {
5050
return def;
@@ -56,7 +56,7 @@ export function get(obj, key, def) {
5656

5757
export function set(obj, key, val) {
5858

59-
const parts = key.split('.');
59+
const parts = isArray(key) ? key : key.split('.');
6060

6161
while (parts.length > 1) {
6262

yarn.lock

+45-24
Original file line numberDiff line numberDiff line change
@@ -2793,6 +2793,11 @@ commander@^2.19.0:
27932793
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
27942794
integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
27952795

2796+
commander@~2.20.0:
2797+
version "2.20.0"
2798+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
2799+
integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
2800+
27962801
common-tags@^1.8.0:
27972802
version "1.8.0"
27982803
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
@@ -3634,10 +3639,10 @@ eslint-scope@^4.0.0:
36343639
esrecurse "^4.1.0"
36353640
estraverse "^4.1.1"
36363641

3637-
eslint-scope@^4.0.2:
3638-
version "4.0.2"
3639-
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.2.tgz#5f10cd6cabb1965bf479fa65745673439e21cb0e"
3640-
integrity sha512-5q1+B/ogmHl8+paxtOKx38Z8LtWkVGuNt3+GQNErqwLl6ViNp/gdJGMCjZNxZ8j/VYjDNZ2Fo+eQc1TAVPIzbg==
3642+
eslint-scope@^4.0.3:
3643+
version "4.0.3"
3644+
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
3645+
integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
36413646
dependencies:
36423647
esrecurse "^4.1.0"
36433648
estraverse "^4.1.1"
@@ -3652,18 +3657,18 @@ eslint-visitor-keys@^1.0.0:
36523657
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
36533658
integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
36543659

3655-
eslint@^5.15.1:
3656-
version "5.15.1"
3657-
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.15.1.tgz#8266b089fd5391e0009a047050795b1d73664524"
3658-
integrity sha512-NTcm6vQ+PTgN3UBsALw5BMhgO6i5EpIjQF/Xb5tIh3sk9QhrFafujUOczGz4J24JBlzWclSB9Vmx8d+9Z6bFCg==
3660+
eslint@^5.16.0:
3661+
version "5.16.0"
3662+
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
3663+
integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==
36593664
dependencies:
36603665
"@babel/code-frame" "^7.0.0"
36613666
ajv "^6.9.1"
36623667
chalk "^2.1.0"
36633668
cross-spawn "^6.0.5"
36643669
debug "^4.0.1"
36653670
doctrine "^3.0.0"
3666-
eslint-scope "^4.0.2"
3671+
eslint-scope "^4.0.3"
36673672
eslint-utils "^1.3.1"
36683673
eslint-visitor-keys "^1.0.0"
36693674
espree "^5.0.1"
@@ -3677,7 +3682,7 @@ eslint@^5.15.1:
36773682
import-fresh "^3.0.0"
36783683
imurmurhash "^0.1.4"
36793684
inquirer "^6.2.2"
3680-
js-yaml "^3.12.0"
3685+
js-yaml "^3.13.0"
36813686
json-stable-stringify-without-jsonify "^1.0.1"
36823687
levn "^0.3.0"
36833688
lodash "^4.17.11"
@@ -5406,7 +5411,15 @@ js-stringify@^1.0.1:
54065411
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
54075412
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
54085413

5409-
js-yaml@^3.12.0, js-yaml@^3.4.3, js-yaml@^3.9.0:
5414+
js-yaml@^3.13.0:
5415+
version "3.13.1"
5416+
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
5417+
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
5418+
dependencies:
5419+
argparse "^1.0.7"
5420+
esprima "^4.0.0"
5421+
5422+
js-yaml@^3.4.3, js-yaml@^3.9.0:
54105423
version "3.12.0"
54115424
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
54125425
integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
@@ -7951,10 +7964,10 @@ repeating@^2.0.0:
79517964
dependencies:
79527965
is-finite "^1.0.0"
79537966

7954-
replace-in-file@^3.4.4:
7955-
version "3.4.4"
7956-
resolved "https://registry.yarnpkg.com/replace-in-file/-/replace-in-file-3.4.4.tgz#2c2b95a493dc4f6161c2bcd29a661be16d03d323"
7957-
integrity sha512-ehq0dFsxSpfPiPLBU5kli38Ud8bZL0CQKG8WQVbvhmyilXaMJ8y4LtDZs/K3MD8C0+rHbsfW8c9r2bUEy0B/6Q==
7967+
replace-in-file@^4.1.0:
7968+
version "4.1.0"
7969+
resolved "https://registry.yarnpkg.com/replace-in-file/-/replace-in-file-4.1.0.tgz#07846245a4b98a8bc5f5f9c3e3e368fa12b18bf7"
7970+
integrity sha512-5IANGPAQZVO9PHEjaRz3EHs7eQulv1cvOu2hRi7+Ern+zXIzdslSGX9MIfcI1anaGCpICK2l4R4YOOdThsFryQ==
79587971
dependencies:
79597972
chalk "^2.4.2"
79607973
glob "^7.1.3"
@@ -9187,7 +9200,7 @@ ua-parser-js@^0.7.18:
91879200
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed"
91889201
integrity sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==
91899202

9190-
[email protected], uglify-js@^3.4.9:
9203+
91919204
version "3.4.9"
91929205
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
91939206
integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
@@ -9205,6 +9218,14 @@ uglify-js@^2.6.1:
92059218
optionalDependencies:
92069219
uglify-to-browserify "~1.0.0"
92079220

9221+
uglify-js@^3.5.12:
9222+
version "3.5.12"
9223+
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.12.tgz#6b759cabc08c3e91fe82323d6387019f0c5864cd"
9224+
integrity sha512-KeQesOpPiZNgVwJj8Ge3P4JYbQHUdZzpx6Fahy6eKAYRSV4zhVmLXoC+JtOeYxcHCHTve8RG1ZGdTvpeOUM26Q==
9225+
dependencies:
9226+
commander "~2.20.0"
9227+
source-map "~0.6.1"
9228+
92089229
uglify-to-browserify@~1.0.0:
92099230
version "1.0.2"
92109231
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
@@ -9459,10 +9480,10 @@ vue-style-loader@^4.1.0:
94599480
hash-sum "^1.0.2"
94609481
loader-utils "^1.0.2"
94619482

9462-
vue-template-compiler@^2.6.8:
9463-
version "2.6.8"
9464-
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.8.tgz#750802604595134775b9c53141b9850b35255e1c"
9465-
integrity sha512-SwWKANE5ee+oJg+dEJmsdxsxWYICPsNwk68+1AFjOS8l0O/Yz2845afuJtFqf3UjS/vXG7ECsPeHHEAD65Cjng==
9483+
vue-template-compiler@^2.6.10:
9484+
version "2.6.10"
9485+
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc"
9486+
integrity sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg==
94669487
dependencies:
94679488
de-indent "^1.0.2"
94689489
he "^1.1.0"
@@ -9484,10 +9505,10 @@ vue-template-validator@^1.1.5:
94849505
dependencies:
94859506
chalk "^1.1.1"
94869507

9487-
vue@^2.6.8:
9488-
version "2.6.8"
9489-
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.8.tgz#f21cbc536bfc14f7d1d792a137bb12f69e60ea91"
9490-
integrity sha512-+vp9lEC2Kt3yom673pzg1J7T1NVGuGzO9j8Wxno+rQN2WYVBX2pyo/RGQ3fXCLh2Pk76Skw/laAPCuBuEQ4diw==
9508+
vue@^2.6.10:
9509+
version "2.6.10"
9510+
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637"
9511+
integrity sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==
94919512

94929513
warning@^3.0.0:
94939514
version "3.0.0"

0 commit comments

Comments
 (0)